Flujo de trabajo de desarrollo de aplicaciones Android más eficiente?
Actualmente estoy desarrollando mi primera aplicación, y estoy notando ciertos patrones de flujo de trabajo que están surgiendo. Específicamente, las aplicaciones de Android siguen una especie de flujo de actividad de usuario similar al de un árbol, donde cada acción del usuario normalmente se desplaza hacia una rama más profunda del árbol o vuelve a la raíz.
Por lo tanto, el patrón de desarrollo que parece emerger de esto es: añadir widgets de acción -> añadir métodos de escucha para ellos -> que envían intenciones para iniciar nuevas actividades y pasarles datos -> construir los nuevos diseños de actividades y clases para recibir estos datos – > Repetir.
- Biblioteca de archivos de Android (aar) vs jar estándar
- Parcelable y herencia en Android
- ¿El método ArrayList.clear () libera memoria?
- NullPointerException - Drawable.setBounds - probablemente debido a transiciones de fragmentos
- ¿Cómo puedo contar el número de archivos con una extensión específica en Android?
Luego, en ciertas actividades habrá widgets que muestren datos de la base de datos (por lo que hay que configurar CursorAdapters, etc.) y algunos que modifiquen los datos de la base de datos (por lo que tendrá que implementar métodos de actualización / adición / eliminación).
Mi pregunta es: ¿hay alguna forma de automatizar este flujo de trabajo, o de hacerlo más eficiente? Es decir, ¿existe algún tipo de scripting basado en esquema en algún lugar donde extraiga la estructura de árbol de sus actividades, y qué elementos necesitarán CursorAdapters etc, y luego escribe clases de esqueleto para ese esquema? Parece que la codificación "trabajo del perro", por así decirlo, como martillar los aspectos esqueleto de la aplicación, ocupan una gran cantidad de trabajo de mecanografía en comparación con la funcionalidad carnosa.
Supongo que lo que estoy buscando es una idea de cómo los codificadores de energía o 'elite' normalmente escriben aplicaciones para Android.
Aclamaciones
- ServerSocket accept () no acepta conexiones en Android
- Android: error al abrir el archivo de rastreo: ningún archivo o directorio de este tipo
- Eliminar todo después de una parte de una cadena
- ¿Cómo configurar IntelliJ para Mac para mostrar la documentación de Java y Android dentro del editor (offline, no en línea)?
- Android - ImageLoader debe ser init con la configuración antes de usar en UIL
- Los anuncios de anuncios publicitarios se publican una sola vez
- Error de sincronización Gradle: no se puede encontrar el método
- Precargar la vista Web en la actividad A y pasarla a la actividad B para una carga más rápida
No conozco un lenguaje de scripting basado en esquemas que pueda crear esqueletos de proyecto para usted, pero algo similar podría ser posible con la generación de código UML a Java de IntelliJ (nunca lo he probado).
Sin embargo, esta es la forma en que típicamente reducir el código de placa de la caldera en los proyectos de Android:
-
Android Studio hará mucho trabajo para usted. Por ejemplo, la creación de una nueva "Actividad en Blanco con Fragmento" creará la actividad, el fragmento y los diseños de xml para usted con la placa de caldera básica.
-
Además de las plantillas incorporadas, puede crear sus propias plantillas en Android Studio utilizando "Herramientas >> Guardar archivo como plantilla". También el checkout "Código >> Generar" para sus POJOs.
-
Cree Fragmentos y vistas que pueden ser reutilizados por múltiples actividades, orientaciones y tamaños de pantalla.
-
Utilice las bibliotecas de terceros para reducir algunos de la placa de la caldera y sortear algunos paradigmas ineficientes en Android, específicamente:
- ButterKnife , Icepick , Parceler , Auto y AndroidAnnotations generarán código para usted usando anotaciones
- EventBus y RxJava son buenos para reducir el código para obtener y pasar datos / eventos entre hilos.
- Retrofit y OkHttp reducirán el código si está intentando conectarse a una API de reposo.
- GreenDao (o muchos otros eg OrmLite ) ayudará con la base de datos manejando métodos CRUD básicos y dándole capacidades de ORM.
- Picasso reduce enormemente el código de carga y almacenamiento en caché de imágenes de cualquier URI (local o remoto)
En general, sólo tenga cuidado con los generadores de código de anotación. Asegúrese de que generan código en tiempo de compilación y no de tiempo de ejecución (reflexión), o que la reflexión no causa problemas graves. Para una lista más grande de bibliotecas buenas vea:
https://github.com/codepath/android_guides/wiki/Must-Have-Libraries
Como has dicho, muchas aplicaciones en Android pueden compartir la misma arquitectura de software y la misma organización de código.
No tengo conocimiento de algunos generadores de código que pueden generar plantillas de Android Studio basadas en preferencias configurables, pero he creado un proyecto de estudio de Android de tutorial / plantilla que puede clonar / forjar y crear su aplicación encima de él.
El patrón arquitectónico empleado en esta plantilla es MVC – un patrón arquitectónico ampliamente aceptado para la construcción de un software "orientado al usuario", que fue pasado por alto por los arquitectos principales de AOSP (IMHO). Construir tus aplicaciones en la parte superior de una única plantilla usando patrones arquitectónicos únicos tiene una gran ventaja – una vez acostumbrado a la plantilla, serás mucho más eficiente escribiendo y depurando tus aplicaciones.
Además, la organización del código empleada en esta plantilla separa entre la lógica de negocio real (que usted llamó la "funcionalidad meaty") y la "aburrida" UI que maneja la materia.
Puede encontrar el proyecto tutorial / template MVC aquí: https://github.com/techyourchance/android_mvc_template
- En algún momento no recibe notificación push GCM en Mobile
- No se pueden recibir mensajes con Google Cloud Messaging para Android (no la biblioteca de ayuda)