42 votes

Utiliser l'injection de dépendances avec Roboguice ?

Je travaille sur un projet Android et j'aimerais avoir des recommandations sur ce qui constitue une bonne architecture pour construire une application Android.

Je veux utiliser l'injection de dépendances avec Roboguice et je me suis renseigné sur le modèle MVVM ou MVC ( Exemples de modèles de conception MVVM pour Android ).

Je sais également que roboguice dispose d'une fonctionnalité de déclenchement et de traitement d'événements basés sur le contexte qui pourrait être très facile à tester puisque le code est découplé.

Avez-vous des recommandations sur un modèle de conception fonctionnel ? une architecture testable et évolutive avec laquelle vous avez travaillé ou que vous avez développée ?

18voto

seanhodges Points 8005

La plate-forme Android fournit un ensemble commun de modèles de conception et, compte tenu des ressources matérielles limitées dont vous disposez par rapport aux applications Web, il est souvent préférable de s'en tenir à leur utilisation directe dans le code de production. Il existe d'autres frameworks qui "enveloppent" en quelque sorte la plate-forme de base ; ils valent la peine d'être examinés si vous avez un objectif spécifique (ou peut-être pour le prototypage/l'expérimentation), mais pour le meilleur niveau de support, il est généralement préférable de s'en tenir aux composants standard.

Il s'agit d'une excellente ressource lorsque vous travaillez sur des solutions d'interface utilisateur : http://www.androidpatterns.com/

Spécifiquement pour DI : Il y a un Cadre Spring pour Android J'ai joué avec et cela semble très prometteur. Vous avez déjà mentionné Roboguice comme une autre alternative. Cependant, pour éviter les surcharges de performance et de bibliothèque, je trouve toujours que l'approche la plus simple est d'écrire une simple classe basée sur la réflexion qui enregistre et injecte les dépendances dans mon propre code. Similaire à cette approche sauf que j'ai l'habitude de déplacer le code d'injection dans un singleton séparé et de le référencer à partir de là.

D'après mon expérience, la plupart des offres de tiers ne sont pas encore assez mûres pour qu'on puisse s'y fier, et elles n'apportent pas grand-chose de plus que ce que la plate-forme de base fournit. Elles sont cependant en constante évolution, alors n'hésitez pas à expérimenter les grands noms de temps en temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X