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 crear EditText con esquinas redondeadas?
  • Usando retrofit con persistencia de Cookie
  • Entrada enmascarada no funciona en móviles android?
  • No se puede desplazar AppBarLayout y contraer la barra de herramientas con NestedScrollView sin problemas
  • MOTODEV Studio vs Google Android plugin
  • Selector de tiempo que muestra el tiempo como 4: 7 en lugar de 04:07
  • ¿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, …?

  • ¿Android consigue el timestamp actual?
  • Almacenar datos estáticos en Android - recurso personalizado?
  • Android: gira todo el diseño
  • In-App Billing v3 - No detecte reembolso
  • ¿Cómo eliminar un archivo de la tarjeta SD?
  • Las pantallas de bienvenida de Apache Cordova no se muestran en Android
  • 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.