Empezar en el desarrollo de apps puede llegar a ser complejo. A medida que las tecnologías avanzan se bifurcan y se generan tantos caminos distintos que puede llegar a ser confuso o podemos gastar energías en partes no tan importantes y obviar otras.
En este artículo vamos a ir desglosando los pasos que daría yo si tuviera que volver a aprender a desarrollar aplicaciones en Android.
Lenguaje de programación
Para el desarrollo de apps nativo solo tenemos dos opciones, Java o Kotlin. Ya solo por el nombre del blog te deberías hacer una idea, pero mi recomendación es que te centres 100% en Kotlin.
A día de hoy aprender Java (o trabajar con él) para el desarrollo de Android es un ERROR. Ya que Google ha elegido Kotlin y desde 2019 es Kotlin First lo que significa que los desarrollos del sistema se han en Kotlin y luego los intentan adaptar a Java. En su página oficial no solo nos hablan de las mejoras de Kotlin respecto a Java sino que también nos muestra una tabla de prioridades para que entendamos realmente lo que significa todo esto.
En este punto si no sabes programar lo mejor que puedes hacer es ponerte a practicar sintaxis, para eso los 10 primeros capítulos del blog te van a ayudar mucho. Si prefieres en vídeo tienes el curso de 12 horas en Youtube.
Entorno de desarrollo – IDE
El entorno de desarrollo será nuestra herramienta principal en el día a día. Para programar en Android tendremos que utilizar Android Studio. Esta herramienta creada por JetBrains nos aportará todo lo necesario, es decir, será la única aplicación que necesitaremos para crear nuestras apps.
Pero si lo que quieres es practicar un poco de sintaxis puedes utilizar la web de Play.Kotlinlang para programar de manera online. No te va a autocompletar ni te permitirá utilizar el SDK de Android.
También te recomiendo que te familiarices con el entorno, vas a trabajar MUCHO con Android Studio así que aprende atajos de teclado y domina su interfaz gráfica.
Diseño de vistas
Actualmente podemos trabajar con las vistas de Android de dos formas.
- Android Views: Se trata de la forma «clásica» de pintar vistas, su utiliza xml para la representación de estas.
- Jetpack Compose: La forma «oficial» que nos recomienda Google para trabajar 100% en Kotlin.
Cada forma tiene sus puntos positivos y negativos. Y aunque Google nos recomiende empezar directamente con Jetpack Compose mi punto de vista es otro. A día de hoy la mayoría de las empresas mantienen código en XML por lo que necesitamos al menos una base de esta antes de pasar a Compose.
Creo que no debes centrarte en XML pero al menos tener conocimientos decentes para poder modificar vistas antiguas es imperativo a día de hoy. Cuando ya tengas eso es el momento de pasarse a Jetpack Compose.
Y recuerda que tienes el Curso Premium de Jetpack Compose en AppCademy para aprovechar toda la potencia de esta nueva tecnología.
En este momento antes de seguir avanzando lo más importante es que practiques. Abre cualquier app de tu teléfono e intenta replicar las vistas. No hace falta lógica pero trabaja duro diseñado vistas hasta que sientas que no tienes ningún tipo de complicación. Ahí es el momento de seguir avanzando.
Si quieres darle un punch final sería el momento perfecto para entender el ciclo de vida de Android.
Persistencia de datos
La persistencia de datos nos permite guardar información en el tiempo de nuestras aplicaciones. A día de hoy la mejor forma de empezar es con DataStore Preferences.
Una vez domines esa tecnología el siguiente paso será entender como funciona SQL para pasar posteriormente a Room.
Room es la herramienta más potente de persistencia de datos local que podemos usar en Android pero si buscas persistencia de datos en la nube la mejor alternativa sería Firebase. Recuerda que tienes disponible el Curso de Firebase para Android con Kotlin desde cero si lo quieres dominar.
Consumo de APIs
Para cerrar lo obligatoriamente necesario tenemos que terminar con el consumo de APIs. Las aplicaciones como norma general suelen seguir el mismo patrón. Un diseño potente que consume la información remotamente a través de servicios o endpoints.
Es por ello que debemos entender la forma de consumir esta información y tratarla. Lo primero sería entender Retrofit, la librería por excelencia para estas acciones.
Junto a Retrofit habrá que hacer hincapié en los ficheros JSON y el parseo de datos. Todo ello explicado en el vídeo anterior, pero si quieres saber aún más tienes el vídeo avanzado.
Este tipo de operaciones las solemos hacer asíncronamente y para ello utilizaremos corrutinas y flows.
Arquitectura
Con lo explicado anteriormente tendrías lo necesario para crear aplicaciones (ojo, eso no significa que sean buenas apps). Pero empezarán a darse situaciones no deseadas, ya que ese código no será escalable ni se podrá mantener en el tiempo.
Para estas situaciones tenemos las arquitecturas y buenas prácticas. Lo primero que debemos hacer es aprender a implementar arquitecturas en nuestros desarrollos y, aunque tengamos varias distintas (cada una irá mejor para algunas determinadas situaciones) Google es muy claro con su recomendación, MVVM.
Model View ViewModel o MVVM es la primera de las arquitecturas que debemos aprender, su sencilla curva de aprendizaje y sus comodidades para trabajar mediante «eventos» que modifican la vista la hace perfecta para el desarrollo Android.
Tenemos una lista de reproducción completa donde se explica TODO lo necesario para montar dicha arquitectura mientras aplicamos todo lo que vamos a necesitar (Clean Architecture, Room, DaggerHilt, etc).
Testing
Vuestro talón de Aquiles, donde los héroes caen. Aquí es donde falla el 90% de los desarrolladores, la gran mayoría no hace de testing o lo hace mal.
Probar la calidad de tus apps es la única forma de asegurarte dormir tranquilo por las noches, un buen test coverage da calma. El problema es que la gente no sabe muy bien por donde empezar o las bases que se disponen son bastante flojas lo que hacen que se empiece mal.
Debes entender qué es el testing y como funciona. Céntrate en test unitarios y de integración. Cuando te hayas pegado con ello puedes pasar a los de UI pero no son tan importantes.
Para que entiendas la importancia del testing, cuando reviso pruebas técnicas si la prueba no tiene testing está automáticamente descartado.
Junto al testing un pequeño recordatorio de que la SEGURIDAD en Android también existe. Revisa Proguard o R8 pero tienes que entender al menos que es la ofuscación y como funciona en las apps.
Temas obligatorios
Aunque no sea Android como tal estos puntos que vamos a ver a continuación marcarán la diferencia entre conseguir trabajo o no.
- Aprende Git: Cualquier empresa lo va a utilizar y si no sabes como funciona no podrás trabajar en equipo. Te dejo un curso de una hora totalmente gratuíto.
- Sube tu código a GitHub: Pero no cualquiera, código de calidad del cual estés orgullos@, será crucial cuando las empresas quieran revisar tu forma de programar.
- Publica alguna app en la PlayStore: Es una pregunta que siempre hago en las entrevistas ¿Tienes alguna app subida? ¿Sabes como hacerlo? La PlayStore es malvada pero debemos conocerla. Aprende a subir apps a la Playstore.
- Inglés: Documentación, tutoriales, comunicación, etc. Todo es en inglés y un buen nivel te abrirá más puertas de las que esperas.
- Suscríbete a AristiDevs: Ayúdame a seguir creando contenido como este. Puedes suscribirte en Youtube desde aquí.
Si te ha gustado puedes seguirme en mis redes sociales en Aristi.Dev. Y si tienes dudas con este o cualquier otro artículo del blog únete al Discord de la comunidad y te ayudaremos.
Si no sé nada de programación, ni creación web… cómo me recomendarías empezar? Qué ROADMAP debería seguir?
Pues dependiendo de lo que te interese dedicarte.
Pues aprender Kotlin, lo que haga falta para aprenderlo, pero siguiendo un ROADMAP. Qué me recomendarías?
Pues este que comento