Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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

Cómo convertirte en Apple Developer (iOS, iPadOS, macOS, watchOS, tvOS)
https://github.com/mouredev/apple-developer-roadmap

apple ios roadmap swift swiftui tutorial uikit xcode

Last synced: 1 day ago
JSON representation

Cómo convertirte en Apple Developer (iOS, iPadOS, macOS, watchOS, tvOS)

Awesome Lists containing this project

README

        

# 📲 Apple Developer Roadmap
## Ruta de aprendizaje desde cero para convertirte en Apple Developer en 2022 (iOS, iPadOS, macOS, watchOS, tvOS)
> ℹ️ 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/Apple-Developer-Roadmap/discussions), hacer [pull request](https://github.com/mouredev/Apple-Developer-Roadmap/pulls) o crear una nueva [issue](https://github.com/mouredev/Apple-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/-w3R4DEwd2g).**

## 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 la App Store y 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-Swift?label=Reto%20semanal%20Swift/iOS&style=social)](https://github.com/mouredev/Weekly-Challenge-2022-Swift)
[![Twitimer](https://img.shields.io/github/stars/mouredev/Twitimer-iOS?label=Twitimer%20iOS&style=social)](https://github.com/mouredev/Twitimer-iOS)

🤖 Este roadmap también lo tienes disponible para desarrollo de aplicaciones en entornos Android.

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

## Fuentes de información
Recuerda la importancia de desarrollar habilidades para resolver problemas y encontrar información relevante. Puede sonal 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:

* [Apple Developer](https://developer.apple.com/): Sitio web oficial para desarrolladores Apple
* [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).*

🎓 **En mi [curso de Swift/iOS de 30 horas en Udemy](https://www.udemy.com/course/swift_ios/?referralCode=04756B8423CBE177B930) podrás encontrar una gran parte de los temas tratados en este roadmap.**

> 📈 **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: Swift
Debes aprender sus fundamentos, tipos de datos primivos y estructuras, flujo lógico y paradigma de programación orientada a objetos.

* [Swift en Apple Developer](https://developer.apple.com/swift/)
* [Swift.org sitio web oficial](https://www.swift.org/)
* [TUTORIAL Swift desde cero](https://youtu.be/P6ko_I5GHbs)
* [TUTORIAL Swift (en Udemy)](https://www.udemy.com/course/swift_ios/?referralCode=04756B8423CBE177B930)

### 2️⃣ Editores de código: Xcode, Swift Playgrounds, Online Swift Playground
Puedes usar estos tres editores de código para aprender Swift, eso sí, para crear aplicaciones no podrás hacerlo con el editor online.

* [Xcode](https://developer.apple.com/xcode/)
* [Swift Playgrounds](https://www.apple.com/swift/playgrounds/)
* [Swift Playground online](http://online.swiftplayground.run/)
* [TUTORIAL Xcode](https://youtu.be/MyzZnIR5gC4)
* [TUTORIAL Swift Playgrounds](https://youtu.be/8DCXEyL-GH4)

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.
* Programación orientada a estados.
* Programación imperativa.
* Programación declarativa.
* Programación funcional.

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

* [SwiftUI](https://developer.apple.com/xcode/swiftui)
* [UIKit](https://developer.apple.com/documentation/uikit)
* [TUTORIAL UIKit (en Udemy)](https://www.udemy.com/course/swift_ios/?referralCode=04756B8423CBE177B930)
* [TUTORIAL SwiftUI](https://youtu.be/hGIzLGgf3Bo)

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

* [Guía de desarrollo oficial](https://developer.apple.com/app-store/guidelines/)
* [Guía de diseño oficial](https://developer.apple.com/design/human-interface-guidelines/)

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):

* Delegate.
* Singleton.
* Adapter.
* Decorator.
* Facade.
* State.
* Strategy.
* Builder.
* ...

### 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:
* [UserDefaults](https://youtu.be/JLXx4L3wC_w)
* [CoreData](https://developer.apple.com/documentation/coredata)
* [Realm](https://github.com/realm/realm-swift)
* [SQLite](https://github.com/stephencelis/SQLite.swift)

* 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://docs.swift.org/swift-book/LanguageGuide/Concurrency.html)

* Otras funcionalidades:
* Notificaciones PUSH
* Registro y Login
* [TUTORIAL servicios Firebase](https://youtu.be/1EAA8WgCQas)

Gestores de dependencias para ayudarnos a trabajar con código de terceros:

* Swift Package Manager (SPM)
* [Swift.org](https://www.swift.org/package-manager/)
* [TUTORIAL Xcode](https://youtu.be/93YBmQNp_sQ)
* Cocoa Pods
* [CocoaPods.org](https://cocoapods.org/)
* [TUTORIAL Xcode](https://youtu.be/qCn6hGqkWyk)

### 8️⃣ Esenciales
Aprender a desarrollar aplicaciones para entornos Apple 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 TestFlight](https://youtu.be/bl6LArb-IQU): La plataforma oficial de test de aplicaciones de Apple.

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

* [TUTORIAL App Store](https://youtu.be/tg6YcD52jNA)

⬇️ **BOLA EXTRA:** [Descarga](https://github.com/mouredev/StarWarsXcodeTheme) el tema y la fuente que uso en Xcode, tanto en modo claro como oscuro.

> 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)