Mejores prácticas / patrones de diseño de codificación para Android

En una pregunta reciente le pregunté que estaba dirigido a este sitio web: http://developer.android.com/design/index.html

Sitio increíble, pero no respondió a una pregunta en particular: ¿Cuáles son las mejores prácticas / patrones de diseño para aplicar en el diseño de una aplicación en forma de código?

Hice las búsquedas para MVC / MVP, etcetera, y mientras que los resultados de los rendimientos, es sólo sobre la aplicación real de dichos patrones, en lugar de otras opciones disponibles y tal.

He intentado descompilar y analizar varias aplicaciones Android instala de forma predeterminada, como el Market, pero realmente no pude encontrar una estructura en el código de Google. ¿Alguien tiene consejos sobre cómo configurar las aplicaciones de Android de tal manera que son mantenibles, extensibles, etc Soy consciente del significado amplio de estas palabras y que son puramente subjetivo para el programador para el caso, pero no puedo Expresarlo de manera diferente.

Una de las mejores prácticas que ya he encontrado es una vista por actividad y tener un montón de actividades en la aplicación para que la backstack funcione correctamente, pero aparte de eso, no tengo ni idea de cómo configurar realmente la actividad en sí.

Debería ver (desde Google IO 2011): http://www.youtube.com/watch?v=WGIU2JX1U5Y

No se trata de ICS sino de panal, pero sigue siendo muy interesante …

Verás que la ActionBar (también hay algunas bibliotecas que te hacen implementar la ActionBar en versiones anteriores de android) es cada vez más importante y se puede encontrar en la mayoría de las aplicaciones google para android …

También el ViewPager se utiliza mucho (para pasar horizontalmente entre diferentes pestañas / vistas), como en el mercado …

Para mantener limpio su proyecto, puede dar a cada actividad un archivo xml independiente, los elementos recurrentes que use deben mantenerse en un archivo xml independiente que puede incluir en cualquier otro archivo xml (pies de página, encabezados, separadores, …)

Espero que esto te ayude a lo largo!

En primer lugar, lea las Guías API en particular las partes sobre Actividades y Fragmentos . Pero si tienes tiempo, lee todas las guías de API, son un gran recurso para entender el desarrollo de Android.

Dependiendo de los dispositivos Android que desee soportar, recomendaría usar la Biblioteca de soporte v4 y la Biblioteca v7 Appcompat . La primera (v4 Support Library) la utilizo siempre debido al soporte de fragmentos anidados ( getChildFragmentManager () – no soportado nativamente en <API 18) y ViewPager . La librería Appcompat es principalmente para apoyar la barra de acción en dispositivos con versiones de Android por debajo de 4.0.

También estudiaría Gradle como su sistema de construcción y [ http://developer.android.com/sdk/installing/studio.html%5D(Android Studio) (libre) o IntelliJ IDEA (comercial) como su IDE.

Teniendo en cuenta las bibliotecas de terceros, la pila de la biblioteca que veo más utilizada en estos días (y uso yo mismo en su mayor parte) son:

  • Guayaba como una biblioteca general auxiliar de Java.
  • Dagger y ButterKnife para la inyección de la dependencia.
  • OkHttp como la biblioteca de transporte HTTP.
  • RetroFit o Volley como bibliotecas REST.
  • Picasso como una biblioteca de carga de imágenes. Tener una buena imagen de carga de la biblioteca cuando se necesita descargar / mostrar imágenes desde el servidor es muy importante en Android porque se encarga de la memoria de manejo y almacenamiento en caché, lo que puede ser muy difícil si intenta hacerlo todo por ti mismo.

Alternativas que también se utilizan mucho son:

  • RoboGuice para la inyección de la dependencia.
  • Cargador de imágenes universal para cargar imágenes.

Otras bibliotecas que utilizo y recomiendo:

  • CommonsWare Android Components , en particular cwac-adapter y cwac-camera . El último es para usar la cámara dentro de su aplicación (en lugar de usar un Intent), que también puede ser muy difícil de hacer usted mismo.
  • HoloAccent , lo que hace que sea realmente fácil de diseñar tu aplicación de Android con temas de Holo.

Chris Banes (conocido desarrollador de Android) ha lanzado recientemente el código fuente de una de sus aplicaciones, que puede utilizar como ejemplo de cómo crear una aplicación de Android utilizando varias de las bibliotecas mencionadas anteriormente.

Lo primero que tienes que aprender es acerca de las actividades de Android realmente muy bien. Grok todo el asunto. Será mucho más fácil seguir adelante desde allí. No entre en los patrones de diseño de Java tan pronto como terminaría tratando de ajustar el problema a su patrón que no termina bien. Vaya a través de los ejemplos en el sitio web para desarrolladores de Android y, a continuación, escriba tanto código como pueda.

Acabo de juntar este sitio web llamado Android App Patterns – http://android-app-patterns.com y muestra los diferentes elementos de la interfaz de usuario y los patrones de interacción de algunas aplicaciones populares se adhieren a Android.

Hay una serie de bibliotecas que le ayudan a implementar los patrones anteriores fácilmente. Por ejemplo:

  1. GreenDroid – https://github.com/cyrilmottier/GreenDroid
  2. ActionBarSherlock – https://github.com/JakeWharton/ActionBarSherlock
  3. Android Ver Badger – https://github.com/jgilfelt/android-viewbadger – Se utilizará para notificaciones
  4. NineOldAndroids – https://github.com/JakeWharton/NineOldAndroids – Utilice la API de animación de HoneyComb todo el camino de regreso a la versión 1.0
  5. Encendido: https://github.com/kaeppler/ignition – Muchos ayudantes para cosas comunes de Android

Una aplicación de Android debe ser rápida. Bueno, es probablemente más exacto decir que debe ser eficiente. Es decir, debe ejecutarse tan eficientemente como sea posible en el entorno del dispositivo móvil, con su limitada capacidad de cómputo y almacenamiento de datos, pantalla más pequeña y duración limitada de la batería. En este blog estoy proporcionando las mejores prácticas a seguir para diseñar para el rendimiento. Para más información

http://www.onsandroid.com/2014/10/android-application-designing-for.html

http://www.onsandroid.com/2013/01/android-best-practices.html

  • Cargando imágenes grandes sin OutOfMemoryError
  • Configurar la barra de herramientas como barra de acción en fragmento
  • InflateException: Línea de archivo XML binario # 22: Error al inflar la clase <unknown>
  • Http Post Con El Cuerpo
  • Evitar las llamadas de método indirecto y redundante
  • Error: el paquete javax.annotation no existe después de la actualización a lombok 1.16.2
  • Permisos de tiempo de ejecución de Android: cómo implementar
  • Guardar en tarjeta SD como archivo de texto
  • Importación de la biblioteca de Facebook en Android Studio: No se pudo encontrar la propiedad 'ANDROID_BUILD_SDK_VERSION'
  • Cifrado en Android usando el algoritmo RSA con módulo dado y exponente
  • Dobles, comas y puntos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.