Las 5 mejores tecnologías de desarrollo de Android para ver en 2020

Aunque el entorno de programación cambia todos los días, Android es, sin duda, la actualización de actualizaciones más frecuente, con novedades cada año o incluso cada mes. Este artículo presenta las 5 principales tecnologías de desarrollo de Android en las que los desarrolladores deben centrarse en 2020.

En la conferencia Droidcon London 2019 donde participaron muchos equipos de desarrollo de Android, una serie de nuevas tecnologías fueron deslumbrantes. Desde la guitarra inteligente accesible [1] presentada por Joe Birch a la próxima biblioteca Jetpack Compose [2], hay demasiadas innovaciones, y la comunidad dominante necesita encontrar varias tecnologías centrales para no perderse.

Este artículo lo llevará a través de algunas tecnologías centrales que deben enfocarse. Al mismo tiempo, este artículo explicará por qué estas tecnologías deben implementarse primero, y algunas formas iniciales para lograrlas. Es importante enfatizar que aunque la implementación de estas tecnologías no sorprenderá a sus usuarios finales, ¡pueden ayudar a los desarrolladores a crear características impactantes y brindarles una base de código más agradable!

1. Kotlin

Kotlin generalmente se considera como el próximo Java, patrocinado por Google y JetBrains (desarrollador de Android Studio). Java ha sido el lenguaje de desarrollo elegido para las aplicaciones de Android desde el principio, pero Kotlin ha ganado popularidad rápidamente en los últimos años. Hoy, casi el 60% de las 10,000 aplicaciones de Google Play usan Kotlin [3]. Aunque algunos casos requieren acceso al código nativo subyacente, C ++ continuará utilizándose; en otros casos, Kotlin puede reemplazar a Java.

La principal ventaja de Kotlin es la interoperabilidad total con Java, lo que significa que los desarrolladores pueden migrar el código antiguo tanto como sea posible sin tener que reescribir completamente la aplicación completa. Los dos idiomas son muy compatibles, y Android Studio incluso puede convertir automáticamente de Java a Kotlin.

Esta compatibilidad, combinada con una sintaxis más concisa y cientos de pequeñas mejoras, hace que Kotlin sea el cuarto "más popular" y el quinto "querer" más grande en la encuesta de desarrolladores de StackOverflow 2019 [4] El lenguaje de programación ocupa el primer lugar entre todos los lenguajes de programación móvil.

Una buena forma de migrar aplicaciones existentes es convertirlas a Kotlin al modificar archivos Java existentes. Aunque esto significa que necesita convertir archivos editados con frecuencia en el pasado, aumentará la complejidad de la revisión del código (como posibles conflictos), pero debido a que el área convertida puede revisarse, puede garantizar que se puedan encontrar problemas.

El código de Kotlin que se usa actualmente en Candyspace representa el 86% (y ha estado creciendo), y el 14% restante es el código de utilidad / transformación, que no se ha cambiado en algunos años.

2. Jetpack

La biblioteca AndroidX / Jetpack de Google es un conjunto de herramientas prácticas diseñadas para simplificar los requisitos comunes de las aplicaciones. Por ejemplo, Sala [5] para la base de datos en el dispositivo, o LiveData [6] para actualizar el contenido de la pantalla cuando cambian los datos subyacentes.

Con la biblioteca Jetpack, el nuevo proyecto ahorra la molestia de reinventar la rueda y no tiene que esperar a que otros desarrolladores abran su implementación en código abierto. Ahora cada desarrollador puede obtener esos elementos básicos. Estas bibliotecas se actualizan con frecuencia, constantemente se introducen nuevas características y se lanzarán correcciones de errores a tiempo. Debido a que estas bibliotecas están diseñadas para trabajar juntas, el uso de más bibliotecas de AndroidX puede ayudar a minimizar los accidentes en la aplicación.

El uso de la biblioteca Jetpack desde el comienzo del trabajo de desarrollo puede ahorrar cientos de horas, pero también podemos migrar las aplicaciones existentes a la biblioteca Jetpack. Aunque pueda parecer engorroso, debido a que estas bibliotecas son tan populares, es fácil encontrar pautas para el trabajo de migración. Al menos, los elementos subyacentes de Android (vistas, fragmentos, etc.) se pueden convertir automáticamente [7].

En Candyspace, utilizamos Data Binding y ViewModel, y pronto podremos unirnos a Room y Navigation.

3. Diseño modular.

Todo el tiempo, la aplicación se ha creado como un gran módulo de "aplicación", que contiene todo lo necesario para toda la aplicación. Aunque esto hace que sea más fácil compartir recursos, también significa que algunas partes de esta aplicación no pueden ser reutilizadas por otras aplicaciones / proyectos de código abierto; lo que es más importante, se debe volver a compilar toda la base de código al realizar cambios en la aplicación.

Por el contrario, si la aplicación consta de muchos módulos más pequeños, solo necesita volver a compilar el código que realizó los cambios, lo que reduce en gran medida el tiempo de compilación. Además, el diseño modular abre la puerta a aplicaciones con funciones avanzadas de Android (como aplicaciones instantáneas; los usuarios pueden usar algunas de las funciones de su aplicación sin instalar nada, y funciones dinámicas: instalar partes de la aplicación a pedido).

Dividir una aplicación existente en múltiples módulos puede ser una tarea muy complicada, porque encontrará el problema previamente oculto ("¿Qué es DateUtility? ¿Por qué lo necesita en cada clase?"); Pero Una vez que se completa la transformación, la base del código entrará en un estado más saludable. Además, si una nueva aplicación requiere una funcionalidad similar, puede reutilizar rápidamente los módulos existentes, ¡ahorrándole tiempo!

Un ejemplo de una arquitectura de aplicación modular (fuente: creada por el autor de este artículo)

Aunque diseñar una arquitectura modular puede ser una tarea compleja, he escrito algunos principios rectores antes [8], inspirados en el artículo de Nikits Kozlov sobre modularidad y tiempo de construcción [9]. Plaid también escribió un artículo que describe su experiencia de migración al diseño modular [10].

En Candyspace, nuestros diseños de aplicaciones son completamente modulares para minimizar la interrupción del tiempo de desarrollo debido al tiempo de construcción.

4. Paquete de aplicaciones

Cuando se utilizan APK tradicionales para distribuir aplicaciones a los dispositivos de los usuarios, se deben instalar todos los recursos preparados para todos los dispositivos. Esto significa que puede haber 5 copias de cada imagen de mapa de bits (para una precisión de pantalla diferente), múltiples versiones de biblioteca para diferentes arquitecturas de dispositivos e incluso múltiples conjuntos de márgenes y valores de relleno.

Al usar App Bundle para distribuir una aplicación, el APK que descarga el usuario contiene solo los recursos que realmente necesita. De esta manera, el tamaño promedio de la aplicación se reducirá en un 20%, y el tamaño de la aplicación se reducirá más significativamente después de que la aplicación no optimizada cambie el formato.

Ejemplo de reducción del tamaño de la aplicación (datos de Google I / O 2018)

Los paquetes de aplicaciones nacieron hace solo 18 meses, ¡pero más del 25% de las aplicaciones ya están instaladas en este formato! Este es el formato recomendado por Google [11], y la mayoría de las aplicaciones pueden usar este formato casi sin cambios, solo procese la firma del paquete de aplicaciones en Play Store.

En Candyspace, estamos migrando a App Bundles mientras intentamos evitar interrumpir nuestro flujo de trabajo existente (Slack, QAing build, instalación que no es de Google Play). El artículo de Alistair Sykes es una gran referencia de migración [12], que tiene en cuenta el uso compartido de aplicaciones internas del servidor CI, Slack y Google Play.

5. Prueba

Si, prueba. Por supuesto, las pruebas no son una nueva característica brillante, ni es lo que los usuarios pueden ver, pero para garantizar la confiabilidad de una aplicación que ya tiene una determinada base de usuarios, debe probar a fondo su aplicación. Dado que la tasa de bloqueo afectará directamente su calificación de Play Store (¡y definitivamente la reducirá!), Debe intentar mantenerla en un nivel bajo.

imagen

Pirámide de prueba (fuente: developer.android.com)

Los tres tipos de prueba más comunes para Android son (en orden descendente):

  • Pruebas unitarias, por ejemplo: ¿Mi función de raíz cuadrada devolverá la raíz cuadrada?

Estas pruebas constituirán la mayor parte de su proceso de prueba, se utilizan para garantizar que un segmento de código específico (como una función) pueda funcionar como se espera. Cuando tiene confianza en una parte, puede usarla para ...

  • Pruebas de integración. Por ejemplo: ¿Puede mi módulo matemático trabajar con el módulo de posición?

Estas pruebas aseguran que sus diversas áreas de código (módulos o capas) puedan funcionar juntas correctamente. Una vez que sepa que los componentes de la aplicación pueden comunicarse entre sí correctamente, puede agregar ...

  • Pruebas de IU automatizadas, por ejemplo: ¿pueden los usuarios marcar una ubicación en la aplicación?

Solo estas pruebas se ejecutan en el dispositivo o emulador, y aseguran que la aplicación brinde la experiencia de usuario completa como se esperaba. Estas pruebas suelen ser mucho más lentas (y más inconvenientes de ejecutar) que otros tipos de pruebas.

Google recomienda que la distribución de las pruebas se establezca en el 70% de las pruebas unitarias, el 20% de las pruebas de integración y el 10% de las pruebas a gran escala. La parte más pequeña requiere un mayor tiempo de ejecución, tiempo de mantenimiento y tiempo de implementación.

El mejor recurso de prueba es el documento oficial [13], porque proporciona una introducción a todos los tipos de prueba y tutoriales sobre cómo implementarlo en el proyecto.

En Candyspace, nos centramos en las pruebas unitarias, que representan una proporción mayor de lo que Google sugiere para garantizar que el comportamiento de todas las nuevas clases sea predecible. Actualmente estamos mejorando las pruebas automatizadas de IU para reducir la dependencia de las pruebas manuales.

En cualquier campo de programación, hay cientos de opiniones diferentes sobre la mejor manera de resolver problemas; pero Android tiene una ventaja absoluta: Android tiene una gran comunidad de desarrolladores, lo que significa que se desarrollará rápidamente una nueva tecnología muy buena Popular entre aquellos. Cuando le pide ayuda a un extraño en Internet, si está buscando "Jetpack LiveData" en lugar de "la biblioteca que el desarrollador anterior copió y convirtió de un amigo desarrollador web", las posibilidades de obtener respuestas exitosas Mucho mas!

La clave para mantener una base de código saludable es poder adaptarse a estos estándares cambiantes y refactorizar los proyectos existentes. Para comprender las últimas prácticas y mejores prácticas de desarrollo de Android, le recomiendo que siga el Blog para desarrolladores de Android [14], / r / AndroidDev subreddit [15] y el Podcast fragmentado [16].

Para la última tecnología, le recomiendo la forma más simple y efectiva de mejorar: mapa mental + video + información

En este también posee una participación incluye el acabado Ali P6P7 Andrews [+] intercambio de información avanzada plantea preguntas a dejar la superficie necesaria , así como la arquitectura técnica avanzada Brain Mapping, entrevista con Android desarrollo temático, materiales avanzados arquitectura avanzada de éstos Todos estos son materiales excelentes que leeré repetidamente en mi tiempo libre. En el mapa del cerebro, cada tema de los puntos de conocimiento está equipado con un proyecto de combate real correspondiente, que puede ayudarte a dominar los puntos de conocimiento.

En resumen, también está aquí para ayudarlo a aprender y avanzar, y les ahorra a todos el tiempo de buscar información en Internet para aprender, y también pueden compartirla con sus amigos para aprender juntos.

Publicado 488 artículos originales · elogiado 85 · 230,000 vistas +

Supongo que te gusta

Origin blog.csdn.net/Coo123_/article/details/104436968
Recomendado
Clasificación