web-dev-qa-db-fra.com

Meilleures pratiques de codage Android/modèles de conception

Dans une question récente que j'ai posée, j'ai été dirigé vers ce site: http://developer.Android.com/design/index.html

Un site incroyable, mais il n'a pas répondu à une question particulière: quelles sont les meilleures pratiques/modèles de conception à appliquer dans la conception d'une application en termes de code?

J'ai effectué des recherches pour MVC/MVP, etc., et bien que cela produise des résultats, il ne s'agit que de la mise en œuvre réelle desdits modèles, plutôt que des autres options disponibles, etc.

J'ai essayé de décompiler et d'analyser diverses applications installées par défaut sur Android, comme le marché, mais je ne trouvais pas vraiment de structure dans le code de Google. Quelqu'un a-t-il des conseils pour configurer les applications Android de manière à ce qu'elles soient maintenables, extensibles, etc. Je suis conscient du sens large de ces mots et du fait qu'ils sont purement subjectifs pour le programmeur, mais je ne peux pas exprimez-le différemment.

Une meilleure pratique que j'ai déjà rencontrée est une vue par activité et de nombreuses activités dans l'application pour que le backstack fonctionne correctement, mais à part cela, je ne sais pas comment configurer réellement l'activité elle-même.

29
Lennard Fonteijn

Vous devriez regarder (depuis Google IO 2011): http://www.youtube.com/watch?v=WGIU2JX1U5Y

Il ne s'agit pas de ICS mais de nid d'abeille, mais cela reste très intéressant ...

Vous verrez que l'ActionBar (certaines bibliothèques vous obligent à implémenter l'ActionBar sur d'anciennes versions d'Android) devient plus important et se trouve dans la plupart des applications Google pour Android ...

En outre, le ViewPager est utilisé beaucoup (comme pour glisser horizontalement entre différents onglets/vues), comme sur le marché ...

Pour que votre projet reste propre, vous pouvez attribuer à chaque activité un fichier XML distinct. Les éléments récurrents que vous utilisez doivent être conservés dans un fichier XML distinct que vous pouvez inclure dans tout autre fichier XML (pieds de page, en-têtes, séparateurs, ...).

J'espère que cela vous aide!

4
Ferdau

Tout d’abord, lisez les guides d’API , en particulier les parties de Activités et Fragments . Mais si vous avez le temps, lisez tous les guides de l'API, ils sont vraiment une excellente ressource pour comprendre le développement Android.

Selon les appareils Android que vous souhaitez prendre en charge, je vous recommanderais d'utiliser v4 Support Library et v7 Appcompat Library . Le premier (v4 Support Library) que j’utilise toujours en raison de la prise en charge des fragments imbriqués (getChildFragmentManager () - non pris en charge de manière native sur <API 18) et le ViewPager . La bibliothèque Appcompat sert principalement à prendre en charge la barre d’action sur les appareils dotés de versions Android inférieures à 4.0.

Je voudrais aussi étudier Gradle comme système de construction et [ http://developer.Android.com/sdk/installing/studio.html](Android Studio) (gratuit) ou IntelliJ IDEA } (commercial) comme IDE.

En ce qui concerne les bibliothèques tierces, la pile de bibliothèques que je vois la plus utilisée de nos jours (et dont je me sers principalement) est la suivante:

  • Guava en tant que bibliothèque générale d'assistance Java.
  • Dague et ButterKnife pour l'injection de dépendance.
  • OkHttp comme bibliothèque de transport HTTP.
  • RetroFit ou Volley en tant que bibliothèques REST.
  • Picasso comme une bibliothèque de chargement d'images. Avoir une bonne bibliothèque de chargement d’images lorsque vous devez télécharger/afficher des images du serveur est très important dans Android car il s’occupe de la gestion de la mémoire et de la mise en cache, ce qui peut être très difficile si vous essayez de tout faire par vous-même.

Les alternatives qui sont aussi beaucoup utilisées sont:

Autres bibliothèques que j'utilise et recommande:

  • (Composants Android de CommonsWare }, en particulier cwac-adaptateur et cwac-camera . Le dernier concerne l'utilisation de l'appareil photo dans votre application (au lieu d'utiliser une intention), ce qui peut également être très difficile à faire vous-même.
  • HoloAccent _, ce qui facilite le style de votre application Android sur le thème Holo.

Chris Banes (un développeur Android bien connu) a récemment publié le code source d'une de ses applications que vous pouvez utiliser comme exemple de création d'une application Android à l'aide de plusieurs des bibliothèques mentionnées ci-dessus.

19
Jaap van Hengstum

La première chose que vous devez apprendre concerne vraiment bien les activités sur Android. Grok le tout. Ce sera beaucoup plus facile d'avancer à partir de là. N'entrez pas dans les modèles de conception Java aussi tôt que vous le feriez pour essayer d'adapter le problème à votre modèle qui ne se termine pas bien. Consultez les exemples sur le site Web du développeur Android, puis écrivez le plus de code possible.

Je viens de mettre sur pied ce site Web appelé Android App Patterns - http://Android-app-patterns.com et qui présente les différents éléments d'interface utilisateur et les modèles d'interaction auxquels certaines applications populaires adhèrent sur Android. 

Un certain nombre de bibliothèques vous aident à implémenter facilement les modèles ci-dessus. Pour ex .:

  1. GreenDroid - https://github.com/cyrilmottier/GreenDroid
  2. ActionBarSherlock - https://github.com/JakeWharton/ActionBarSherlock
  3. Android View Badger - https://github.com/jgilfelt/Android-viewbadger - Sera utilisé pour les notifications
  4. NineOldAndroids - https://github.com/JakeWharton/NineOldAndroids - Utilisez l'API d'animation de HoneyComb jusqu'à la version 1.0
  5. Ignition: https://github.com/kaeppler/ignition - Beaucoup d'auxiliaires pour des tâches courantes sur Android
18
Abhinav

Une application Android devrait être rapide. Eh bien, il est probablement plus exact de dire que cela devrait être efficace. Autrement dit, il devrait fonctionner aussi efficacement que possible dans l'environnement des appareils mobiles, avec sa puissance de calcul et son stockage de données limités, son écran plus petit et son autonomie limitée. . pour plus de lecture 

http://www.onsandroid.com/2014/10/Android-application-designing-for.html

http://www.onsandroid.com/2013/01/Android-best-practices.html

0
suresh