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?
- ¿Cuál es la cantidad máxima de elementos que podemos almacenar en la matriz de bytes en Java?
- Base64 codificar archivo de audio y enviar como una cadena y luego decodificar la cadena
- ¿Diferencia entre appcompat_v7 y android-support-v7-appcompat?
- Guardar vista como mapa de bits, sólo obtener pantalla en negro
- Los animadores sólo se pueden ejecutar en temas Looper Android
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í.
- Error de instalación en Android Gingerbread y Froyo - INSTALL_FAILED_DEXOPT
- Señal de error de Android 11 cuando una película dibuja en un lienzo
- ViewPager java.lang.OutOfMemoryError: el tamaño de mapa de bits supera el presupuesto de VM
- ¿Cuáles son los 37 paquetes de Java API posiblemente gravados por la decisión de Oracle v de mayo de 2014?
- Cómo mostrar la selección del primer elemento en la vista de reciclador en android?
- SwitchPreference y CheckBoxPreference en el código
- Qué es "serviceAccountKey.json" que se refiere en el tutorial de notificaciones de dispositivo a dispositivo de Firebase
- Después de la actualización - crash com.google.android.gms: play-services: 5.2.8
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:
- GreenDroid – https://github.com/cyrilmottier/GreenDroid
- ActionBarSherlock – https://github.com/JakeWharton/ActionBarSherlock
- Android Ver Badger – https://github.com/jgilfelt/android-viewbadger – Se utilizará para notificaciones
- 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
- 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
- Cómo hacer una imagen en forma circular?
- Limitando el número de filas en una función ContentResolver.query ()