Android buena arquitectura
Estoy interesado en explorar buenos patrones arquitectónicos para aplicaciones de Android.
Hice varios experimentos con VIPER y generalmente los enfoques de arquitectura limpia, pero me gustaría obtener un buen material / ideas para investigar de ustedes queridos compañeros.
- Android contentprovider no devolver Phone.NUMBER
- ¿Por qué Android no imprime el seguimiento de la pila?
- Cómo evitar objetos duplicados en la base de datos DB4o
- Android Cómo activar el hotspot en Android Programáticamente
- Android Velocidad basada en valores de acelerómetro
Estos son algunos puntos importantes que deben reflejarse:
-
Debe ayudar a manejar el enrutamiento / navegación en una aplicación típica de una sola actividad / fragmentos múltiples
-
Debe separar claramente qué componentes / capas se ejecutará en los subprocesos de fondo y que en el hilo principal y para comunicarse entre capas (patrón de observador, eventbus o lo que sea)
-
Utiliza una cantidad limitada de bibliotecas de terceros y si lo hace, por favor indique los pros y los contras (como Dagger for Dependency Injection por ejemplo)
-
Ayuda a mantener la ortogonalidad a largo plazo al adaptar / extender la aplicación. Un cambio en un módulo debe afectar a la cantidad mínima de componentes sin tener efectos en cascada porque los componentes están acoplados a los muslos.
-
Sería genial tener una mirada a ejemplos reales / prototipos en github o en cualquier lugar para mantenerlo real y práctico sin ser demasiado en el lado académico 😉
Gracias de antemano por cualquier ideas / patrones frescos
- Cómo establecerLayoutParams en elementos añadidos dinámicamente en Widget
- ¿Cómo puedo iniciar el desarrollo de juegos en android?
- Parse: ¿Cómo configurar un puntero en Android?
- Android Studio: ¿Cómo excluir el módulo google-services en el sabor del producto?
- Reemplazar e incrementar el número en el nombre de archivo en una aplicación de Android
- ¿Cómo descargar múltiples archivos simultáneamente usando intentservice en Android?
- Administrar advertencias "obsoletas" en el proyecto de Android con minSdkVersion
- Precargar la vista Web en la actividad A y pasarla a la actividad B para una carga más rápida
Puede usar el patrón MVP + Repository, lo estoy usando en mi proyecto y el código es más limpio, suelto par, hay capas bien separadas. Puede agregar Dagger a las inyecciones de dependencia y RxAndroid a la tarea asincrónica.
Estos son los mejores enlaces que encontré y me ayudaron a aprender esta arquitectura:
http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
https://medium.com/android-news/android-architecture-2f12e1c7d4db#.bupsk0o2n
http://fahimk.github.io/2015/04/21/using-rxjava-with-mvp-to-handle-configuration-changes/
https://kmangutov.wordpress.com/2015/03/28/android-mvp-consuming-restful-apis/
http://magenic.com/Blog/Post/6/An-MVP-Pattern-for-Android
Usted puede encontrar el código en los enlaces anteriores y este es uno de mis proyectos utilizados para fines de aprendizaje:
https://bitbucket.org/emaleavil/cheapshark/
Hay muchas cosas que mejorar, pero creo que puede ayudar a empezar, este proyecto está inacabado, lo siento mucho.
- ¿Cómo puedo guardar el estado de mi webview al cambiar la orientación usando un webviewfragment
- Convertir LinearLayout a problema de RestricciónLayout