Sobre los retos del desarrollo móvil

Compartir esta publicación

En estos últimos años hay muchos retos del desarrollo móvil , cada vez más se incrementa el número de usuarios que usan sus dispositivos móviles para todas sus actividades cotidianas, y los usuarios cada vez son más exigentes en el momento de usar una aplicación móvil, tanto para descargarla, usarla y mantenerla instalada.

Hoy seleccionamos 4 puntos clave sobre los retos del desarrollo móvil en la industria.

Sobre los retos del desarrollo móvil

1.- ¿Cómo empezar a utilizar el SDK de Android?

El SDK (Software Development Kit – Kit de Desarrollo de Software) es un conjunto de herramientas desarrollado y distribuido por Google para que los programadores puedan desarrollar aplicaciones que se ejecuten en Android, el sistema operativo móvil más popular a día de hoy. Dentro de este SDK encontramos herramientas que nos permiten interactuar con nuestro dispositivo (instalando aplicaciones desde el ordenador), descompilar un fichero .apk para ver su interior, debuggar nuestras aplicaciones… Aparte de estas herramientas, este SDK contiene las librerías necesarias para poder interactuar con el sistema operativo Android a través de código; esto es, desarrollar nuestras propias aplicaciones. La forma más sencilla de utilizar este SDK es descargarse la herramienta oficial para desarrollar aplicaciones para Android: Android Studio. Este es un IDE que, desde el momento que lo arrancamos, nos permite empezar a programar nuestras propias aplicaciones y ejecutarlas tanto en nuestro dispositivo como en un emulador. Además, Google proporciona cursos gratuitos para iniciarse en el mundo del desarrollo de apps desde su plataforma de Code Labs.

2.- ¿Qué es Google Play Instant y Instant Apps?

¿Alguien se acuerda de las demos de juegos allá por los años 2000? Esos pequeños fragmentos de un juego que te permitían jugar un nivel o dos antes de pedirte que compraras el juego completo. Pues bien, las Instant Apps son el equivalente moderno. En lugar de instalar una aplicación con todas sus funciones en tu dispositivo, puedes acceder a una pequeña parte de ella para probarla o hacer una operación concreta sin tener que instalar nada en tu dispositivo.

  Retry Pattern para hacer tu aplicación más resistente
Android Project CTA

3.- ¿Por qué elegir Flutter para aplicaciones multiplataforma?

Se podría decir que, desde que nacieron las plataformas mobile más populares (Android y iOS) se ha intentado buscar una forma de unificarlas; es decir, se ha intentado que, a partir de una única base de código, obtengamos una aplicación que funcione en Android y otra que funcione en iOS. Hace ya más de 10 años de esto, y, a lo largo de este tiempo, estas tecnologías han ido evolucionando y mejorando. Una de las más populares en los últimos tiempos es Flutter, la apuesta de Google por las aplicaciones cross-platform. Flutter es un framework para desarrollar aplicaciones móviles usando Dart como lenguaje de programación. Es una apuesta muy innovadora por parte de Google ya que es el primer framework de estas características que permite declarar interfaces de usuario de forma declarativa. Aun así, la principal diferencia con sus competidores, y lo que ha hecho que se vuelva tan popular, es que el código de nuestra aplicación Flutter se compila a código nativo para cada plataforma, lo que permite usar todas y cada una de las funcionalidades disponibles en ellas (por ejemplo el acceso a la cámara no se hace a través de plugins como en otros frameworks similares). Flutter también ha conseguido que, a partir de una sola base de código, se consiga un aspecto nativo en Android y iOS, haciendo que sus componentes se transformen a los propios de cada plataforma, lo que desemboca en una mejor experiencia de usuario y un menor esfuerzo por parte de los desarrolladores para adaptar sus aplicaciones a cada una de estas plataformas.

  Las 3 principales lecciones aprendidas en el desarrollo de Android

4.- Top 3 lecciones aprendidas en Desarrollo/Arquitectura Android

A lo largo de nuestros años de experiencia desarrollando aplicaciones Android, hemos aprendido mucho y nos hemos encontrado con errores que son recurrentes en el desarrollo de aplicaciones móviles. Estos son algunos ejemplos de nuestros aprendizajes:

  • El cambio de paradigma con la introducción de ConstraintLayout: Hasta la llegada de este tipo de layout, las vistas se construían anidando LinearLayout dentro de LinearLayout, con algún RelativeLayout o FrameLayout entre ellos. Esto hacía realmente costosa la construcción de vistas por parte del sistema operativo, así como el mantenimiento del código por parte de los desarrolladores, ya que los ficheros .xml con estas vistas eran enormes. ConstraintLayout cambió esto, ya que permite tener una jerarquía de vistas plana, donde el posicionamiento de las vistas se especifica en función de otras vistas y su padre, lo que resuelve la mayoría de los problemas mencionados anteriormente.
  • El mal uso de las Coroutines de Kotlin: Pocos meses después de que Kotlin fuera anunciado como el lenguaje oficialmente recomendado por Google para el desarrollo de aplicaciones Android, aparecieron las coroutines. Las coroutines son una herramienta que nos ayuda a resolver el problema de trabajar con código asíncrono de forma secuencial y no bloqueante en nuestra aplicación. En nuestra experiencia, hemos encontrado que la implementación de estas coroutines en aplicaciones Android no se hace correctamente, ya que no se entiende bien el concepto de ámbito o las implicaciones de lanzar una coroutine sin asociarla al ciclo de vida de una Activity.
  • El mal uso de los ViewModels: Hace algún tiempo, Google lanzó sus librerías de Componentes de Arquitectura, que incluían los ViewModel; una aproximación de Google para solucionar el problema de recrear Actividades/Fragmentos al cambiar, por ejemplo, entre los modos horizontal y vertical de nuestra aplicación. Estos Viewmodels son componentes agnósticos al ciclo de vida de la aplicación, y por eso sobreviven a estos cambios de orientación. A lo largo de nuestra experiencia, nos hemos encontrado con muchos casos en los que existen referencias a vistas dentro del viewModel, o acciones que dependen del ciclo de vida de la Actividad a la que están vinculadas, lo cual va en contra de la razón de ser de estos ViewModels.
  Debugging con Charles Proxy en Android emulator: como hacer el set up?

Si necesitas ayuda con el desarrollo de Android, ¡háznoslo saber! Tenemos desarrolladores Android que están ansiosos por trabajar en proyectos Android prometedores.

Author

  • Diego Ojeda

    Android developer with over 8 years of experience on the platform. Passionate about software architecture, best practices, design patterns & teamwork.

    Ver todas las entradas

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange