Cómo convertirse en desarrollador de iOS: la guía definitiva (2023)

En este artículo, repasaremos lo que creemos que se necesita para convertirse en un desarrollador de iOS en los próximos meses. 

Estamos dirigiendo esta guía directamente a dos grupos de personas, principiantes absolutos de Swift (Swift es el lenguaje que se usa para codificar aplicaciones de iOS), personas que nunca antes han creado nada para iOS, y los llamados falsos principiantes, personas que tienen trató de aprender Swift antes, pero en realidad nunca logró su objetivo de conseguir un trabajo de tiempo completo.

Considerarless de su nivel actual, el objetivo aquí es el mismo. Ponerlo en condiciones de solicitar un puesto de desarrollador de iOS junior en una empresa.

Analizaremos las habilidades que debería aprender, los cursos que puede tomar, cómo conectarse con la comunidad, los errores comunes que comete la gente y más. 

Lo mejor de todo es que todo lo que discutiremos será completamente gratuito, por lo que no tendrá que pagar nada para seguirlo.

En serio, demasiadas personas creen que gastar mucho dinero los pondrá en la vía rápida hacia el trabajo de sus sueños, cuando los factores más importantes son la determinación y la fuerza de voluntad. 

Este artículo se divide en siete secciones:

  1. Habilidades básicas que debe tener para conseguir un trabajo.
  2. Habilidades de extensión que es bueno tener: las que lo diferenciarán de la multitud si se esfuerza por aprenderlas.
  3. Errores comunes que cometen las personas cuando intentan aprender.
  4. Los muchos recursos gratuitos disponibles para ayudarlo a aprender Swift.
  5. Cómo ponerse en contacto con la comunidad de desarrollo de iOS.
  6. Una estimación de cuánto tardará en alcanzar su objetivo.
  7. Preparándose para solicitar su primer trabajo.

Las habilidades fundamentales necesarias para convertirse en desarrollador de iOSHabilidades fundamentales requeridas para convertirse en un desarrollador de iOS

¿Cuál es el mínimo absoluto de habilidades necesarias para conseguir un trabajo en el desarrollo de iOS? 

Hay cinco habilidades esenciales en total:

  1. Programación rápida
  2. Interfaz de usuario rápida 
  3. De redes
  4. Trabajando con datos
  5. Gestión de versiones

Esa lista se mantiene corta intencionalmente por una variedad de razones:

Cuanto más aprendes, más te das cuenta de que hay que aprender, por lo que es fácil pasar tanto tiempo estudiando y practicando que pierdes de vista el objetivo principal.

¡Quieres trabajar como desarrollador de iOS, no solo sentarte y aprender cosas nuevas!

Es casi seguro que te unirás a un equipo que ya tiene una aplicación que quieren que ayudes a desarrollar, así que noless tienes mucha suerte, tendrán que enseñarte un montón de cosas con respecto aless.

Si intentas incluir un montón de temas adicionales de antemano, probablemente estés perdiendo el tiempo.

Dos de esas cinco cosas son enormes y complicadas, y podrías pasar meses tratando de entenderlas sin aventurarte a ningún otro lado.

Lo más importante es que si hace bien esas cinco cosas, puede crear una amplia variedad de aplicaciones. Claro, su código no será perfecto, pero está bien porque la única forma de escribir un buen código es primero escribir mucho código incorrecto.

Dividamos los cinco elementos en partes más pequeñas.

1. Aprendizaje rápido

Swift es el primero en la lista. Este es Applees el lenguaje de programación central. No tiene el concepto de mostrar información en la pantalla de un iPhone o descargar datos de Internet. 

Es simplemente un lenguaje similar a JavaScript o Python. Es solo código puro que usa para crear variables, escribir funciones, etc.

Swift tiene solo unos pocos años, por lo que hace uso de casi todas las funciones de lenguaje de vanguardia disponibles. 

Por un lado, esto significa que puede evitar todos los comportamientos antiguos que son comunes en lenguajes más antiguos como C++ y Java. También significa que tiene una gran cantidad de funciones avanzadas que puede aprovechar.

Y eso está bien. Muchas partes de Swift son relativamente simples, mientras que otras te llevarán más tiempo para comprenderlas por completo, la experiencia y la práctica son perfectas.

2. interfaz de usuario rápida

La segunda habilidad básica requerida es SwiftUI, que es un Apple framework que nos permite usar Swift para crear aplicaciones para iOS, macOS, tvOS e incluso watchOS. 

Entonces, mientras Swift es el lenguaje de programación, SwiftUI proporciona las herramientas para desarrolladores para crear aplicaciones, como cómo mostrar imágenes, texto, botones, cuadros de texto, tablas de datos y más. 

Para ser claros, SwiftUI no es un reemplazo de Swift, es un marco construido sobre Swift que nos permite crear aplicaciones. Necesitará conocer tanto a Swift como a SwiftUI para tener éxito.

Si pensaba que Swift era nuevo, ¡todavía no ha visto nada! 

SwiftUI es un marco bastante joven, apareció por primera vez en 2014 y fue desarrollado para reemplazar el arcaico Objective C.

A pesar de su corta edad, la comunidad de iOS lo ha adoptado de todo corazón porque es muy fácil de usar.

Apple también tiene un marco más antiguo para crear aplicaciones de iOS llamado UIKit. Si le pregunta a un grupo de personas si primero debe aprender SwiftUI o UIKit, obtendrá una variedad de respuestas. 

Creemos que debe aprender SwiftUI y este es el motivo por el cual debe priorizar SwiftUI como una habilidad central.

SwiftUI es significativamente más fácil que UIKit, y se necesita quizás una cuarta parte del código para lograr los mismos resultados que UIKit, y hay menos cosas que aprender en el camino. 

Esto significa que gana mucho impulso porque puede construir cosas más rápido, ver resultados más rápido e iterar sobre esos resultados con más agilidad, lo cual es extremadamente motivador mientras aprende.

Creado para Swift

Creado para Swift

SwiftUI se creó para Swift, utilizando funciones de lenguaje para ayudar a evitar problemas y lograr el máximo rendimiento. 

Por ejemplo, si cambia algunos datos en una pantalla de una aplicación, SwiftUI se asegurará automáticamente de que los nuevos datos se actualicen en cualquier otro lugar de su aplicación que los use; no tiene que escribir código para mantenerlo todo sincronizado. que suele ser bastante complejo. 

UIKit, por otro lado, fue escrito para Applees un lenguaje más antiguo, Objective-C, y como resultado tiene todo tipo de peculiaridades que resultaron de su antigüedad.

SwiftUI es compatible con todos Appleplataformas, para que pueda usar lo que aprendió en iOS para crear una aplicación macOS o watchOS con un código casi idéntico. 

Por supuesto, características como Digital Crown, son exclusivas de un solo dispositivo, el Apple Mire, pero la gran mayoría de lo que aprenda funcionará en cualquier dispositivo.

Pero, lo más importante, SwiftUI es la dirección en la que se dirigen las cosas. 

Si estaba solicitando un trabajo hace unos años, probablemente necesitaría conocer UIKit, pero el hecho de que esté leyendo esto significa que está mucho más avanzado en el proceso. 

Si bien UIKit solía ser más popular, SwiftUI ahora es el marco de interfaz de usuario dominante.

Las empresas más grandes del mundo, incluidas Apple ahora están avanzando con SwiftUI.

Cuándo Apple recientemente lanzados widgets en iOS 14, establecieron como requisito el uso de SwiftUI.

Red y manipulación de datos

Las habilidades tercera y cuarta que mencionamos fueron redes y manipulación de datos. En comparación con Swift y SwiftUI, estos son bastante simples, o al menos simples al nivel requerido para obtener un trabajo de desarrollador junior de iOS.

La creación de redes es la práctica de recuperar datos de Internet o enviar datos desde un dispositivo local a un servidor remoto. En una aplicación móvil, esta es, por supuesto, una habilidad fundamental.

Existen numerosos métodos para lograr esto, pero lo más importante que debe comprender es cómo recuperar JSON de un servidor.

Y aquí es donde entra en juego la otra habilidad esencial, trabajar con datos. 

Nuevamente, existen numerosas formas de cargar y guardar datos, pero lo mínimo absoluto que debe poder hacer es convertir los datos que recibió de un servidor usando su código de red en información que su aplicación puede mostrar.

Por lo tanto, las habilidades básicas tercera y cuarta están inextricablemente vinculadas. Obtenga algunos datos de un servidor, luego conviértalos en información que se puede mostrar en su aplicación. Algunos desarrolladores bromean diciendo que escribir este tipo de código es la mitad del trabajo de un desarrollador de iOS, y es cierto que confiamos mucho en él.

Version control

La habilidad final no es codificar en absoluto, es version control, como Git. Nuevamente, no necesitas mucho aquí, pero es importante que puedas publicar tu código en algún lugar público, como GitHub, para que los reclutadores puedan ver tu trabajo.

Nadie en el mundo comprende realmente cómo funciona Git, pero está bien: solo necesita saber lo suficiente sobre los conceptos básicos para almacenar sus datos de forma segura y colaborar con otros.

Entonces, cuando esos cinco se suman, hay dos masivos, Swift y SwiftUI, así como tres menores pero importantes. 

Si puede concentrarse en esas cinco cosas sin distraerse, estará bien encaminado hacia su primer trabajo de desarrollador de iOS.

Eso es todo: esas son las cinco habilidades esenciales que creo que necesitas para ser un desarrollador de iOS. 

Hay miles de personas que solo tienen esas habilidades y pueden crear y enviar aplicaciones fantásticas en la App Store.

¿Qué viene después de los fundamentos?

¿Qué viene después de los fundamentos?

Una vez que haya dominado las cinco habilidades básicas, podrá enviar sus propias aplicaciones y trabajar como desarrollador independiente, así como postularse para puestos de desarrollo de iOS junior y trabajar para una empresa si eso es lo que quiere hacer. 

No se requieren otras calificaciones especiales, solo perfeccione esas habilidades básicas y estará bien.

Sin embargo, si dominas esas habilidades y quieres avanzar, hay cinco habilidades más que te recomendamos que aprendas. Estas son las habilidades que lo impulsarán de una buena posición a una fantástica: tendrá aún más posibilidades de empleo y la gama de aplicaciones que podrá crear se ampliará aún más.

Las habilidades son las siguientes:

  • kit de interfaz de usuario 
  • Datos principales 
  • Validación
  • Pruebas
  • Arquitectura de software
  • multihilo

Como antes, nos gustaría repasar cada una de ellas con mayor detalle para que comprenda por qué creemos que son importantes y por qué las consideramos habilidades de extensión en lugar de habilidades básicas.

kit de interfaz de usuario

Primero, está UIKit. Este es AppleEl marco de interfaz de usuario más antiguo, que se ha utilizado para el desarrollo de aplicaciones desde 2008; tiene 14 años mientras escribo esto, que es antiguo en términos de software. Pero eso no significa que UIKit sea malo. De hecho, a medida que se acostumbre a su funcionamiento, se sorprenderá de lo elegante que puede llegar a ser.

Existen numerosas razones por las que vale la pena aprender UIKit, que incluyen:

Ya se han escrito cientos de miles de aplicaciones en UIKit, por lo que si se une a una empresa que tiene una aplicación grande y bien establecida, es casi seguro que se le pedirá que escriba código UIKit para mantener esa aplicación.

UIKit es mucho más poderoso que SwiftUI: hay muchas cosas que puede hacer en UIKit que actualmente no son posibles en SwiftUI.

Con la tecnología Auto Layout, puede crear diseños extremadamente precisos.

Si tiene problemas con su código, UIKit tiene más soluciones que SwiftUI simplemente porque ha existido durante mucho más tiempo.

Todo esto hace que UIKit suene fantástico, entonces, ¿por qué lo convertí en una habilidad de extensión en lugar de una habilidad central? 

Porque UIKit también tiene problemas:

Casi todo es más difícil de hacer en UIKit que en SwiftUI, y algunas tareas requieren cien veces, si no más, código. 

SwiftUI fue diseñado específicamente para el desarrollo moderno de iOS, por lo que hace gran parte del trabajo pesado por usted.

Debido a que UIKit no se escribió en Swift, tiene muchas características que SwiftUI no tiene: muchos opcionales implícitamente desenvueltos, código de marcado con un atributo especial @objc para que esté disponible para la parte más vulnerable de Objective-C de UIKit, y la necesidad de usar protocolos y delegados. para mostrar datos simples.

Nada en el diseño automático es "automático"; de hecho, si alguna vez intenta crear un diseño complejo, es posible que tenga pesadillas con el diseño automático. Es extremadamente inteligente, pero también extremadamente difícil en algunos lugares.

Y es por eso que consideramos que UIKit es una habilidad de extensión: se necesita mucho más tiempo y esfuerzo para aprender que SwiftUI, lo que significa que requiere mucha más determinación: debe tener muchas ganas de aprenderlo, o de lo contrario se confundirá. , aburrido, enojado, o potencialmente los tres. 

Claro, SwiftUI no tiene todas las características de UIKit, pero le permite avanzar rápidamente y ganar impulso antes de pasar a UIKit.

Gestión de datos básicos

Gestión de datos básicos

Datos básicos, AppleEl marco de trabajo para trabajar con datos de aplicaciones, es la segunda habilidad de extensión que mencioné. 

Mencionamos la creación de redes y el trabajo con datos en la sección de habilidades básicas, y es cierto. Con esas habilidades en su lugar, puede obtener lo que quiera de un servidor y mostrarlo en su aplicación. 

Core Data va un paso más allá al permitirle manipular esos datos una vez que los haya obtenido, como buscar valores específicos, ordenar los resultados y más, todo de manera muy eficiente. 

También puede conectarse fácilmente a iCloud, lo que garantiza que los datos de sus usuarios estén sincronizados en todos sus dispositivos.

Core Data tiene una serie de inconvenientes, el más grave de los cuales es que no siempre es agradable trabajar con ellos. Core Data es casi tan antiguo como UIKit, y aunque funcionó bien en Objective-C, no se siente tan natural en Swift. 

Se integra bien con SwiftUI, lo que lo hace sentir less extraño, pero sigue siendo un tema sorprendentemente complejo.

Al igual que UIKit, Core Data es extremadamente popular: se han creado cientos de miles de aplicaciones con él y se usa en muchas empresas grandes y pequeñas. 

Core Data, como UIKit, es extremadamente poderoso y, si bien podría recrear las partes más importantes en su propio código, ¿por qué lo haría?

Probando tu código

La tercera habilidad en mi lista de extensiones está probando. Escribir código especial para asegurarse de que el código principal de su aplicación funcione como se espera. 

Las pruebas nos permiten asegurarnos de que nuestro código funciona correctamente y, lo que es más importante, que sigue funcionando correctamente incluso después de haber realizado cambios importantes en él.

Por ejemplo, si cambia 500 líneas de código para implementar una nueva función y todas sus pruebas pasan, está listo para comenzar.

Como resultado, las pruebas son críticas y lo ayudarán a escribir software de mayor calidad. 

Entonces, ¿por qué se considera una habilidad de extensión en lugar de una habilidad básica? 

Hay tres razones para esto:

La comunidad de iOS en su conjunto es terrible en las pruebas, por las razones históricas que sean. Muchas aplicaciones grandes no tienen pruebas en absoluto y, trágicamente, varios desarrolladores senior de iOS están casi orgullosos de que nunca escriben pruebas. 

Cuando consideras todas las cosas increíbles que puedes crear con AppleEn comparación con las herramientas y los marcos de trabajo de escribir pruebas, no parece muy divertido. 

Al solicitar un trabajo, conocer Swift y AppleLos principales frameworks siempre serán más útiles que saber escribir pruebas. 

Las empresas preferirían que sepas cómo usar SwiftUI, UIKit o uno de los otros grandes éxitos, porque las pruebas son un tema mucho más pequeño: no hay tantas cosas que aprender.

Por lo tanto, las pruebas son importantes, las pruebas son importantes, y si desea ser un excelente desarrollador general, debe aprender a escribir excelentes pruebas. Pero solo después de que haya dominado los fundamentos del desarrollo de aplicaciones, después de que haya tenido cierto éxito, haya sentido la emoción de tener su aplicación en vivo en la App Store y haya dominado las pruebas.

Arquitectura de software

Arquitectura de software

La cuarta habilidad de extensión que nos gustaría analizar es la arquitectura de software, que en realidad se trata de cómo escribimos el código. 

Vas a escribir un código terrible cuando empieces. 

Eso está bien porque así es como aprendes. No empiezas bien, te vuelves bueno siendo malo durante mucho tiempo y aprendiendo mejores formas de hacer las cosas con la experiencia y la exposición.

El punto es que te quedes con tu código incorrecto hasta que descubras cómo hacerlo mejor. Ahí es donde entra en juego la arquitectura de software. Examinar técnicas probadas y verdaderas para estructurar su código para que sea más fácil de leer, usar, modificar y mantener a largo plazo. 

Estas técnicas a veces se basan en la forma en que funciona Swift: características del lenguaje que se pueden usar para escribir mejor código. 

Sin embargo, existen muchas otras técnicas que funcionan en cualquier lenguaje de programación y se las conoce comúnmente como patrones de diseño.

Un aspecto importante de esta habilidad que debe comenzar a aprender es cómo dividir su código. 

Por ejemplo, si está creando una sola pantalla en su aplicación, podría incluir un botón de inicio de sesión, una galería de imágenes y una lista de amigos. 

Sin embargo, idealmente debería separar cada una de esas partes (un componente de botón de inicio de sesión, un componente de galería de imágenes y un componente de lista de amigos) para poder reutilizar cualquiera de esos componentes en otras partes de su aplicación.

La arquitectura de software es mucho más subjetiva que las otras habilidades que hemos discutido hasta ahora. Para los demás, como SwiftUI, puede razonar: "Bueno, sé cómo hacer X, Y y Z, así que estoy seguro de que soy un buen desarrollador de SwiftUI".

 La arquitectura de software es un tema muy amplio y, a menudo, no existe una forma "correcta" obvia de resolver un problema, por lo que el mejor punto de referencia para esto es este: ¿mira hacia atrás en su código de hace seis meses, hace un año y así sucesivamente? .

Escribir código incorrecto es aceptable siempre que te acerque a escribir código mejor. 

Sin duda, se rascará la cabeza en algunos lugares cuando mire hacia atrás en el código que escribió hace cinco años, porque sabrá más ahora que entonces, y así es como debería ser.

multihilo

La habilidad de extensión final que discutiremos es el subprocesamiento múltiple, que es la práctica de hacer que su código haga más de una cosa a la vez. 

Los subprocesos múltiples pueden ser un verdadero dolor porque es difícil de entender para nuestros cerebros. Cuando su código hace una cosa a la vez, podemos pensarlo linealmente, pero cuando suceden dos o tres cosas al mismo tiempo, potencialmente superpuestas, realmente puede alterar su forma de pensar.

Por lo tanto, si bien el multiproceso es una gran habilidad para tener como habilidad de extensión, debe tener cuidado. Su objetivo debe ser comprender lo suficiente de los conceptos y el código para que funcione bien sin ir demasiado lejos. 

Para ser honesto, muchos desarrolladores creen que el subproceso múltiple hará que su código se ejecute instantáneamente tres o cuatro veces más rápido. 

Si bien esto es cierto en algunos casos, en muchos otros casos, su código realmente se ejecutará más lento y ahora tendrá que lidiar con toda la complejidad adicional del código.

“Mi recomendación específica es que evite escribir código asincrónico / concurrente tanto como sea posible. Esto puede parecer extraño en 2018, pero el costo en complejidad y rendimiento es alto.

Por lo tanto, aprenda un poco sobre cómo funciona el subproceso múltiple en Swift para demostrar que comprende los conceptos y la implementación, ¡pero no se exceda! "

David Smith - Apple Equipo SwiftUI

Errores comunes que cometen los nuevos desarrolladores de iOS

Errores comunes que cometen los nuevos desarrolladores de iOS

En este punto, hemos enumerado todas las habilidades básicas y de extensión que necesitará para trabajar como desarrollador de iOS a tiempo completo. 

También queremos discutir algunos de los errores más comunes que cometen las personas mientras aprenden, porque los veo todo el tiempo y sé cómo hacen retroceder a las personas.

Hay siete problemas principales a los que se enfrenta la gente. 

  1. Recordando todo
  2. síndrome del objeto brillante 
  3. Aprendizaje de lobo solitario
  4. Haciendo uso de software beta
  5. Dependiendo de Applela documentación
  6. Atascarse en Objective-C
  7. Apuntando a otros idiomas

Repasemos cada uno de ellos uno por uno.

Deja de intentar recordar todo

Deja de intentar recordar todo

El primer problema, y ​​con mucho el más común, con el que se encuentran las personas es tratar de memorizar todo: leer un tutorial y creer que deben recordarlo todo de memoria. 

Nadie recuerda todo. Nadie se acerca a recordarlo todo. Incluso si solo considera las API publicadas por Apple, que son las piezas de código que podemos usar para crear nuestras aplicaciones, debe haber más de cien mil disponibles. 

Incluso si lo limita a los componentes centrales del desarrollo de aplicaciones, todavía está viendo varios cientos, todos trabajando de una manera muy precisa que requiere mucho aprendizaje para su uso.

En cambio, aprende cómo hacer algo nuevo y luego olvida rápidamente cómo hacerlo de nuevo. 

Entonces, lo busca, lo usa de nuevo y luego lo olvida rápidamente. Entonces, lo busca por tercera vez y lo usa, y esta vez casi lo olvida: algunas partes se quedan con usted. 

Este ciclo continúa indefinidamente, y usted tiene que consultar un tutorial o alguna otra guía de referencia cada vez, hasta que los fundamentos están arraigados en su mente hasta el punto en que puede hacerlo sin consultar a nadie más.

Si aún no lo sabía, olvidar es una parte importante del aprendizaje. 

Cada vez que olvidas algo y lo vuelves a aprender, se hunde más y más profundamente en tu cerebro. Cuando vuelves a aprender algo, tu cerebro establece nuevas conexiones con otras cosas que has aprendido, lo que te ayuda a comprender más sobre el contexto de lo que estás intentando hacer. 

Y cada vez que vuelves a aprender, le estás indicando a tu cerebro que este tema en particular es lo suficientemente importante como para almacenarlo en su memoria a largo plazo.

Pero si te propones memorizar todo, vas a tener dificultades. 

En cambio, no se preocupe por olvidar cosas. Saber dónde buscarlos es mucho más importante que memorizar un código Swift específico para lograr algo. 

Cuando olvide algo y tenga que volver a aprenderlo, considérelo algo bueno: esa información se hundirá más profundamente la segunda, tercera y décima vez que la aprenda, por lo que está ayudando a su cerebro.

Evite el síndrome del objeto brillante

El segundo problema más común es el "síndrome del objeto brillante", en el que encuentran una serie de tutoriales que les funciona bien y comienzan a progresar, pero después de una semana o dos, notan otra serie de tutoriales que quieren seguir y cambiar de barco. eso en cambio 

El problema aquí es que muchos aspectos del aprendizaje de cualquier cosa carecen de interés. Eso no es necesariamente culpa del maestro. 

Es solo un hecho de aprender a codificar: algunas cosas le brindan excelentes resultados con poco esfuerzo, mientras que otras requieren mucho más tiempo para comprenderlas, no producen resultados sofisticados o son solo una parte de un concepto más amplio.

Cuando llegas a estas curvas de aprendizaje empinadas, el síndrome del objeto brillante se activa: con tantos tutoriales gratuitos disponibles, puedes saltar a cualquiera de ellos y reiniciar, y estarás de vuelta en el extremo menos profundo de la piscina, cubriendo las partes más fáciles. ya has aprendido. 

Pero, unless el curso original eligió un tema inusual para cubrir, probablemente tendrá que aprenderlo eventualmente, y solo está posponiendo lo inevitable.

Tenga en cuenta el síndrome del objeto brillante: cuando encuentre un problema, intente pedir ayuda a otra persona y perseverar en lugar de cambiar.

No lo hagas solo

No lo hagas solo

Hablando de preguntarle a alguien más, el tercer problema con el que vemos que la gente se topa es cuando se vuelven lobos solitarios con su aprendizaje: creen que son completamente capaces de aprender a crear aplicaciones iOS usando Swift por sí mismos y no requieren la ayuda de otros. .

Este método funciona para una cantidad muy pequeña de personas, generalmente aquellas con amplia experiencia con otros lenguajes de programación o plataformas. 

Sin embargo, para la gran mayoría de las personas, aprender de esta manera es una experiencia terrible: cada error o malentendido tarda cinco veces más en resolverse, es extremadamente fácil perder la motivación y te estás perdiendo mucha inspiración al ver otros tienen éxito.

Si usted es un aprendiz de "lobo solitario" natural, lo instamos a que cambie sus formas. 

Comparta lo que está aprendiendo, conéctese con otros que están aprendiendo y desarrolle el hábito de hacer preguntas. 

No solo descubrirá una fantástica comunidad de estudiantes que lo apoyarán y alentarán, sino que también se sentirá inspirado por su trabajo y, a su vez, los inspirará a ellos con el suyo. Es completamente transformador.

No uses versiones beta

El cuarto problema importante es cuando la gente insiste en usar versiones beta de Appleherramientas de desarrollo. 

Cada año, Apple lanza un nuevo iOS, un nuevo macOS y otros productos, siempre entregando cosas nuevas y emocionantes para que las probemos. Es natural que las personas quieran aprender lo último y lo mejor, especialmente si saben que Swift tiene una larga historia de cambios.

Sin embargo, cuando las personas intentan aprender con el software beta, se encuentran con una serie de problemas:

Debido a que los tutoriales no se han actualizado para la versión beta, seguir sus instrucciones no siempre será posible o fallará.

Los errores son comunes en las versiones beta, especialmente las que se publican para las principales actualizaciones de iOS.

AppleLos frameworks beta tardan en estabilizarse, lo que significa que el código que funcionaba en beta 1 puede no funcionar en beta 3.

Entonces, si bien es emocionante aprender cosas nuevas y puede creer que se está adelantando al juego con nuevas funciones, créame: no vale la pena. 

Utilice siempre las versiones públicas más recientes de Appleherramientas de desarrollador hasta que se sienta cómodo con ellas.

Depender de la documentación oficial

Depender de la documentación oficial

El quinto problema principal al que se enfrentan las personas cuando intentan aprender es confiar en Appledocumentación de. 

AppleEl equipo de publicaciones para desarrolladores trabaja arduamente para documentar tanto como sea posible a partir de la amplia gama de marcos de la empresa, pero su trabajo principal es escribir material de referencia, cosas que lee cuando intenta usar una pieza específica de sus herramientas, en lugar de creando un curso estructurado que le ayude a aprender a crear aplicaciones iOS.

Hemos perdido la cuenta de la cantidad de veces que la gente me ha preguntado: "¿Cómo puedo aprender Swift?" sólo para que le digan: "Lea AppleGuía de referencia de Swift ". 

Este enfoque funciona para algunas personas. 

Sin embargo, para la mayoría de las personas, es similar a intentar aprender un idioma humano leyendo un diccionario. Está destinado a cubrir todo en el idioma en lugar de enseñarle las partes más importantes y cómo aplicarlas.

Entonces, si tiene una amplia experiencia con otros idiomas, leer AppleLas guías de referencia pueden ser útiles, pero si recién está comenzando, es posible que desee volver a visitarlas después de unos meses.

Atascarse en Objective-C

El sexto problema principal al que se enfrentan las personas es intentar aprender Objective-C. Esto era Applees el lenguaje de desarrollo principal antes de la introducción de Swift, y aunque hay restos en algunas bases de código antiguas, la gran mayoría del código existente ahora es Swift, y casi todo el código nuevo también es Swift.

Algunas personas pasan años escribiendo Objective-C antes de Swift y realmente les encanta, pero tiene una curva de aprendizaje extremadamente pronunciada y carece de la mayoría de las funciones importantes de Swift. 

Cuándo Apple anunció por primera vez el iPhone SDK, mucha gente estaba horrorizada con Objective-C porque no se parecía a nada que se hubiera visto hasta ahora.

Objective-C y Swift no tienen casi nada en común para un principiante. 

Si, comparten lo mismo Apple frameworks, pero unless planeas trabajar en Apple - la única empresa en el mundo que todavía produce grandes cantidades de Objective-C - debe dejar a Objective-C solo y concentrarse por completo en Swift.

Ignorando otros idiomas

Ignorando otros idiomas

El último gran error que cometen las personas cuando aprenden Swift es descartar otros idiomas como inferiores a Swift. 

El objetivo más común es JavaScript, pero también verá que la gente apunta a Python, Java, Ruby, Go y otros lenguajes, ¿y para qué? No es una carrera, gente, esos idiomas no tienen que perder para que Swift gane.

De hecho, Swift y SwiftUI se inspiran con frecuencia en otros lenguajes y marcos: cada vez que se consideran nuevas características del lenguaje, la comunidad busca implementaciones similares en Rust, Python, Haskell y otros lenguajes, y SwiftUI está fuertemente influenciado por JavaScript. React marco de referencia. 

Por lo tanto, la gente de la comunidad afirma que SwiftUI no tiene JavaScript o algo similar; nada más lejos de la verdad.

Recursos y cursos de desarrollo de iOS

Recursos y cursos de desarrollo de iOS

Ahora, para la parte que a la mayoría de la gente le interesa: ¿cuáles son los recursos reales que debe usar para aprender Swift, SwiftUI y más, para lograr su objetivo de convertirse en un desarrollador de iOS?

Hay muchos por ahí, y la comunidad de Swift tiene un grupo tan diverso de personas que comparten sus conocimientos. 

Sin embargo, en este artículo, nos centraremos en los recursos gratuitos: lugares donde puede aprender a crear aplicaciones fantásticas sin gastar un centavo.

Esto se debe a dos factores:

  1. Algunas personas creen que cuanto más alto sea el precio de un curso Swift, mejor debe ser, por lo que terminan pagando precios exorbitantes sin recibir el beneficio adecuado.
  2. Muchos sitios, como Udemy, confían en vender una gran cantidad de cursos de bajo costo, confiando en que si no le gusta uno, simplemente comprará otro. También tienen un modelo de negocio similar al de Steam en el que hay ventas constantes, lo que anima a la gente a acumular una gran cantidad de cursos para estudiar "un día".

Por lo tanto, aquí solo enumeramos recursos gratuitos para que no gaste cien dólares o más en su primer curso, y no compre una docena de cursos baratos pensando que lo convertirá en un desarrollador.

Tutoriales

Empezar, Apple tiene dos recursos principales que pueden ayudarlo. El primero es su sitio web Teaching Code, que contiene recursos para estudiantes y profesores para aprender Swift desde cero, hasta obtener certificaciones profesionales. 

Su plan de estudios es extenso, por lo que puede llevar algún tiempo encontrar el mejor punto de entrada para usted, pero una vez allí, encontrará mucho que explorar.

En segundo lugar, Apple tiene una serie de tutoriales de SwiftUI que lo guían a través del proceso de creación de aplicaciones del mundo real. Sin embargo, estos no enseñan Swift, por lo que primero debe completar su plan de estudios centrado en Swift.

Apple también publica una guía específicamente para el lenguaje de programación Swift, pero hay muchas posibilidades de que no funcione para usted; está pensada como una referencia en lugar de un tutorial estructurado, por lo que es una lectura bastante densa.

¿ AppleLos tutoriales no intentan proporcionar un método estructurado de aprendizaje. 

YouTube y otros sitios

Hay algunos videos excelentes de YouTube que lo guían a través de los fundamentos de SwiftUI, como:

, en el que te guía a través del proceso de creación de un juego de tragamonedas desde cero.

explica cinco conceptos de SwiftUI que todos deberían aprender cuando comienzan a programar.

que cuenta con Swift y SwiftUI mientras responde las preguntas de la audiencia.

Hay otros sitios con tutoriales de Swift y SwiftUI de alta calidad, incluidos BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee y más. Realmente alentamos a las personas a visitar una variedad de recursos y encontrar lo que funciona para ellos.

Educación basada en aplicaciones

Si prefieres aprender a través de aplicaciones, te recomiendo dos que son completamente gratuitas. El primero es Applela aplicación Swift Playgrounds, que te permite aprender a usar Swift directamente desde tu iPad o Mac. 

Hay muchos interactivos lessorientados a los niños, pero también hay algunos más avanzados lessons que le ayudarán a mejorar sus habilidades.

La otra aplicación se llama Unwrap y fue creada por mí. Unwrap es compatible con todos los iPhones y iPads y le permite aprender, revisar y practicar los fundamentos de Swift a través de videos, pruebas y otras herramientas. Cubre todos los fundamentos de Swift y complementa perfectamente el plan de estudios de 100 días de SwiftUI.

Obteniendo soluciones

Por último, deberá aprender a encontrar respuestas en línea. Esto podría significar ir a Stack Overflow, pero espero que no, porque no es un lugar particularmente agradable.

En su lugar, haga preguntas en los foros de Hacking with Swift, su grupo favorito de Slack, las sesiones de Happy Hour para desarrolladores de iOS, Twitter y otros lugares; somos una comunidad genuinamente cálida y acogedora con muchas personas ansiosas por ayudarlo a alcanzar sus objetivos.

Involucrarse en la comunidad

Involucrarse en la comunidad

Hablando de nuestra comunidad, me gustaría discutir un tema realmente importante que lo ayudará a conocer personas en posiciones similares a las suyas, aprender de manera más efectiva y encontrar vacantes laborales; es una situación en la que todos ganan.

El tema se conecta con la comunidad de desarrollo de iOS. Esto incluye saber dónde buscar noticias e ideas interesantes, dónde ir para conocer gente y compartir consejos, y dónde ir para hacer preguntas.

¿A quién debo seguir en Twitter?

Empecemos por lo más sencillo, que es utilizar Twitter. Twitter es una forma fantástica de seguir las cosas que te interesan, y hay algunas personas que recomendaría encarecidamente en el caso del desarrollo de iOS.

Sí, estas personas twittean sobre su propio trabajo, pero creo que es genial seguirlas porque también twittean mucho sobre el trabajo de otras personas; te ayudarán a ver una variedad de perspectivas sobre un tema en particular y comparten todo tipo. de ideas interesantes y cosas para probar.

Aquí hay 9 personas que te recomendamos seguir en Twitter:

Sean Allen pasa mucho tiempo en YouTube haciendo videos de desarrollo de Swift e iOS, pero también trabaja muy duro para correr la voz sobre el trabajo de otras personas; realmente hace un gran trabajo ayudando a todos a descubrir algo nuevo cada semana.

Antoine van der Lee ejecuta un sitio web de desarrollo de iOS en https://www.avanderlee.com, pero también comparte algunos enlaces excelentes a recursos útiles que encuentra en GitHub, boletines y más.

novall khan trabaja para Apple, pero eso no le impide publicar videos con regularidad sobre en qué está trabajando, qué está aprendiendo, con qué tiene problemas y más; es realmente inspiradora.

Steve Troughton-Smith es bien conocido por su trabajo anterior jugando con iOS, pero realmente deberías seguirlo por la fantástica variedad de enlaces que comparte con un trabajo impresionante. Me gusta cómo comparte el progreso del desarrollo de sus propias aplicaciones, para que puedas verlas crecer de principio a fin.

Tomás Kaya es una de las desarrolladoras independientes más conocidas de nuestra comunidad y ha aparecido en Apple más veces de las que puedo contar. Twittea con frecuencia sobre su propio trabajo y presentaciones, pero también comparte enlaces a libros que está leyendo, artículos que ha leído y otros recursos.

Majid Jabrayilov no solo escribe un fantástico blog de Swift y SwiftUI, sino que también es un neumáticoless promotor de otros: si lo sigues en Twitter, obtendrás una idea tras otra enviada desde una amplia variedad de fuentes.

Donny Wals escribe un blog de Swift y, más recientemente, libros sobre Combine y Core Data, pero también anima a las personas a compartir en Twitter en qué están trabajando. Incluso solo leer ese hilo una vez a la semana te inspirará a probar cosas nuevas, por lo que definitivamente deberías seguir a Donny.

Panage de verano trabaja en Appledel equipo de accesibilidad, por lo que, si bien es algo limitada en lo que puede decir, tuitea muchos consejos de primera calidad de ella misma y de otros que todos pueden usar para crear mejores aplicaciones.

Natascha Fadeeva escribe un blog sobre Swift y el desarrollo de iOS, que incluye artículos sobre Core Data, preguntas de entrevistas y otros temas, pero también tuitea sobre cosas que encuentra en otros lugares.

Boletines y más

Boletines y más

Por supuesto, Twitter no es el único lugar para mantenerse en contacto con la comunidad; también hay boletines, grupos de Slack, reuniones de Zoom, foros, conferencias y otros lugares. No quiero aburrirte demasiado, así que solo enumeraré uno de cada uno aquí:

No puedes equivocarte con Desarrollador de iOS semanal para boletines. Mientras escribo esto, acaba de pasar 500 números, uno por semana, lo que creo que les dice todo lo que necesitan saber sobre lo importante que es.

Si desea publicar en un foro web, https://www.hackingwithswift.com/forums es bastante bueno. Hay muchas categorías para elegir, y cualquiera, tenga en cuentaless de nivel de experiencia, es bienvenido a participar. Eres más que bienvenido a publicar tus preguntas para principiantes aquí, ¡créeme!

Cada mes, el Hora feliz para desarrolladores de iOS se lleva a cabo en una llamada grupal de Zoom con más de 300 personas, pero la verdadera diversión está en las salas para grupos pequeños, donde puede charlar con grupos de 6 a 8 personas a la vez. Es muy divertido y conocerás gente nueva.

Asistir a conferencias ha sido difícil debido a la pandemia de coronavirus, pero Apple's WWDC fue un gran éxito el año pasado, y estuvo acompañado de una gran cantidad de eventos comunitarios. Un grupo de amigos y yo creamos un Repositorio GitHub para ayudar a realizar un seguimiento de todos los demás eventos, artículos y otras cosas que sucedieron, ¡eche un vistazo!

Finalmente, si prefiere chatear en Slack, donde puede obtener respuestas más rápido, puede unirse a la Hackear con Swift Slack group y únase a uno de los canales Swift, SwiftUI y otros.

¿Cuánto tiempo se tarda en aprender iOS?

Esta es una de mis preguntas frecuentes: ¿cuánto tiempo se tarda en pasar de no saber nada sobre Swift a poder obtener un puesto de desarrollador de iOS de nivel de entrada?

La respuesta obvia es "depende", pero eso sería una evasión en este caso, así que permítanme abordarlo de diferentes maneras.

La regla de oro es no apresurarse

En primer lugar, no puede realizar varios cursos al mismo tiempo. ¿Recuerda lo que dije sobre el "síndrome del objeto brillante"? Sí, muchas personas creen que pueden tomar dos cursos al mismo tiempo, luego estudiar durante cuatro, cinco o incluso más horas todos los días y aún así tener una comprensión de alta calidad de los temas que cubrieron.

Para ser claros, he visto a gente intentar esto muchas veces y siempre falla. Cada vez, nunca funciona, y escucho a la gente decir que es porque los tutoriales fueron malos, o porque Swift fue demasiado difícil, o literalmente por cualquier otra razón que no sea intentar apresurarse a través de algo complejo.

Aprender Swift puede ser difícil a veces, y aprender a crear aplicaciones requiere mucho ensayo y error, cometer errores y tomar turnos equivocados. Y eso está bien, es mejor que bien, ¡es fantástico! 

Porque cada vez que intentas algo, cometes un error o tomas un camino equivocado, aprendes algo en el camino y cuando finalmente llegas a la solución, lo entenderás mucho mejor.

Entonces, el TL; DR aquí es no se apresure: tómese su tiempo, no tenga miedo de explorar las tangentes que surjan, no tenga miedo de experimentar con sus proyectos y no tenga miedo de volver a algo. que aprendió previamente y vuelva a aprenderlo según sea necesario.

Cual es su formación académica

¿Cual es su formación académica?

En segundo lugar, debe considerar sus antecedentes antes de ingresar a Swift. Verá, aprender a crear aplicaciones requiere una amplia gama de habilidades, y si viene a la mesa con una gran cantidad de conocimientos previos, como version control, estructuras de datos, algoritmos y más, tendrá una ventaja significativa sobre aquellos que son nuevos en la informática en general, así como Swift y otros Apple marcos.

Entonces, aquí hay algunas posibilidades de dónde podría estar ahora:

Si tiene un título en ciencias de la computación, ya estará familiarizado con muchos de los fundamentos de la informática necesarios para comenzar con Swift. Las variables, matrices, bucles, matrices, conjuntos, funciones, POO y otros conceptos serán útiles en Swift, al igual que todo su trabajo con estructuras de datos y algoritmos. Esto podría ahorrarle de 4 a 6 meses de tiempo de estudio dependiendo de las materias que haya estudiado, y también le dará una ventaja a la hora de solicitar puestos de trabajo en muchas empresas.

Si no tiene un título de CS pero ha asistido a un bootcamp de codificación, tendrá muchos de los fundamentos que necesitará para comenzar con Swift. Esto no le dará la misma ventaja al solicitar puestos de trabajo en esas empresas porque a menudo esperan un título solo para marcar una casilla en su lista de requisitos arbitrarios, pero aún así le ahorrará tres o cuatro meses.

Si no tiene un título de CS y no asistió a un campamento de entrenamiento, pero ha estado codificando en su tiempo libre, ahorrará algo de tiempo, probablemente dos meses más o menos, dependiendo del idioma o los marcos que estaba usando .

¿Qué sucede si no tiene un título de CS, no ha asistido a un bootcamp y no tiene experiencia previa en codificación? Luego, estimaría de 9 a 12 meses para pasar de la nada a un trabajo de nivel de entrada. Sí, eso podría ser un año completo de trabajo además de lo que sea su trabajo actual de tiempo completo, y eso es solo para obtener su primer trabajo como desarrollador de iOS.

¿Es siempre el mismo año? No. Si tiene experiencia previa, puede reducir ese tiempo de 1 a 6 meses, como dije anteriormente. Si toma los mejores números en ambos lados (9 meses desde cero hasta un trabajo de nivel de entrada, más 6 meses para tener un título de CS), eso significa que podría ser contratado en solo 3 meses, lo cual es increíble.

Puede creer que encontrar su primer trabajo en tres meses es imposible, pero no lo es. Diablos, conocí a alguien que estaba tomando mi curso 100 Days of Swift y consiguió un trabajo antes del día 50; ya habían aprendido lo suficiente sobre el desarrollo de aplicaciones en less más de dos meses porque se esforzaron por hacer que cada día cuente.

Por lo tanto, no necesita un título de CS o un campo de entrenamiento, pero debe estar dispuesto a trabajar duro.

Permítete un poco de libertad

El tercer punto que me gustaría hacer antes de seguir adelante es que "toma todo el tiempo que sea necesario". Me encanta una letra de John Lennon que dice: "La vida es lo que pasa cuando estás ocupado haciendo otros planes".

Es fantástico si tiene grandes planes de aprendizaje y grandes sueños para el trabajo que desea, pero a veces está cansado, a veces estresado, a veces su techo tiene goteras o su perro necesita ir al veterinario o sus hijos necesitan más. ayudar con su tarea, o lo que sea, y así es la vida. 

Por lo tanto, no sea demasiado duro consigo mismo si se atrasa con su programa de aprendizaje, o si se pierde algunos días o incluso algunas semanas, etc., siempre que sea resistente, obtendrá allí.

Eso es fantástico si trabajas muy duro y consigues un trabajo después de 50 días, ¡bien hecho! Si te lleva 500 días, también es fantástico, y deberías estar igual de orgulloso de ti mismo. Diablos, si te lleva cinco años, estoy seguro de que no es lo que querías, pero el resultado final es el mismo, y eso es todo lo que importa.

Preparándose para aplicar

Preparándose para aplicar

Por último, pero no menos importante, si está un poco más avanzado en su viaje de aprendizaje de iOS y está pensando en conseguir su primer trabajo de nivel de entrada, me gustaría señalarle una colección masiva de recursos que reuní para ayudarlo.

Yo lo recomiendo Videos de consejos de entrevistas de Swift de Sean Allen - Tiene una lista de reproducción completa para ellos donde puede trabajar a través de discusiones individuales como clases frente a estructuras, programación funcional, manejo de errores y más. Ninguno de los videos es particularmente largo, pero todos están diseñados para brindarle las habilidades que necesita para desempeñarse bien en una situación de entrevista.

¿Donde ahora?

De acuerdo, he repasado las habilidades básicas y de extensión que necesitará, los errores de aprendizaje comunes, los cursos que puede tomar, cómo conectarse con la comunidad de iOS y cómo prepararse para su entrevista de trabajo; eso es mucho para cubrir, y espero que haya sido de ayuda.

Además, espero haber demostrado cuánta información está disponible de forma gratuita. 

Sí, la tentación de gastar cien dólares o más en un curso es fuerte, pero relájese: muévase primero, encuentre algo de impulso y también encuentre a alguien que enseñe Swift de una manera que funcione para usted. Cuando esté en un buen lugar y se sienta listo, siga adelante y gaste algo de dinero si lo desea.

¡Mis mejores deseos en su viaje!

Sobre la autora
David Atard
David ha estado trabajando en o alrededor de la industria digital / en línea durante los últimos 18 años. Tiene una vasta experiencia en las industrias de software y diseño web utilizando WordPress, Joomla y los nichos que los rodean. Como consultor digital, su enfoque es ayudar a las empresas a obtener una ventaja competitiva utilizando una combinación de su sitio web y plataformas digitales disponibles en la actualidad.

Una cosa más... ¿Sabías que las personas que comparten cosas útiles como esta publicación también se ven IMPRESIONANTES? ;-)
Por favor, deja un eficiente Comente con sus pensamientos, luego comparta esto en su (s) grupo (s) de Facebook que lo encontrarán útil y cosechemos los beneficios juntos. ¡Gracias por compartir y ser amable!

Divulgación: Esta página puede contener enlaces a sitios externos para productos que amamos y recomendamos de todo corazón. Si compra productos que le sugerimos, es posible que ganemos una tarifa de referencia. Tales tarifas no influyen en nuestras recomendaciones y no aceptamos pagos por reseñas positivas.

Autor (es) destacado en:  Logotipo de la revista Inc   Logotipo de Sitepoint   Logotipo de CSS Tricks    logotipo de webdesignerdepot   Logotipo de WPMU DEV   y muchos más ...