web-dev-qa-db-fra.com

Utilisation d'une injection de dépendance avec Roboguice?

Je travaille sur un fichier Android projet et j'aimerais connaître des recommandations sur la bonne architecture pour construire un Android Application.

Je souhaite utiliser une injection de dépendance à l'aide de Roboguice et je lisai sur le motif MVVM ou le motif MVC ( exemples de motif de conception Android MVVM ).

De plus, je sais que Roboguice dispose d'une fonctionnalité de collecte et de manipulation de l'événement basée sur le contexte assez cool qui pourrait être très testable car le code est découplé.

Des recommandations sur un modèle de conception de travail? Une architecture testable et évolutive que vous avez travaillé ou développée?

42
Jose R. Cruz

The Android Plate-forme fournit un ensemble courant de motifs de conception et avec les ressources matérielles limitées que vous obtenez comparées aux applications Web Il est toujours souvent préférable de rester en contact avec ceux-ci directement dans le code de production. Il y a D'autres cadres qui traitent de "envelopper" la plate-forme de base; celles-ci valent la peine d'être examinée si vous avez un but spécifique (ou peut-être pour le prototypage/l'expérimentation), mais pour le meilleur niveau de soutien que vous êtes généralement mieux collant avec les composants standard.

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

Spécifiquement pour DI: Il y a une Cadre de printemps pour Android , j'ai eu une pièce de théâtre avec elle et il semble très prometteur. Vous avez déjà mentionné Roboguice comme une autre alternative à cela. Cependant, pour éviter les frais de performance et de la bibliothèque, je trouve toujours l'approche la plus facile consiste à écrire une simple classe à base de réflexion qui enregistre et injecte des dépendances au sein de mon propre code. Similaire à - cette approche , sauf que je déplace habituellement le code d'injection dans un singleton séparé et y référez-le à partir de là.

Dans mon expérience, la plupart des offres tierces ne sont pas encore assez matures pour compter maintenant, et ne vous donnez pas beaucoup de choses sur ce que fournit la plate-forme de base. Ils progressent constamment, cependant, assurez-vous d'expérimenter avec les grands noms de temps à autre.

18
seanhodges