Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Diseño de arquitectura Android – ¿Cómo hacerlo bien?

¿Cómo se ve una buena arquitectura para una aplicación para Android? ¿Debe realizarse toda la "lógica de trabajo / negocio" en un servicio de fondo y la Actividad se comunica sólo con el servicio para consultar / extraer datos desde algún lugar (local / distante)?

¿Implementarías el "servicio" que la Actividad llama como un verdadero servicio Android? O un POJO-Singleton que hace el trabajo (tal vez utilizando hilos de fondo). O instanciar los subprocesos de fondo en su actividad para las acciones que consumen mucho tiempo (consulte un servicio web).

  • ¿Cómo se establece el número máximo de caracteres para un EditText en Android?
  • InvalidateOptionsMenu no se llama de fragmento
  • Gradle: añadir dependencia para un sabor específico de la biblioteca
  • El emulador de Visual Studio para Android está atascado en "OS is starting ...", sólo en API Level 23 / Android 6
  • Cómo filtrar una variable en el visor de Eclipse LogCat
  • En android 4.4, eliminar aplicaciones de tareas recientes mata permanentemente la aplicación con su servicio. ¿Alguna idea de por qué?
  • ¿Cómo se abstrae su acceso a los datos de la manera correcta? ¿Utilizarías un ContentProvider para acceder / abstraer tus datos? ¿Cómo / De dónde debe ser consultado? ¿Actividad? ¿Servicio? ..?

    He intentado buscar un buen diseño de arquitectura de aplicaciones, pero solo he encontrado cómo se ve la arquitectura de Android, no cómo debería ser una aplicación de Android.

    Entonces, ¿cuál es su opinión sobre eso? ¿Qué componentes de una aplicación de Android deben comunicarse entre sí para garantizar la mejor extensibilidad / encapsulación, …?

  • El indicador de paginación de círculo no se ve alrededor
  • El método OpenFileOutput () es indefinido!
  • Set Drawable o Bitmap como icono En la notificación en Android
  • Android WebKit enfocado textarea no dibujar imagen de fondo
  • DexIndexOverflowException: No se puede combinar el nuevo índice 65772 en una instrucción no jumbo !: Jumbo Mode? Y / o Multi-Dex? ¿Qué hay detrás de la escena?
  • ¿Cómo mostrar el teclado de Android con el modo de símbolos de forma predeterminada?
  • One Solution collect form web for “Diseño de arquitectura Android – ¿Cómo hacerlo bien?”

    No hay una respuesta a esta pregunta. Un buen diseño de OO no es específico de Android. Yo diría que la regla es – si el marco le da un objeto de alto nivel (como el servicio en el caso de Android) que se adapte a su caso de uso, lo utilizan. Si usted se encuentra haciendo implementaciones POJO de las mismas cosas que obtiene de forma gratuita con el marco, vaya con el marco.

    En cuanto a la separación de las preocupaciones, esto es estándar OO cosas. No ponga nada en sus clases de actividad que no sea el trabajo de la actividad. Sobrecargar la Actividad con métodos y propiedades que la Actividad necesita pero no son realmente el trabajo de la Actividad es malo – hace que la intención de su Actividad sea difícil de entender.

    Por lo general, separar las cosas en sub-paquetes en mis aplicaciones.

    • Com.myname.myproject.app – clases base, funcionalidad de aplicación global
    • Com.myname.myproject.net – cosas de red, utils relacionados con la red
    • Com.myname.myproject.data – ayudantes db, proveedores, etc
    • Com.myname.myproject.model – modelo de objeto

    Etc.

    En cuanto a la comunicación dentro de su aplicación …

    Siempre tengo una clase de aplicación personalizada que me registro en el manifiesto. De esta manera, cuando tengo controladores y ayudantes que necesitan ser una "instancia única", no tengo que hacer todo ese material de singleton seguro de hilo loco … solo conservo una copia global de.

    RoboGuice es un marco de inyección de dependencia que hace que esto sea aún más fácil de lograr … definitivamente vale la pena mirar. Si esto te interesa, el Grupo de Google para RoboGuice es grande y está constantemente lleno de los creadores del marco que básicamente puede responder a cualquier cosa que necesite.

    En cuanto a la comunicación en la aplicación, uso mi controlador de instancia única y las clases de estado para mantener el estado y hacer tareas comunes, y por lo general utilizan BroadcastIntents para comunicar de nuevo a las actividades de los servicios

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.