Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/mouredev/apple-developer-roadmap
- Owner: mouredev
- License: apache-2.0
- Created: 2022-01-12T16:56:44.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-24T13:54:13.000Z (over 1 year ago)
- Last Synced: 2025-01-05T19:07:32.323Z (15 days ago)
- Topics: apple, ios, roadmap, swift, swiftui, tutorial, uikit, xcode
- Homepage:
- Size: 18.6 KB
- Stars: 699
- Watchers: 26
- Forks: 73
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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)