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, hacer pull request o crear una nueva issue para compartir tus recursos y así añadirlos al repo con intención de crear una gran guía de estudio.
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.
Para mejorar nuestras habilidades publico retos de programación semanales y mensuales en estos dos repositorios. También desarrollamos nuestra aplicación real Twitimer, disponible en la App Store y con todo su código público.
Recuerda la importancia de desarrollar habilidades para resolver problemas y encontrar información relevante. Puede sonal mal, pero Google es una de nuestras principales herramientas de trabajo, y debemos saber usarlo. Otros lugares que debes conocer son:
- Apple Developer: Sitio web oficial para resarrolladores Apple
- GitHub: Repositorio de código público más grande del mundo
- Stack Overflow: Resolución de problemas
- Medium y Dev.to: Artículos de interés
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 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.
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
- Swift.org sitio web oficial
- TUTORIAL Swift desde cero
- TUTORIAL Swift (en Udemy)
Puedes usar estos tres editores de código para aprender Swift, eso sí, para crear aplicaciones no podrás hacerlo con el editor online.
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.
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).
La documentación oficial de Apple es esencial para conocer sus normas, recomendaciones y procesos.
No olvides la importancia de los siguiente conceptos:
- Comentarios de código.
- Markdown como lenguaje marcador para generar documentación.
Mecanismos para resolver de forma elegante problemas comunes en programación
Estos son algunos de los principales:
- Delegate.
- Singleton.
- Adapter.
- Decorator.
- Facade.
- State.
- Strategy.
- Builder.
- ...
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.
Implementaciones de características muy habituales en aplicaciones de todo tipo que debes conocer.
-
Almacenamiento de datos:
-
Conexión con servidor remoto:
-
Otras funcionalidades:
- Notificaciones PUSH
- Registro y Login
- TUTORIAL servicios Firebase
Gestores de dependencias para ayudarnos a trabajar con código de terceros:
- Swift Package Manager (SPM)
- Cocoa Pods
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 te permite aprender online con profesores nativos de forma online.
- Git: Es básico saber trabajar con el gestor de versiones más utilizado.
- Puedes ayudarte usando clientes gráficos como GitKraken (en vez de hacer todo por línea de comandos).
Debes adquirir habilidades de testing y debug para mantener tu código íntegro y libre de errores.
- TUTORIAL TestFlight: La plataforma oficial de test de aplicaciones de Apple.
Ya sólo falta cómo desplegar aplicaciones en la App Store.
⬇️ BOLA EXTRA: Descarga 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!
Soy ingeniero de software desde hace más de 11 años. Desde hace 3 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.