J'ai un projet Android Studio qui utilise une architecture MVP. Quelle est la structure de packages conseillée pour un projet de ce style que nous pouvons faire:
app:
screen_name
activityA
presenterA
interfaceA
or:
activities
activityA
activityB
preentors
presentorA
presentorB
etc
3 réponses
Votre problème ne concerne que l ' interface utilisateur du modèle architectural MVP . Il s’agit des classes Afficher avec leurs présentateurs correspondants. Et la meilleure solution est la première approche.
L'application doit avoir un package conforme aux fonctionnalités , PAS à la fonctionnalité commune. Nous devons regrouper les classes qui sont modifiées / modifiées ensemble .
Certains développeurs regroupent le code source par couche - comme la deuxième approche - car ils souhaitent conserver la même structure de package pour TOUS les projets sur lesquels ils travaillent. Mais c'est une mauvaise décision car il est toujours DIFFICILE de trouver des classes quand elles sont regroupées uniquement parce qu'elles partagent les mêmes classes parentes!
Ex: pour les activités, certains développeurs les mettent dans le package activity
car toutes les activités étendent la classe Activity
. Cela a du sens car il s'agit d'un package d'activité UNIQUEMENT, MAIS il est difficile de parcourir ces packages.
Pour plus d'informations, voir: android-mvp-architecture et ce SO answer
MVP est un bon choix. Vous pouvez suivre le modèle suivant:
Application: 1. activités: + interface pour représenter la vue (c'est-à-dire l'activité) + activité réelle classe java 2. Présentateur: + interface pour représenter le présentateur + classe java pour représenter l'implémentation du présentateur 3. Modèle: + interface pour représenter le modèle + classe java pour représenter mise en œuvre du modèle (faites des appels réseau ici, passez le rappel au présentateur qui donne ensuite des données à l'activité)
En plus des autres réponses, je recommanderais de consulter les plans d’architecture Android, qui peut vous donner des idées sur la manière d'organiser et de mettre en œuvre votre application.
De nouvelles questions
android
Android est le système d'exploitation mobile de Google, utilisé pour la programmation ou le développement d'appareils numériques (Smartphones, tablettes, automobiles, téléviseurs, Wear, Glass, IoT). Pour les sujets liés à Android, utilisez des balises spécifiques à Android telles que l'intention d'Android, l'activité d'Android, l'adaptateur Android, etc. Pour les questions autres que le développement ou la programmation, mais liées au cadre Android, utilisez ce lien: https: // android.stackexchange.com.