Quelle est la meilleure façon de structurer une application Android?

26

Je démarre une nouvelle application Android. Quelle est la meilleure structure à utiliser?

Je prévois d'en faire une conception multi-packages comme suit:

  1. Paquet principal, y compris l'activité
  2. Couche de service et de données
  3. Package d'entité, y compris la classe d'entité.

    Aucun conseil ?

Basbous
la source
Bon: blog.smartlogic.io/2013/07/09/…
Yousha Aleayoub

Réponses:

11

Tout d'abord, cela dépend de l'application que vous faites.

vous devez faire une description textuelle ou schématique sur la façon dont un utilisateur va travailler avec l'application. Corrigez tous les scénarios possibles. Mettez des exemples qui seront utilisés plus tard pour les tests.

Décidez ce qui appartient à la fonctionnalité et quoi - à la configuration modifiable. Extraire des fonctionnalités et des entités de données à partir de scénarios.

À partir de scénarios, décidez de ce que sera votre application. Est-ce un service, une activité, un widget, même un fournisseur de contenu ou un système complexe, y compris certains composants différents. Testez votre décision par rapport à des scénarios.

Dans le cas d'un système complexe, répartissez les fonctionnalités et les entités de données entre les composants de l'application. Faites une liste des composants et de ce qu'ils sont (activités ou autre chose).

Faites la liste des composants de l'interface utilisateur avec une description de ce qu'ils font (pas encore COMMENT). Ce seront des widgets et des activités ou des fragments ou des dispositions plus tard.

Créez des mises en page préliminaires pour les composants de l'interface utilisateur. Faites des passes simples de l'un à l'autre. Regardez l'interface utilisateur. Revenez aux scénarios et jouez-les tous avec votre projet d'interface utilisateur. Tous les composants et classes d'interface utilisateur sont regroupés dans une seule hiérarchie de packages ou de packages.

Faites une liste des entités de données. Décidez de ce qui sera dans quoi. Planifiez-les en tant que collections ou tables dans des bases de données ou des bases de données différentes. Créez-les en tant que classes, placez-les dans une autre hiérarchie de packages ou dans un autre package. Ici aussi, mettez des assistants DB - des classes qui parlent avec DB par SQL.

Créez des classes de test (JUNIT ou mieux TestNG) pour remplir l'interface utilisateur et les entités de données avec des données de test et les lancer.

Les adaptateurs n'ont pas besoin d'être publics, car ils sont utilisés uniquement dans leur GroupView parent. Donc, généralement pas de fichiers pour les adaptateurs.

Ne mettez pas tous les globaux dans des classes statiques spéciales - c'est une mauvaise pratique. Vous mixez donc le code et la configuration. Utilisez cette solution très intéressante . Pour l'instant, c'est le meilleur que je connaisse pour Android.

Les données de configuration doivent être placées dans les ressources. Si certains d'entre eux sont complexes, utilisez des sources XML et des analyseurs. Transformez les lecteurs de données de ressources en variables globales. Tous ne seront pas statiques! Ils peuvent appartenir à l'instance principale d'activité, par exemple.

N'utilisez pas de constantes non configurables dans le code! Peut-être, votre nom seulement :-). Chaque constante devient parfois non constante.

D'un autre côté, si certains d'entre vous ne sont pas du code Java normal, mais des scripts - un mélange de données et de langage, vous pouvez et devez mélanger les données et le code.

Toujours le faire: écrire quelque chose - connecter quelque chose à un lot - ajouter des tests pour cette nouvelle chose - tester cette nouvelle - tester la masse - répéter. Petits pas seulement!

Modifier. Vous pouvez également utiliser le développement piloté par les tests - écrire des tests avant le code approprié. De cette façon, en exécutant des tests avant que le code ne soit prêt, vous avez un double test - ainsi vous vérifiez si les tests réagissent vraiment à un code incorrect.

Gangnus
la source
7

Oui, il est facile de développer si vous catégories chose sur la base de leur travail.Vous êtes dans la bonne direction.Dans Android, si je développe une application, j'utiliserai la structure suivante, quelque chose sera similaire comme vous

  1. Paquet principal avec toutes les activités d'écran
  2. Classes d'adaptateurs si j'utilise ListView, GridView qui ont besoin de BaseAdapter, etc.
  3. Assistant d'analyse si utilisé
  4. Base de données
  5. Classes d'entité et classes pour stocker la variable statique
  6. Service et récepteur
Tofeeq
la source