Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mouredev/android-developer-roadmap

Ruta de aprendizaje desde cero para convertirte en Android Developer
https://github.com/mouredev/android-developer-roadmap

android android-studio jetpack-compose kotlin roadmap

Last synced: 3 days ago
JSON representation

Ruta de aprendizaje desde cero para convertirte en Android Developer

Awesome Lists containing this project

README

        

# 📲 Android Developer Roadmap
## Ruta de aprendizaje desde cero para convertirte en Android Developer en 2022
> ℹ️ He creado este repositorio para actualizarlo continuamente con recursos de aprendizaje de dentro y fuera de la comunidad.
>
> ⚠️ **IMPORTANTE:** No dudes en sugerir [cambios](https://github.com/mouredev/Android-Developer-Roadmap/discussions), hacer [pull request](https://github.com/mouredev/Android-Developer-Roadmap/pulls) o crear una nueva [issue](https://github.com/mouredev/Android-Developer-Roadmap/issues) para compartir tus recursos y así añadirlos al repo con intención de crear una gran guía de estudio.

## Introducción

**▶️ Antes de empezar te servirá de ayuda ver una introducción detallada donde explico el roadmap y el funcionamiento del repositorio en mi tutorial de [YouTube](https://youtu.be/fWGTILchXTM).**

## Proceso de aprendizaje
Debes entender que aprender programación es una carrera de fondo. Tendrás mejores y peores momentos, pero, ¿sabes qué? **¡Le pasa a todo el mundo!**. Al final del trayecto te espera un sector lleno de grandes oportunidades. Te recomiendo que te unas a nuestro servidor de Discord, donde compartimos recursos y nos ayudamos.

[![Discord](https://img.shields.io/badge/Discord-Únete_a_nuestra_comunindad-5865F2?style=for-the-badge&logo=discord&logoColor=white&labelColor=101010)](https://mouredev.com/discord)

Para mejorar nuestras habilidades publico retos de programación semanales y mensuales en estos dos repositorios. También desarrollamos nuestra aplicación real [Twitimer](https://twitimer.com/), disponible en Google Play Store y Huawei AppGallery, con todo su código público.

[![Reto mensual](https://img.shields.io/github/stars/mouredev/Monthly-App-Challenge-2022?label=Reto%20mensual&style=social)](https://github.com/mouredev/Monthly-App-Challenge-2022)
[![Reto semanal](https://img.shields.io/github/stars/mouredev/Weekly-Challenge-2022-Kotlin?label=Reto%20semanal%20Kotlin/Android&style=social)](https://github.com/mouredev/Weekly-Challenge-2022-Kotlin)
[![Twitimer](https://img.shields.io/github/stars/mouredev/Twitimer-Android?label=Twitimer%20Android&style=social)](https://github.com/mouredev/Twitimer-Android)

🍏 Este roadmap también lo tienes disponible para desarrollo de aplicaciones en entornos Apple.

[![Apple Developer Roadmap](https://img.shields.io/github/stars/mouredev/Apple-Developer-Roadmap?label=Roadmap%20Apple%20Developer&style=social)](https://github.com/mouredev/Apple-Developer-Roadmap)

## Fuentes de información
Recuerda la importancia de desarrollar habilidades para resolver problemas y encontrar información relevante. Puede sonar mal, pero [Google](https://www.google.com/) es una de nuestras principales herramientas de trabajo, y debemos saber usarlo. Otros lugares que debes conocer son:

* [Android Developer](https://developer.android.com/): Sitio web oficial para desarrolladores Android
* [GitHub](https://github.com/): Repositorio de código público más grande del mundo
* [Stack Overflow](https://stackoverflow.com/): Resolución de problemas
* [Medium](https://medium.com/) y [Dev.to](https://dev.to/): Artículos de interés

## Ruta de aprendizaje
El roadmap estará compuesto por algunos recursos oficiales, otros creados por mí, y por los sugeridos desde la propia comunidad como comento al principio de este documento. *Por supuesto, esta mi ruta personal para aprender desarrollo de aplicaciones desde cero y dedicarte profesionalmente a ello (en ningún momento quiero que pienses que es la mejor o la única, simplemente es la que yo creo que te puede ayudar).*

> 📈 **A continuación tendrás el roadmap formado por un listado de conocimientos a adquirir (así como distintos sitios web donde comenzar su aprendizaje). Este listado se irá actualizando y completando, incluso creando nuevos documentos para agrupar enlaces de interés.**

### 1️⃣ Lenguaje de programación: Kotlin
Debes aprender sus fundamentos, tipos de datos primivos y estructuras, flujo lógico y paradigma de programación orientada a objetos.

* [KotlinLang.org sitio web oficial](https://kotlinlang.org/)
* [Cursos en KotlinLang.org](https://kotlinlang.org/education/)
* [TUTORIAL Kotlin desde cero](https://youtu.be/ebQphhLpJG0)
* [TUTORIAL Kotlin intermedio](https://youtu.be/AA3N_yQQtHY)

### 2️⃣ Editores de código: Android Studio y Kotlin Playground Online
Puedes usar estos dos editores de código para aprender Kotlin, eso sí, para crear aplicaciones no podrás hacerlo con el editor online.

* [Android Studio](https://developer.android.com/studio)
* [Kotlin Playground Online](https://play.kotlinlang.org/)
* [TUTORIAL Android Studio](https://youtu.be/BQaxPwZWboA)

También debes comenzar a conocer otros conceptos importantes dentro de la ingeniería de software:

* Expresiones regulares.
* Recursividad.
* Notación asintótica.
* Funciones de orden superior.
* Porgramación orientada a objetos.

### 3️⃣ Librerías y Frameworks: Android Views y Jetpack Compose
Es hora de comenzar a trabajar con las librerías de código que nos proporciona Android para crear Apps. Nos centraremos en las especializadas en creación de interfaces de usuario (UI): Android Views y Jetpack Compose (el nuevo framework lanzado en 2021 diseñado para poco a poco sustituir a Android Views).

* [Jetpack Compose](https://developer.android.com/jetpack/compose)
* [Android Views](https://developer.android.com/guide/topics/ui/declaring-layout)
* [TUTORIAL Jetpack Compose](https://youtu.be/yVIGAvMO3bc)

Otros conceptos importantes a tener en cuenta:

* XML
* Programación orientada a estados.
* Programación imperativa.
* Programación declarativa.
* Programación funcional.

### 4️⃣ Guías de desarrollo y diseño
La documentación oficial de Android es esencial para conocer sus normas, recomendaciones y procesos.

* [Guía de desarrollo oficial](https://developer.android.com/guide)
* [Guía Material Design oficial](https://material.io/)

No olvides la importancia de los siguiente conceptos:

* Comentarios de código.
* [Markdown](https://www.markdownguide.org/) como lenguaje marcador para generar documentación.

### 5️⃣ Patrones de diseño
Mecanismos para resolver de forma elegante problemas comunes en programación

[Estos son algunos de los principales](https://refactoring.guru/es/design-patterns):

* Singleton.
* Factory.
* Builder.
* Adapter.
* Facade.
* Observer.
* Iterator.
* ...

### 6️⃣ Arquitectura de software: MVC y MVVM
La arquitectura de software de nuestro programa hace referencia a cómo se estructura nuestro programa en capas y cuál es la responsabilidad de cada una de las piezas que conforman nuestra App.

* MVC (Modelo-Vista-Controlador): Arquitectura básica.
* MVVM (Modelo-Vista-VistaModelo): Arquitectura más avanzada.

Sigue trabajando estos nuevos conceptos:

* Principios SOLID.
* Programación en base a código limpio.

### 7️⃣ Funcionalidades
Implementaciones de características muy habituales en aplicaciones de todo tipo que debes conocer.

* Almacenamiento de datos:
* [SharedPreferences](https://developer.android.com/training/data-storage/shared-preferences)
* [Room](https://developer.android.com/training/data-storage/room)
* [Realm](https://github.com/realm/realm-kotlin)

* Conexión con servidor remoto:
* [REST](https://restfulapi.net/)
* [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview)
* [JSON](https://www.json.org/json-en.html)
* [Concurrencia y asincronía](https://kotlinlang.org/docs/native-concurrency.html)

* Otras funcionalidades:
* [Android Jetpack](https://developer.android.com/jetpack)
* [TUTORIAL servicios Firebase](https://youtu.be/KYPc7CAYJOw)

Gestor de dependencias para ayudarnos a trabajar con código de terceros y gestionar el ciclo de vida de la aplicación:

* [Gradle.org](https://gradle.org/)

### 8️⃣ Esenciales
Aprender a desarrollar aplicaciones para entornos Android precisa de otras habilidades esenciales no directamente relacionadas.

* Aprende Inglés: La mayor parte de la documentación y código se escribe en este idioma.
* [Cambly](https://www.cambly.com/invite/YDVHFWXN?st=011422&sc=4) te permite aprender online con profesores nativos de forma online.
* [Git](https://git-scm.com/): Es básico saber trabajar con el gestor de versiones más utilizado.
* Puedes ayudarte usando clientes gráficos como [GitKraken](https://www.gitkraken.com/invite/cZWhJq1v) (en vez de hacer todo por línea de comandos).

### 9️⃣ Pruebas
Debes adquirir habilidades de testing y debug para mantener tu código íntegro y libre de errores.

* [TUTORIAL Testing en Google Play](https://youtu.be/z_8gp_IaeVI): La plataforma oficial de test de aplicaciones de Android.

### 1️⃣0️⃣ Publicación
Ya sólo falta cómo desplegar aplicaciones en la Google Play Store.

* [TUTORIAL Google Play Store](https://youtu.be/vBHmJHp8Ldo)

🎓 **EXTRAS:** Aquí te dejo algún recurso extra relacionado con aprendizaje y obtención de certificaciones:

* [Google Codelabs](https://codelabs.developers.google.com/)
* [JetBrains Kotlin Partner](https://www.jetbrains.com/company/partners/kotlin/)*
* [Associate Android Developer](https://developers.google.com/certification/associate-android-developer)
* [Google Developer Expert](https://developers.google.com/community/experts)

> Este es el roadmap básico para convertirse en Apple Developer. No olvides hacer ⭐️ para seguir sus futuras actualizaciones.
> Ayúdame a mejorar con tu feedback ¡MUCHAS GRACIAS!

#### Puedes apoyar mi trabajo haciendo "☆ Star" en el repo o nominarme a "GitHub Star". ¡Gracias!

[![GitHub Star](https://img.shields.io/badge/GitHub-Nominar_a_star-yellow?style=for-the-badge&logo=github&logoColor=white&labelColor=101010)](https://stars.github.com/nominate/)

## ![https://mouredev.com](https://raw.githubusercontent.com/mouredev/mouredev/master/mouredev_emote.png) Hola, mi nombre es Brais Moure.
### Freelance full-stack iOS & Android engineer

[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCxPD7bsocoAMq8Dj18kmGyQ?style=social)](https://youtube.com/mouredevapps?sub_confirmation=1)
[![Twitch Status](https://img.shields.io/twitch/status/mouredev?style=social)](https://twitch.com/mouredev)
[![Discord](https://img.shields.io/discord/729672926432985098?style=social&label=Discord&logo=discord)](https://mouredev.com/discord)
[![Twitter Follow](https://img.shields.io/twitter/follow/mouredev?style=social)](https://twitter.com/mouredev)
![GitHub Followers](https://img.shields.io/github/followers/mouredev?style=social)

Soy ingeniero de software desde hace más de 12 años. Desde hace 4 años combino mi trabajo desarrollando Apps con creación de contenido formativo sobre programación y tecnología en diferentes redes sociales como **[@mouredev](https://moure.dev)**.

### En mi perfil de GitHub tienes más información

[![Web](https://img.shields.io/badge/GitHub-MoureDev-14a1f0?style=for-the-badge&logo=github&logoColor=white&labelColor=101010)](https://github.com/mouredev)