J'ai essayé de créer une application Android avec MVC maintenant (Java)

introduction

Il s'agit de la version Android (Java) de this.

Mon expérience Android est à un niveau où je peux créer quelque chose qui fonctionne. J'ai fait iOS, alors pourquoi pas Android !!

Je ne connais pas grand-chose à Android, alors je l'ai fait avec MVC pour le moment. J'ai fait une recherche rapide de MVC sur Android, mais je n'étais pas sûr, donc je l'ai mis un peu sur iOS.

Je l'ai fait avec le sentiment que c'est probablement comme ça, donc j'apprécierais que vous puissiez me dire si c'était faux.

Le gars iOS que j'ai fait plus tôt

environnement

macOS High Sierra version 10.13.2

Android Studio 3.2.1

Quoi faire

S'il y a trop peu de fonctions, il sera difficile de comprendre la différence même si vous la faites avec différents designs, donc cette fois je vais faire l'application suivante.

Exigences de l'application

Une application qui affiche la météo dans chaque préfecture à l'aide de l 'API Web Météo Liveoor (non disponible pour un usage commercial).

La cible est Android 5.0 ou version ultérieure.

une fonction

Répertoriez 47 préfectures et affichez la météo de la préfecture sélectionnée aujourd'hui, demain et après-demain.

structure de l'écran

Deux écrans, un écran de liste de préfecture et un écran de détail. (3 écrans y compris splash)

Ignorez l'écran de démarrage. (Parce qu'il n'est pas séparé par MVC)

Écran de liste de préfecture

default

default

Écran de détails

default

Glossaire

Je pense que l'une des raisons pour lesquelles il existe des différences individuelles dans les perceptions telles que MVC est que la signification de Katakana est ambiguë.

Je recherche MVC et je ne comprends pas vraiment la logique métier, alors j'écrirai sur la signification de Katakana dans cet article. (Cela peut être différent du sens réel ...)

Qu'est-ce que la logique métier?

Dans l'explication de ici, c'est "la partie du système qui effectue le traitement spécifique au système".

Ce qui suit s'applique à cette application

Qu'est-ce qu'une mise en page?

Ce qui suit s'applique à cette application

Qu'est-ce qu'une action utilisateur?

Ce qui suit s'applique à cette application

Chaque conception

J'ai donné ce que j'ai fait ici.

Celui que j'ai créé cette fois est Okhttp3 pour la communication et JSONExport pour créer une classe qui gère les données JSON. J'ai utilisé.

J'écrirai ma perception de chaque design, le nombre de fichiers, le nombre de lignes d'activité et les impressions que j'ai faites.

Presque activité

Pour le moment, je l'ai fait avec Activity sans penser à rien ça

nombre de fichiers

Nombre de lignes d'activité (y compris les commentaires)

Impressions réalisées

Le nombre de fichiers est faible et la vitesse de développement est rapide. Chaque classe a environ 300 lignes, donc je pense que c'est également possible pour cette échelle. Depuis que le processus est écrit dans l'adaptateur, je sens que le nombre de lignes d'activité a diminué.

MVC

Le projet est this

reconnaissance

A_MVC

Modèle (applicable: objet)

Vue (Applicable: Fragment, Vue, xml)

Contrôleur (Applicable: Activité)

nombre de fichiers

Nombre de lignes d'activité (y compris les commentaires)

Impressions réalisées

Pour le moment, j'ai créé Fragment as View. Obtenir l'événement de bouton et passer la liste à l'adaptateur est un peu ennuyeux, mais c'est plus mince. Je pense que créer un modèle facilite la sauvegarde avec onSaveInstanceState. Le processus d'affichage de PopupWindow a considérablement augmenté le nombre de lignes d'activité, donc si vous pouvez le diviser un peu plus, vous pourrez peut-être le rendre un peu plus mince. Pour les écrans comportant de nombreuses parties, `` findViewById '' peut être regroupé en Fragment, donc Activity est assez rafraîchissant, donc je pense que c'est assez facile à utiliser.

Autre

D'autres points qui s'écartent du point principal mais qui sont inquiétants

à la fin

Il y avait pas mal de parties auxquelles je n'étais pas habitué quand je l'ai fait comme iOS. Quand j'ai utilisé Activity avec le même sentiment que ViewController, c'était vraiment bogué. L'activité et le fragment meurent si souvent. Il est désagréable d'avoir une liste dans l'adaptateur, mais je pense que cela ne peut pas être aidé.

J'ai écrit cet article parce que je voulais que quelqu'un me donne un avis, alors j'apprécierais que vous me donniez un avis. Si vous pensez que "c'est la conception la plus solide!", Essayez de créer une application avec les spécifications ci-dessus.

Si vous en avez envie, je vais essayer de le faire avec Kotlin. Je pense que Kotlin est le courant dominant ces jours-ci ...

Recommended Posts

J'ai essayé de créer une application Android avec MVC maintenant (Java)
J'ai essayé de faire une authentification de base avec Java
J'ai essayé d'interagir avec Java
J'ai essayé de résumer Java 8 maintenant
J'ai essayé de faire une demande en 3 mois d'inexpérimenté
J'ai essayé de moderniser une application Java EE avec OpenShift.
J'ai essayé de développer une application en 2 langues
J'ai essayé de casser le bloc avec java (1)
J'ai essayé de faire une sauvegarde automatique avec plus agréable + PostgreSQL + SSL + docker
[iOS] J'ai essayé de créer une application de traitement de type insta avec Swift
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
J'ai créé une application d'apprentissage automatique avec Dash (+ Docker) part3 ~ Practice ~
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
[Java 11] J'ai essayé d'exécuter Java sans compiler avec javac
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'implémenter Sterling Sort avec Java Collector
Un débutant en développement d'applications a essayé de créer une application de calculatrice Android
Rails6 J'ai essayé d'introduire Docker dans une application existante
[Android] J'ai créé un écran de liste de matériaux avec ListView + Bottom Sheet
J'ai créé une application Android qui GET avec HTTP
~ J'ai essayé d'apprendre la programmation fonctionnelle avec Java maintenant ~
J'avais l'habitude de faire nc (netcat) avec JAVA normalement
[Azure] J'ai essayé de créer une application Java gratuitement ~ Se connecter avec FTP ~ [Débutant]
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de faire de Ben figure une animation GIF facile à comprendre
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
J'ai essayé de faire coexister Java Optional et la clause de garde
Comment créer une application à l'aide de Tensorflow avec Android Studio
J'ai créé un client RESAS-API en Java
J'ai essayé d'utiliser la bibliothèque CameraX avec Android Java Fragment
J'ai essayé la communication UDP avec Java
J'ai essayé de résumer l'apprentissage Java (1)
Exécuter des applications écrites en Java8 en Java6
Facile à créer LINE BOT avec Java Servlet Partie 2: J'ai essayé des messages image et des modèles
J'étais accro à WSl en essayant de créer un environnement de développement d'applications Android avec Vue.js
J'ai essayé de me connecter à MySQL en utilisant le modèle JDBC avec Spring MVC
J'ai essayé de créer un environnement de développement http2 avec Eclipse + Tomcat
J'ai essayé d'en faire une URL arbitraire en utilisant l'imbrication de routage
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
Je veux créer une application ios.android
J'ai essayé de résumer les expressions Java lambda
J'ai essayé de démarrer avec Web Assembly
J'ai essayé d'utiliser OpenCV avec Java + Tomcat
Après avoir appris Progate, j'ai essayé de créer une application SNS en utilisant Rails dans l'environnement local
J'ai essayé de créer une API Web qui se connecte à DB avec Quarkus
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
01. J'ai essayé de créer un environnement avec SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10)
Je veux ForEach un tableau avec une expression Lambda en Java
Comment créer une application avec un mécanisme de plug-in [C # et Java]
J'ai essayé de créer une application d'apprentissage automatique avec Dash (+ Docker) part1 ~ Construction de l'environnement et vérification du fonctionnement ~
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de gérer les informations de connexion avec JMX
java j'ai essayé de casser un simple bloc
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai