Las aplicaciones de Android son fáciles de desarrollar pero muy propensas al código de espagueti, compuesto por un montón de fragmentos de código pegados. Sin embargo, si se siguen algunas reglas, le permite desarrollar una base de código elegante para sus aplicaciones de Android según mi experiencia como desarrollador de Android y los errores que encontré al hacer revisiones de código. Aquí hay algunas maneras de diseñar buenas aplicaciones que resistirán la prueba del tiempo y evitarán dolores de cabeza de mantenimiento en el futuro:
- MVC : asegúrese de tener el código dividido en modelos, vistas y controladores. Esta es una de las reglas básicas que puede / debe seguir para cualquier base de código orientada a objetos (el código de la aplicación de Android es principalmente Java, se aplica muy bien aquí). Para Android, considere aproximadamente la clase de actividad y XML como la vista, una clase separada para hablar con el backend y dar y tomar de la interfaz de usuario como controlador y una clase de modelo que representa objetos como estudiantes, maestros, humanos, animales.
- Duplicar tablas de base de datos a clases de modelo : si tiene una tabla de usuario , asegúrese de tener una clase de usuario que tenga exactamente las mismas variables de instancia que las columnas de la base de datos. Esto le permite representar cada fila en una base de datos como un objeto singular de usuario de clase. Esto es muy útil para el procesamiento de datos y el almacenamiento de resultados de consultas seleccionadas.
- Clases internas y métodos onClick () : muchas veces los desarrolladores terminan escribiendo cientos de líneas de métodos onClick () que se escriben dentro de clases internas anónimas. Por favor, evite eso para una mejor legibilidad. Refactorice el código dentro de los métodos onClick () en métodos más pequeños y llámelos dentro del método onClick () .
- Evite demasiados OnClickListeners : si su clase de actividad tiene muchos botones y sus correspondientes onClickListeners , refactorícelos en clases personalizadas fuera de la clase de actividad para una mejor legibilidad. Sin embargo, al hacer esto, podemos perder el control de acceso proporcionado por la naturaleza misma de la clase interna. Una forma de solucionarlo parcialmente sería declarar la nueva clase OnClickListener como protegida y mantenerla en el mismo paquete donde reside la clase de actividad. Esto evita que cualquier otra clase fuera del paquete de la actividad acceda a OnClickListeners
- Modo sin conexión : permita a los usuarios acceder a todas las funciones de la aplicación en la medida de lo posible sin conexión a Internet almacenando temporalmente su información dentro de la aplicación y luego sincronizándola con el backend de la nube una vez que esté conectado a Internet. Esto ayuda a que las aplicaciones tengan éxito en regiones donde la conectividad de la red es mala.
- No almacene PII localmente : no almacene información de identificación personal dentro de una aplicación de Android localmente.
- Use SSL : para conectarse con su proveedor de la nube utilizando la API REST o por otros medios, use siempre una conexión HTTP segura.
- No codifique los nombres de los elementos de la IU : utilice siempre strings.xml para almacenar todos los nombres de los elementos de la IU. Facilita el cambio de nombre en el futuro.
- Múltiples recursos para tamaños de pantalla : intente utilizar múltiples recursos para diferentes tamaños de pantalla. También intente crear diferentes diseños para la orientación vertical y horizontal. Consulte las pautas de Android para admitir pantallas múltiples: Soporte de pantallas múltiples
- Utilice UUID para identificar usuarios de forma exclusiva : no utilice IMEI, IMSI para identificar de forma exclusiva a sus usuarios. Este blog le ayudará a comprender por qué y cómo usar UUID: identificación de instalaciones de aplicaciones
Espero que esto ayude a otros desarrolladores nuevos y existentes. ¡Buena suerte!
- ¿Es posible escribir aplicaciones de Android con C #? ¿Qué plataformas de desarrollo (por ejemplo, Xamarin) lo admiten? ¿Existen limitaciones para escribir aplicaciones de Android con tales kits de desarrollo?
- ¿Cuál es la mejor manera de desarrollar una aplicación de chat en Android con respecto al lenguaje y la arquitectura?
- ¿Puede un programador de Java usar Android SDK sin ningún entrenamiento? ¿Cuál es la diferencia entre Android SDK y Java?
- ¿Es correcto para mí usar Firebase como base de datos para una aplicación de Android en tiempo real, y por qué o por qué no?
- ¿Puedo aprender el desarrollo de Android con solo algunos conocimientos de Java?