Cómo volverse Android Developer

Daniel Mendoza
Huawei Developers Latinoamérica
5 min readNov 5, 2020

Si estás leyendo esto quzá ya decidiste o estás considerando dedicarte al desarrollo de aplicaciones Android. Antes que nada permíteme darte la bienvenida, pues acabas de entrar a un mundo lleno de tecnologías y comunidades increibles, sin embargo, es un mundo tan amplio que quzá pueda resultar abrumador para alguien que recién comienza. Es por eso que he decidido escribir este artículo, esperando que puedas usarlo como punto de partida en tu formación como Android Developer.

El punto de partida

Antes de comenzar a buscar documentación o videotutoriales, detente por un momento y analiza tu situación actual. ¿Dominas algún lenguaje de programación o un framework en específico? A continuación te propongo algunos puntos de partida según tu nivel de cconocimientos y experiencia.

  • Curso de Java o Kotlin: Te recomiendo comenzar por aquí si eres aficionado o recién comenzaste a estudiar la carrera. Aquí es importante prestar especial atención a los conceptos de Encapsulamiento, Herencia, Interfaces, Clases Abstractas, Polimorfismo, Hilos y Estructuras de Datos. No es recomendable comenzar en el desarrollo Android sin antes entender estos conceptos, pues gran parte de los recursos técnicos sobre Android dan por hecho que los comprendes.

Una vez que completes este curso o ya tengas experiencia en alguna otra área del desarrollo de software, podrás continuar con tu aprendizaje en Android de forma nativa o con una plataforma híbrida.

  • Android nativo con Java: Empieza o continua por aquí si ya dominas y te sientes cómodo con Java. Es recomendable que te enfoques primero en los Activitys, Fragments (ciclo de vida de ambos), Layouts, Intents, Resources y Gradle, para que posteriormente puedas continuar con RecyclerView, Services, BroadcastReceiver, Dependencias, Material Components, etc.
  • Android nativo con Kotlin: Las mismas recomendaciones que en el punto anterior, pero Kotlin es quizá más recomendable que Java para desarrollar aplicaciones android nativas, ya que con Kotlin Mobile Multiplatform (KMM) podrías incluso desarrollar apps para IOS. Además, si ya dominas Java, no te tomará mucho tiempo migrar a Kotlin.
  • Xamarin Forms: Si ya tienes experiencia desarrollando aplicaciones con .NET, quizá la mejor forma de introducirte en android es a traves del framework de Xamarin. Bastará con que instales un par de plugins en Visual Studio para que puedas comenzar a desarrollar. Hay muchos materiales y recursos en Internet, así como la documentación oficial de Microsoft.
  • Flutter: Esta plataforma originalmente estaba pensada para crear interfaces gráficas, pero con el tiempo y el soporte tanto de la comunidad, como de sus creadores, se consolidó como una de las cross-platform más importantes del desarrollo móvil. Funciona con su propio lenguaje llamado Dart, si tienes ciertas nociones de JavaScript, la curva de aprendizaje de Flutter no debería suponerte un problema.
  • React Native: Recomendable para desarrolladores con experiencia previa en el desarrollo con el Framework de React, aunque si ya has tenido experiencia con Node JS puedes dedicar algo de tiempo a estudiar React y luego comenzar a desarrollar con React Native.
  • Ionic: Esta plataforma permite desarrollar apps multiplataforma con HTML, CSS y JavaScript. Aunque originalmente funcionaba con Angular, ahora soporta también React y Vue. Recomendable si ya tienes una aplicación web, pues podrás reutilizar gran parte de tu código.

Desarrollo móvil Híbrido vs Nativo

No vamos a entrar en debate sobre cuál es mejor, simplemente te plantearé algunos pros y contras de cada uno, de la forma más objetiva posible para que puedas tomar la decisión que mejor se ajuste a ti.

Desarrollo Android nativo

Pros:

  • Cuenta con soporte oficial de Google: Esto significa que los SDKs nativos y su documentación serán los primeros en actualizarse en cuanto se libere una nueva versión de Android o se agregue alguna nueva librería.
  • Alto rendimiento: Una app nativa tendrá un alto rendimiento pues está diseñada para correr específicamente en Android con componentes propios de la plataforma.
  • Acceso completo a los recursos: Dispones de todas las APIs para interactuar con el Hardware y el Software del dispositivo (con sus respectivas restricciones en cuanto a permisos).

Contras:

  • Android Only: Se requieren uno o más desarrolladores por plataforma si la app se quiere lanzaren IOS, desktop y Web.
  • Alto costo: Al requerir al menos un desarrollador por plataforma se elevan los costos de mantenimiento.
  • Pocos lenguajes soportados: Sólo se soporta Java, Kotlin y C++ en casos muy específicos.

Desarrollo Android híbrido

Pros:

  • Multiplataforma: Genera apps que corren en diversas plataformas desde una sola base de código, reduciendo el costo de mantenimiento.
  • Multiples lenguajes de programación: Es muy probable que encuentres alguna plataforma para desarrollar con tu lenguaje de programación favorito.
  • Soporte: Los creadores de estas plataformas buscan que su producto sea tu favorito, por lo que dedican bastante esfuerzo en añadir características y mejoras. Además permiten que la misma comunidad agregue soporte dándoles la posibilidad de publicar sus plug-ins en repositorios dedicados.

Contras:

  • Bajo rendimiento: Algunas plataformas no proporcionan rendimiento nativo, sino que el contenido se renderiza en un WebView (aunque esto ya no es muy común o no supone un grán problema).
  • Retardo en las actualizaciones: Cada vez que hay cambios en los SDKs nativos, los desarolladores híbridos deben esperar a que el proveedor del SDK, los creadores de la plataforma, o algún miembro de la comunidad actualice el plug-in correspondiente.
  • Dependencia de los plug-ins: Es posible que algunas características no sean accesibles desde el SDK por defecto de la plataforma, por ejemplo, en React Native se requiere la instalación de un plug-in de terceros para desplegar notificaciones locales (notification manager).
  • Dependencia del código nativo: Puede que no logres librarte por completo del código nativo, esto sucede en las plataformas que transforman tu base de código en proyectos nativos para cada plataforma. Es probable que debas hacer un par de modificaciones al código nativo generado para cumplir con los cambios de comportamiento de las nuevas versiones de Android.

Consideraciones adicionales

El inglés

Si bién la documentación oficial de cualquier plataforma (sea híbrida o nativa) estará en inglés, no debes preocuparte si aún no dominas el idioma. Hay muchos cursos, artículos y video tutoriales en internet completamente en español y con contenido de alta calidad.

El inglés es una excelente herramienta que si bien puede ayudarte a impulsar tu carrera profesional, no debe ser una barrera durante tu proceso de aprendizaje. Puedes aprender ambas cosas a la par.

Las comunidades

Existen comunidades enteras y muy grandes para desarrollo híbrido y nativo, si tienes algún problema durante tu formación, pregunta a los miembros de la comunidad, seguramente alguien ya pasó por lo mismo y cuenta con una solución.

Cursos

En cuanto leíste la palabra curso en la primera parte de este artículo, probablemente pensaste en la necesidad de comprar uno. Los cursos de pago si bién en su mayoría están muy bien producidos y bien explicados, no son absolutamente necesarios, puedes tomar cursos gratuitos, ver videotutoriales, asistir a meetups y acceder a muchos otros recursos de aprendizaje sin costo. Si tienes oportunidad de pagar un curso puedes solicitar recomendaciones a algún miembro de la comunidad, si no, tampoco hay problema.

GitHub

Es común que dentro de las comunidades, los miembros compartan sus repositorios de GitHub, leer el código de personas más experimentadas que tú te ayudará a mejorar tus habilidades, sobre todo si el autor hace uso de buenas practicas de programación.

Eso es todo por ahora, si te interesa el desarrollo Android nativo te invito a que me sigas. Pronto estaré compartiendo más contenido que podría serte de ayuda durante tu formación.

--

--