Mejores prácticas para "capa de datos" en las aplicaciones para clientes de Android

Aquí hay una pregunta de diseño / mejores prácticas.

Soy nuevo en el desarrollo de Android, y básicamente nuevo en soluciones web / móviles.

Por lo tanto, mi pregunta es – ¿cuáles son las mejores prácticas al organizar la estructura de la aplicación Android que obtener datos desde el servidor remoto?

¿Debe solicitar al servidor ir a una clase que hace comunicación con el servidor (obtener y enviar solicitudes), o debo mirar a mis solicitudes como fuente de datos, lo que significa que cada clase de datos se encarga de sí mismo?

O debo tener más niveles de abstracción – un nivel para la adquisición de datos, otro para el modelo que utiliza algunas interfaces sin saber de qué fuente los datos vienen?

Tengo curiosidad por cómo los desarrolladores androides experimentados se acercan a estos problemas de diseño …

Virgil Dobjanschi presentación es un buen recurso como se señaló anteriormente, que básicamente le dice a ejecutar sus peticiones de un servicio de fondo para que la actividad no se destruye y para almacenar sus datos en la base de datos lo antes posible.

Para obtener más detalles técnicos, la forma en que lo hago es dividir la aplicación en tres componentes:

1- Biblioteca para encapsular el manejo de la solicitud HTTP y la respuesta (con ApacheHTTP), que puede manejar la simple solicitud / respuesta y características avanzadas que pueden implicar cookies (puede ser necesario para iniciar sesión) y modificar el encabezado HTTP.

2- Marshal / Unmarsha capa, donde analizar los datos del servidor (por ejemplo, XML o JSON) y convertirlo en objetos (es decir, modelos) que el resto de mi aplicación se ocupará.

3- Capa de persistencia.

Según la presentación de Dobjanschi, por lo general, las solicitudes de datos se ejecutan en un servicio no en un thread worker dentro de la actividad.

Utilice uno de los 3 modelos presentados en esta charla de E / S de Google. Proporciona sugerencias que le ayudarán en todo el proceso de definición de la arquitectura de su aplicación. También evitará que cometa errores comunes que los principiantes usan para hacer:

http://www.youtube.com/watch?v=xHXn3Kg2IQE

Esta publicación también le ayudará a:

Ejemplo de la necesidad del cliente del DESECHO de Androide que implementa el patrón de la ejecución de REST de Virgil Dobjanschi

  • Demasiado repetitivo, ¿cómo puedo reducir mis constructores de POJO?
  • Singletons vs. Contexto de la aplicación en Android?
  • ¿Cómo compartir datos entre dos presentadores en la arquitectura MVP en Android?
  • Comparación de MVC de Java con patrón de diseño Android
  • Arquitectura limpia contra MVPC / MVC / MVP
  • Android Patrones arquitectónicos
  • Buenas prácticas para la comunicación asíncrona entre servicios
  • Adaptador genérico para muchos tipos de fila de presentación de listview en android
  • Arquitectura de la aplicación de Android: ¿cuál es el modelo sugerido?
  • Uso del servicio como singleton en Android
  • Android y OOP - Variables globales vs heredados Getters en fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.