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

desarrollador ios

En este artículo, repasaremos lo que creemos que se necesita para convertirse en desarrollador de iOS. 

Estamos dirigiendo esta guía directamente a dos grupos de personas:

  • Principiantes absolutos de Swift (Swift es el lenguaje que se utiliza para codificar aplicaciones de iOS): personas que nunca antes han creado nada para iOS.
  • Y personas que han intentado aprender Swift antes pero nunca lograron 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 comentaremos será completamente gratuito.

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 debes tener para conseguir un trabajo.
  2. Habilidades que es bueno tener para diferenciarte de la multitud
  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.

Lea la publicación completa o salte directamente a la información que está buscando, ¡depende completamente de usted!

Las habilidades fundamentales necesarias para convertirse en desarrollador de iOS

¿Qué es un desarrollador de iOS?

Un desarrollador de iOS trabaja en aplicaciones para Apple gama de teléfonos. iOS es específicamente para iPhone y trabajarás principalmente con juegos y aplicaciones para ese teléfono.

Podrías estar involucrado en:

  • Diseño y planificación de aplicaciones.
  • Escribir código y desarrollar aplicaciones.
  • Realizar mantenimiento en aplicaciones o servidores de aplicaciones
  • Identificar problemas y resolverlos
  • Desarrollando actualizaciones y mejoras.
  • Trabajar con equipos durante todo el ciclo de vida de la aplicación

Aunque te estés especializando en un producto en particular, hay muchas cosas involucradas en el día a día.

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

Habilidades básicas necesarias para convertirse en 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 que creemos que necesitará como desarrollador de iOS:

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

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

1. Aprendizaje rápido

rápido es el primero en la lista. Esto 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 como JavaScript o Python. Es simplemente código puro que usas para crear variables, escribir funciones, etc.

Swift tiene solo unos pocos años y utiliza casi todas las funciones de vanguardia disponibles. 

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 serie de funciones avanzadas que puedes aprovechar.

2. interfaz de usuario rápida

La segunda habilidad básica requerida es Interfaz de usuario rápida. Se trata de un Apple framework que nos permite usar Swift para crear aplicaciones para iOS, macOS, tvOS e incluso watchOS. 

Mientras que Swift es el lenguaje de programación, SwiftUI proporciona las herramientas para desarrolladores para crear aplicaciones.

Para ser claros, SwiftUI no reemplaza a Swift: es un marco construido sobre Swift que nos permite crear aplicaciones.

Necesitará conocer Swift y SwiftUI para tener éxito.

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.

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 la aplicación que los utilice.

No es necesario que escriba código para mantenerlo todo sincronizado, lo cual suele ser bastante complejo. 

UIKit fue escrito para AppleEl lenguaje más antiguo, Objective-C. Como resultado, tiene todo tipo de peculiaridades derivadas de su 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.

Lo más importante es que SwiftUI es la dirección en la que van las cosas. 

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

Si bien UIKit solía ser más popular, SwiftUI es ahora 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 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.

Ahí es donde entra en juego la otra habilidad esencial: trabajar con datos. 

Nuevamente, existen numerosas formas de cargar y guardar datos. Lo mínimo absoluto que debe poder hacer es convertir los datos que recibió de un servidor en información que su aplicación pueda mostrar.

Por tanto, la tercera y cuarta habilidades básicas están inextricablemente vinculadas.

Obtenga algunos datos de un servidor y luego conviértalos en información que pueda mostrarse 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 dependemos en gran medida de é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.

Pocas personas en el mundo entienden realmente cómo funciona Git, pero está bien: sólo necesitas saber lo suficiente sobre los conceptos básicos para almacenar tus 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. También puedes postularte para puestos junior de desarrollo de iOS y trabajar para una empresa si eso es lo que quieres hacer. 

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

Sin embargo, si domina esas habilidades y desea avanzar, hay cinco habilidades más que le recomendamos que aprenda.

Serás aún más empleable y la gama de aplicaciones que podrás 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, hay kit de interfaz de usuario. Es AppleEl marco de interfaz de usuario más antiguo, que se ha utilizado para el desarrollo de aplicaciones desde 2008, 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 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. 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 mantenerla.

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 acerca del 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.

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.

Tienes que querer aprenderlo de verdad, o te confundirás, te aburrirás, te enojarás o, potencialmente, ¡las tres cosas!

Claro, SwiftUI no tiene todas las características de UIKit, pero le permite progresar 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é. 

Core Data le permite manipular datos una vez que los ha 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 del usuario estén sincronizados en todos sus dispositivos.

Core Data tiene una serie de inconvenientes. Lo más grave es que no siempre es agradable trabajar con él.

Core Data es casi tan antiguo como UIKit y, si bien 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 funcione correctamente y, lo que es más importante, que siga funcionando correctamente incluso después de haber realizado cambios significativos.

Las pruebas son fundamentales y le ayudarán a escribir software de mayor calidad. Entonces, ¿por qué se considera una habilidad de extensión en lugar de una habilidad central? 

Hay tres razones para esto:

La comunidad de iOS es terrible realizando pruebas, por razones históricas que sean. Muchas aplicaciones grandes no tienen ninguna prueba y, trágicamente, varios desarrolladores senior de iOS están casi orgullosos de no escribir 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 usted supiera cómo usar SwiftUI, UIKit o uno de los otros grandes bateadores, porque las pruebas son un tema mucho más pequeño.

Por lo tanto, las pruebas son importantes, las pruebas son importantes y, si quieres ser un gran desarrollador en general, debes aprender a escribir pruebas excelentes.

Pero solo después de haber dominado los fundamentos del desarrollo de aplicaciones, después de haber tenido cierto éxito, haber sentido la emoción de tener su aplicación disponible en la App Store y haber dominado las pruebas.

Arquitectura de software

Arquitectura de software

La cuarta habilidad de extensión que nos gustaría discutir es la arquitectura de software, que trata sobre cómo escribimos 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 sigas con tu código incorrecto hasta que descubras cómo hacerlo mejor. Ahí es donde entra en juego la arquitectura de software.

Analizamos 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 obvia y "correcta" de resolver un problema.

El mejor punto de referencia para esto es este: revisa su código de hace seis meses, hace un año, etc.

Escribir código incorrecto es aceptable si te acerca a escribir un código mejor. 

Seguramente te rascarás la cabeza en algunos lugares cuando mires el código que escribiste hace cinco años porque sabrás más ahora que entonces.

Esa es la manera que debe ser.

multihilo

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

El multiproceso puede ser un verdadero dolor de cabeza porque a nuestro cerebro le resulta difícil entenderlo.

Cuando su código hace una cosa a la vez, podemos pensarlo linealmente, pero cuando suceden dos o tres cosas al mismo tiempo, potencialmente superponiéndose, realmente puede alterar su pensamiento.

Entonces, si bien el multiproceso es una gran habilidad, debes 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 su código 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 analizar algunos de los errores más comunes que cometen las personas mientras aprenden.

Errores que veo todo el tiempo y sé cómo hacen retroceder a la gente.

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 diferencia el más común, que encuentra la gente es intentar memorizarlo todo.

Nadie recuerda todo. Nadie se acerca a recordarlo todo.

Incluso si solo considera las API publicadas por Apple, debe haber más de cien mil de ellos. 

Incluso si lo limitas a los componentes centrales del desarrollo de aplicaciones, todavía estás viendo varios cientos.

Todo funcionando de una manera muy precisa que requiere mucho aprendizaje para su uso.

En su lugar, aprenda a hacer algo nuevo y luego olvide rápidamente cómo hacerlo de nuevo. 

Entonces, lo buscas, lo usas nuevamente y luego lo olvidas rápidamente.

Entonces, lo buscas por tercera vez y lo usas, y esta vez casi lo olvidas: algunas partes se quedan contigo. 

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

Si te propones memorizar todo, tendrás 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.

Evite el síndrome del objeto brillante

El segundo problema más común es el "síndrome del objeto brillante".

Aquí es donde encontramos un tutorial que funciona y comenzamos a progresar. Pero después de una o dos semanas, notamos otra serie de tutoriales que queremos seguir y, en su lugar, nos lanzamos a ella. 

El problema aquí es que muchos aspectos del aprendizaje 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 alcanzas estas pronunciadas curvas de aprendizaje, aparece el síndrome del objeto brillante.

Con tantos tutoriales gratuitos disponibles, puedes saltar a cualquiera de ellos y reiniciar, y volverás al lado poco profundo de la piscina, cubriendo partes más fáciles que ya has aprendido. 

Pero, unless el curso original eligió un tema inusual para cubrir, probablemente tendrás que aprenderlo eventualmente y solo estás retrasando 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 otra persona, el tercer problema con el que nos topamos es cuando se vuelven solitarios con su aprendizaje.

Creen que son totalmente capaces de aprender a crear aplicaciones para iOS utilizando Swift por sí mismos y que no necesitan ninguna ayuda.

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 mayoría de las personas, aprender de esta manera es una experiencia terrible.

Cada error o malentendido requiere cinco veces más tiempo para notarse y luego resolverse. Es extremadamente fácil perder la motivación y te estás perdiendo mucha inspiración al ver a otros triunfar.

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. 

Descubrirás una fantástica comunidad de estudiantes que te apoyarán y animarán. También te inspirarás con su trabajo y, a su vez, los inspirarás con el tuyo.

¡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, y siempre nos ofrece cosas nuevas e interesantes para probar.

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, generalmente 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 la mayor cantidad posible de la amplia gama de marcos de trabajo de la empresa.

Pero su trabajo principal es escribir material de referencia (cosas que lees cuando intentas utilizar una parte específica de sus herramientas) en lugar de crear un curso estructurado para ayudarte a aprender a crear aplicaciones para iOS.

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

Este enfoque funciona para algunas personas. 

Sin embargo, para la mayoría de las personas, es como intentar aprender un idioma humano leyendo un diccionario.

Los documentos están destinados a cubrir todo 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 de pueden resultar útiles. Pero si recién estás comenzando, quizás quieras volver a visitarlos después de unos meses.

Atascarse en Objective-C

El sexto problema importante al que se enfrenta la gente es intentar aprender Objective-C.

Esto fue AppleEl principal lenguaje de desarrollo antes de la introducción de Swift. Si bien quedan restos de 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 que Swift y realmente les encanta. Pero tiene una curva de aprendizaje extremadamente pronunciada y carece de la mayoría de las características importantes de Swift. 

Cuándo Apple Cuando se anunció por primera vez el iPhone SDK, mucha gente se horrorizó 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. También verás cómo la gente apunta a Python, Java, Ruby, Go y otros lenguajes, ¿y para qué?

No es una carrera: esos idiomas no tienen por qué perder para que Swift gane. De hecho, Swift y SwiftUI se inspiran frecuentemente en otros lenguajes y marcos.

Siempre 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.

Recursos y cursos de desarrollo de iOS

Recursos y cursos de desarrollo de iOS

Ahora, vamos a la parte que le interesa a la mayoría de la gente. ¿Cuáles son los recursos que debería utilizar para aprender Swift, SwiftUI y más, para lograr su objetivo de convertirse en 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 mayor sea el precio de un curso Swift, mejor debe ser.
  2. Muchos sitios, como Udemy, dependen de la venta de una gran cantidad de cursos de bajo costo, confiando en que si no te gusta uno, simplemente comprarás otro. También tienen un modelo de negocio como el de Steam en el que hay ventas constantes, incentivando a la gente a acumular una gran cantidad de cursos para estudiar "algún 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 ayudarle. El primero es su Código de enseñanza sitio web.

Contiene recursos para estudiantes y profesores para aprender Swift desde cero hasta 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 guiarán a través del proceso de creación de aplicaciones del mundo real. Sin embargo, estos no enseñan Swift, por lo que primero debes completar su plan de estudios centrado en Swift.

YouTube y otros sitios

Hay algunos excelentes Vídeos de YouTube que le guiarán a través de los fundamentos de SwiftUI.

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 una que es completamente gratuita. ApplePatios de juegos Swift de aplicación.

Te permite aprender 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.

Encontrar 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 Happy Hour para desarrolladores de iOS, Twitter/X 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 comunidad, me gustaría hablar de un tema realmente importante que le ayudará a conocer personas en puestos similares a los suyos, aprender de forma más eficaz y encontrar puestos vacantes.

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 excelentes enlaces 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.

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. La verdadera diversión está en las salas de trabajo, donde puedes 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 serie 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 pregunta frecuente y queremos abordarla ahora mismo.

¿Cuánto tiempo lleva pasar de no saber nada sobre Swift a poder obtener un puesto de desarrollador de iOS de nivel básico?

La respuesta obvia es "depende", pero eso sería una solución en este caso, así que abordémoslo de diferentes maneras.

La regla de oro es no apresurarse

En primer lugar, no puedes realizar varios cursos al mismo tiempo. ¿Recuerdas lo que dije sobre el "síndrome del objeto brillante"?

Sí, muchas personas creen que pueden tomar dos cursos al mismo tiempo, luego estudiar cuatro, cinco o incluso más horas todos los días y aun así tener una comprensión de alta calidad de los temas que cubrieron.

Para ser claros, he visto gente intentar esto muchas veces y siempre falla. Cada vez.

Nunca funciona, y escucho a la gente decir que es porque los tutoriales eran malos, o porque Swift era demasiado difícil, o literalmente por cualquier otra razón que no sea intentar acelerar algo complejo.

Aprender Swift puede ser difícil a veces, y aprender a crear aplicaciones requiere mucho ensayo y error, cometer errores y tomar caminos equivocados.

Y eso está bien, es mejor que estar bien, ¡es fantástico! 

Cada vez que intentas algo, cometes un error o tomas un camino equivocado, aprendes algo en el camino. Cuando finalmente llegues a la solución, la entenderás mucho mejor.

Entonces, el TL;DR aquí es no apresurarse: tómate tu tiempo, no tengas 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ó anteriormente y volver a aprenderlo según sea necesario.

Cual es su formación académica

¿Cual es su formación académica?

En segundo lugar, debes considerar tus antecedentes antes de venir a Swift.

Verá, aprender a crear aplicaciones requiere una amplia gama de habilidades. Si tiene 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.

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

Si tiene un título en informática, ya estará familiarizado con muchos de los fundamentos de informática necesarios para comenzar con Swift.

Las variables, matrices, bucles, matrices, conjuntos, funciones, programación orientada a objetos y otros conceptos serán útiles en Swift, al igual que todo su trabajo con estructuras de datos y algoritmos.

Esto podría ahorrarte entre 4 y 6 meses de tiempo de estudio dependiendo de las materias que hayas estudiado, y también te dará una ventaja a la hora de solicitar empleo en muchas empresas.

Si no tiene un título en informática pero ha asistido a un campo de entrenamiento de codificación, tendrá muchos de los fundamentos que necesitará para comenzar con Swift.

Esto no le brindará la misma ventaja al solicitar empleo en esas empresas porque a menudo esperan un título solo para marcar una casilla en su lista de requisitos arbitrarios. Pero aun 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é pasa si no tienes un título en informática, no has asistido a un bootcamp y no tienes experiencia previa en codificación?

Luego, estimaría entre 9 y 12 meses para pasar de nada a un trabajo de nivel inicial.

Sí, eso podría ser un año completo de trabajo además de cualquiera que sea su trabajo actual de tiempo completo, y eso es solo para conseguir su primer trabajo como desarrollador de iOS.

¿Es siempre el mismo año?

No. Si tienes experiencia previa, puedes reducir ese tiempo de 1 a 6 meses, como dije anteriormente.

Si tomas los mejores números de ambos lados (9 meses desde cero hasta un trabajo de nivel básico, más 6 meses por tener un título en informática), eso significa que podrías ser contratado en solo 3 meses, lo cual es increíble.

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".

No sea demasiado duro consigo mismo si se retrasa con su cronograma de aprendizaje, o si pierde algunos días o incluso algunas semanas, etc.

Mientras seas resiliente, lo lograrás.

Preparándose para aplicar

Preparándose para aplicar

Finalmente, si está un poco más avanzado en su viaje de aprendizaje de iOS y está pensando en conseguir su primer trabajo inicial, me gustaría indicarle una enorme colección de recursos 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 puedes trabajar en debates individuales, como clases versus estructuras, programación funcional, manejo de errores y más.

Ninguno de ellos es particularmente largo, pero todos están diseñados para brindarle las habilidades que necesita para desempeñarse bien en una entrevista.

¿Donde ahora?

Bien, repasé las habilidades básicas y de extensión que necesitará, los errores de aprendizaje comunes, los cursos que puede tomar y cómo conectarse con la comunidad de iOS.

También cubrí cómo prepararse para su entrevista de trabajo.

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ájate: muévete primero, encuentra algo de impulso y encuentra a alguien que te enseñe Swift de una manera que funcione para ti.

Cuando estés en un buen lugar y te sientas listo, sigue adelante y gasta algo de dinero si quieres.

¡Buena suerte en tu viaje! 

Sobre la autora
David Atard
David ha trabajado en la industria digital y en línea durante los últimos 21 años. Tiene una amplia experiencia en las industrias de software y diseño web utilizando WordPress, Joomla y los nichos que los rodean. Ha trabajado con agencias de desarrollo de software, empresas de software internacionales, agencias de marketing locales y ahora es Jefe de Operaciones de Marketing en Aphex Media, una agencia de SEO. Como consultor digital, su objetivo es ayudar a las empresas a obtener una ventaja competitiva utilizando una combinación de su sitio web y las plataformas digitales disponibles en la actualidad. Su combinación de experiencia en tecnología combinada con una sólida visión para los negocios aporta una ventaja competitiva a sus escritos.

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