Como se tornar um desenvolvedor iOS em 2021 - um guia definitivo

Neste artigo, examinarei o que acredito ser necessário para se tornar um desenvolvedor iOS em 2021. 

Estou apontando isso diretamente para dois grupos de pessoas, totalmente iniciantes em Swift - pessoas que nunca construíram nada para iOS antes - e os chamados falsos iniciantes - pessoas que tentaram aprender Swift antes, mas nunca realmente alcançaram seu objetivo de obter um trabalho em tempo integral.

Consideraçãoless do seu nível atual, o objetivo aqui é o mesmo. Para colocá-lo em uma posição para se candidatar a uma função de desenvolvedor iOS júnior em uma empresa.

Veremos as habilidades que você deve aprender, os cursos que pode fazer, como se conectar à comunidade, erros comuns que as pessoas cometem e muito mais. 

O melhor de tudo é que tudo que discutirei será totalmente gratuito, então você não terá que pagar um centavo para acompanhar.

Sério, muitas pessoas acreditam que gastar muito dinheiro as colocará no caminho rápido para o emprego dos sonhos, quando os fatores mais importantes são determinação e força de vontade. 

Aqui vai uma dica: se você já está pensando em pular este artigo, provavelmente deve trabalhar em sua força de vontade!

Este artigo está dividido em sete seções:

  1. Habilidades essenciais que você deve ter para conseguir um emprego.
  2. Habilidades de extensão que são boas de ter - aquelas que irão diferenciá-lo da multidão se você se esforçar para aprendê-las
  3. Erros comuns que as pessoas cometem ao tentar aprender.
  4. Os muitos recursos gratuitos disponíveis para ajudá-lo a aprender Swift.
  5. Como entrar em contato com a comunidade de desenvolvedores do iOS.
  6. Uma estimativa de quanto tempo levará para atingir seu objetivo.
  7. Você está se preparando para se candidatar ao primeiro emprego.

As habilidades fundamentais necessárias para se tornar um desenvolvedor iOS

As habilidades fundamentais necessárias para se tornar um desenvolvedor iOS

Qual é o mínimo absoluto de habilidades necessárias para conseguir um emprego no desenvolvimento de iOS? 

Acredito que sejam cinco no total:

  1. rápido 
  2. SwiftUI 
  3. Trabalho em rede
  4. Trabalhando com dados
  5. Gerenciamento de versão

Essa lista é intencionalmente curta por vários motivos:

Quanto mais você aprende, mais percebe que há para aprender, então é fácil gastar tanto tempo estudando e praticando que você perde de vista o objetivo principal.

Você quer trabalhar como um desenvolvedor iOS, não apenas sentar e aprender coisas novas!

É quase certo que você se juntará a uma equipe que já tem um aplicativo que eles querem que você ajude a desenvolver, então unless você tiver muita sorte, eles precisarão lhe ensinar um monte de coisas sobreless.

Se você tentar enfiar um monte de tópicos extras de antemão, provavelmente está perdendo seu tempo.

Duas dessas cinco coisas são enormes e complicadas, e você poderia passar meses apenas tentando envolvê-las sem se aventurar em nenhum outro lugar.

Mais importante ainda, se você acertar essas cinco coisas, poderá criar uma ampla variedade de aplicativos. Claro, seu código não será perfeito, mas tudo bem porque a única maneira de escrever um bom código é primeiro escrever muito código ruim.

Deixe-me quebrar os cinco itens em pedaços menores.

Learning Swift

Swift é o primeiro da lista. Isto é Applea linguagem de programação central de. Ele não tem o conceito de exibir informações na tela do iPhone ou baixar dados da Internet. 

É simplesmente uma linguagem semelhante a JavaScript ou Python. É apenas código puro que você usa para criar variáveis, escrever funções e assim por diante.

O Swift tem apenas alguns anos, então ele faz uso de quase todos os recursos de linguagem de ponta disponíveis. 

Por um lado, isso significa que você pode evitar todos os comportamentos antiquados que são comuns em linguagens mais antigas, como C ++ e Java. Também significa que possui uma série de recursos mais avançados que podem surpreendê-lo a princípio.

E tudo bem. Muitas partes do Swift são relativamente simples, enquanto outras levarão mais tempo para serem totalmente compreendidas, portanto, não tenha pressa e persevere - você chegará lá!

SwiftUI

A segunda habilidade básica que mencionei é SwiftUI, que é um Apple framework que nos permite usar o Swift para criar aplicativos para iOS, macOS, tvOS e até mesmo watchOS. 

Assim, enquanto Swift é a linguagem de programação, SwiftUI fornece as ferramentas para desenvolvedores para criar aplicativos, por exemplo, como exibir imagens, texto, botões, caixas de texto, tabelas de dados e muito mais. 

Para ser claro, o SwiftUI não é um substituto para o Swift - é uma estrutura construída em cima do Swift que nos permite criar aplicativos. Você precisa conhecer o Swift e o SwiftUI para ter sucesso.

Se você pensou que Swift era novo, você não viu nada ainda! 

Pelo que eu posso dizer, o SwiftUI tem apenas dois anos! Apesar de sua juventude, a comunidade iOS o abraçou de todo o coração porque é muito fácil de usar.

Apple também tem uma estrutura mais antiga para construir aplicativos iOS chamada UIKit, e se você perguntar a um monte de pessoas se deve aprender SwiftUI ou UIKit primeiro, você obterá uma variedade de respostas. 

Eu acho que você deveria aprender SwiftUI.

Então, caso você esteja se perguntando, acredito que você deva priorizar o SwiftUI como uma habilidade central.

É significativamente mais fácil do que o UIKit, e quero dizer significativamente - leva talvez um quarto do código para obter os mesmos resultados que o UIKit, e há menos coisas para aprender ao longo do caminho. 

Isso significa que você ganha muito ímpeto porque pode construir coisas mais rápido, ver os resultados mais rápido e iterar esses resultados com mais rapidez, o que é extremamente motivador durante o aprendizado.

Criado para Swift

Criado para Swift

O SwiftUI foi criado para o Swift, utilizando recursos de linguagem para ajudá-lo a evitar problemas e atingir o desempenho máximo. 

Por exemplo, se você alterar alguns dados em uma tela de um aplicativo, o SwiftUI garantirá automaticamente que os novos dados sejam atualizados em qualquer outro lugar do aplicativo que os utiliza - você não precisa escrever código para mantê-los sincronizados, o que é surpreendentemente complexo. 

UIKit, por outro lado, foi escrito para Appleé uma linguagem mais antiga, Objective-C, e como resultado tem todos os tipos de peculiaridades que resultaram de sua idade.

SwiftUI é compatível com todos os Appleplataformas de, para que você possa usar o que aprendeu no iOS para criar um aplicativo macOS ou watchOS com código quase idêntico. 

Claro, alguns recursos, como a coroa digital, são exclusivos para um único dispositivo, mas a grande maioria do que você aprender funcionará em qualquer dispositivo.

Mas, o mais importante, SwiftUI é a direção para a qual as coisas estão caminhando. 

Se você estivesse se candidatando a um emprego agora, provavelmente precisaria conhecer o UIKit, mas o fato de estar lendo isso significa que você está muito mais adiantado no processo. 

Sim, o UIKit é mais popular agora, mas o SwiftUI será a estrutura de UI dominante quando você terminar de aprendê-lo em 6, 9 ou até 12 meses.

Sério, as maiores empresas do mundo, incluindo Apple, estão escolhendo SwiftUI.

Quando Apple widgets lançados recentemente no iOS 14, eles tornaram um requisito o uso do SwiftUI.

Rede e manipulação de dados

As terceira e quarta habilidades que mencionei foram networking e manipulação de dados. Quando comparados ao Swift e SwiftUI, eles são moles, ou pelo menos no nível necessário para conseguir um emprego de desenvolvedor iOS júnior.

Rede é a prática de recuperar dados da Internet ou enviar dados de um dispositivo local para um servidor remoto. 

Existem vários métodos para fazer isso, mas a coisa mais importante a entender é como recuperar JSON de um servidor.

E é aí que a outra habilidade essencial entra em jogo, trabalhar com dados. 

Novamente, existem várias maneiras de carregar e salvar dados, mas o mínimo absoluto que você deve ser capaz de fazer é converter os dados recebidos de um servidor usando seu código de rede em informações que seu aplicativo possa exibir.

Portanto, a terceira e a quarta habilidades essenciais estão inextricavelmente ligadas. Busque alguns dados de um servidor e, em seguida, converta-os em informações que podem ser exibidas em seu aplicativo. Alguns desenvolvedores brincam que escrever esse tipo de código é metade do trabalho de um desenvolvedor iOS, e certamente é verdade que dependemos muito disso.

Version control

A habilidade final não é codificação, é version control, como Git. Novamente, você não precisa de muito aqui, mas é importante que você possa publicar seu código em algum lugar público, como o GitHub, para que os recrutadores possam ver seu trabalho.

Ninguém no mundo realmente entende como o Git funciona, mas tudo bem - você só precisa saber o suficiente do básico para armazenar seus dados com segurança e colaborar com outras pessoas.

Então, quando esses cinco são somados, há dois enormes - Swift e SwiftUI - bem como três menores, mas importantes. 

Se você puder apenas se concentrar nessas cinco coisas sem se distrair, você estará no caminho certo para seu primeiro trabalho de desenvolvedor iOS.

É isso: essas são as cinco habilidades essenciais que eu acredito que você precisa para ser um desenvolvedor iOS. 

Existem milhares de pessoas que têm apenas essas habilidades e podem criar e enviar aplicativos fantásticos na App Store.

O que vem depois dos fundamentos

O que vem depois dos fundamentos?

Depois de dominar as cinco habilidades principais, você poderá lançar seus próprios aplicativos e trabalhar como desenvolvedor independente, bem como se candidatar a cargos de desenvolvimento iOS júnior e trabalhar para uma empresa, se é isso que deseja fazer. 

Não há outras qualificações especiais exigidas - apenas aprenda essas habilidades essenciais e você ficará bem.

No entanto, se você já domina essas habilidades e deseja avançar, há mais cinco habilidades que recomendo que você aprenda. Essas são as habilidades que irão impulsioná-lo de uma posição boa para uma posição fantástica - você se tornará ainda mais empregável e a gama de aplicativos que poderá construir se expandirá ainda mais.

As habilidades são as seguintes:

  • UIKit 
  • Dados principais 
  • Validação
  • ensaio
  • Arquitetura de software
  • multithreading

Como antes, gostaria de examinar cada um deles em mais detalhes para que você entenda por que os considero importantes - e por que penso neles como habilidades de extensão, em vez de habilidades essenciais.

UIKit

Primeiro, existe o UIKit. Isto é AppleA estrutura de interface do usuário mais antiga do, que tem sido usada para desenvolvimento de aplicativos desde 2008 - tem 13 anos no momento em que escrevo isso, o que é antigo em termos de software. Mas isso não significa que o UIKit seja ruim. Na verdade, conforme você se acostuma com o funcionamento, ficará surpreso com o quão elegante pode ser.

Existem vários motivos pelos quais vale a pena aprender o UIKit, incluindo:

Centenas de milhares de aplicativos já foram escritos no UIKit, portanto, se você entrar em uma empresa que possui um aplicativo grande e bem estabelecido, quase certamente será necessário escrever o código UIKit para manter esse aplicativo.

O UIKit é muito mais poderoso do que o SwiftUI - há muitas coisas que você pode fazer no UIKit que atualmente não são possíveis no SwiftUI.

Usando a tecnologia Auto Layout, você pode criar layouts extremamente precisos.

Se você tiver problemas com seu código, o UIKit tem mais soluções do que o SwiftUI, simplesmente porque já existe há muito mais tempo.

Tudo isso faz o UIKit parecer fantástico, então por que eu o tornei uma habilidade de extensão ao invés de uma habilidade básica? 

Porque o UIKit também tem problemas:

Quase tudo é mais difícil de fazer no UIKit do que no SwiftUI, com algumas tarefas exigindo centenas de vezes, senão mais, de código. 

O SwiftUI foi projetado especificamente para o desenvolvimento de iOS moderno, então ele faz muito do trabalho pesado para você.

Como o UIKit não foi escrito em Swift, ele tem muitos recursos que o SwiftUI não possui - muitos opcionais implicitamente desembrulhados, marcando o código com um atributo @objc especial para torná-lo disponível para a parte inferior do Objective-C do UIKit e a necessidade de usar protocolos e delegados para exibir dados simples.

Nada sobre o Auto Layout é "automático" - na verdade, se você tentar construir um layout complexo, poderá ter pesadelos com o Auto Layout. É extremamente inteligente, mas também extremamente difícil em alguns lugares.

E é por isso que considero o UIKit uma habilidade de extensão: leva muito mais tempo e esforço para aprender do que o SwiftUI, o que significa que requer muito mais determinação - você tem que realmente querer aprendê-lo, ou então você ficará confuso , entediado, com raiva ou potencialmente os três. 

Claro, o SwiftUI não tem todos os recursos do UIKit, mas permite que você faça um progresso rápido e ganhe impulso antes de passar para o UIKit.

Gerenciando Dados Principais

Gerenciando Dados Principais

Dados principais, AppleA estrutura do para trabalhar com dados de aplicativos é a segunda habilidade de extensão que mencionei. 

Mencionei a rede e o trabalho com dados na seção de habilidades essenciais, e é verdade. Com essas habilidades no lugar, você pode buscar o que quiser de um servidor e exibi-lo em seu aplicativo. 

O Core Data dá um passo adiante, permitindo que você manipule os dados assim que os tiver obtido, como pesquisar valores específicos, classificar os resultados e muito mais, tudo de maneira muito eficiente. 

Ele também pode se conectar facilmente ao iCloud, garantindo que os dados dos usuários sejam sincronizados em todos os seus dispositivos.

Core Data tem uma série de desvantagens, a mais séria delas é que nem sempre é agradável de trabalhar. O Core Data é quase tão antigo quanto o UIKit e, embora funcione bem no Objective-C, não parece tão natural no Swift. 

Ele se integra bem com SwiftUI, o que o faz sentir less estranho, mas ainda é um tópico surpreendentemente complexo.

Então, por que a incluí como uma habilidade de extensão? Porque, como o UIKit, o Core Data é extremamente popular - centenas de milhares de aplicativos foram construídos com ele e é usado em muitas empresas grandes e pequenas. 

Core Data, como o UIKit, é extremamente poderoso e, embora você possa recriar as partes mais importantes dele em seu próprio código, por que o faria?

Testando seu código

A terceira habilidade na minha lista de extensões é o teste. Escrever um código especial para garantir que o código do seu aplicativo principal funcione conforme o esperado. 

Os testes nos permitem garantir que nosso código funcione corretamente e, o que é mais importante, que continue funcionando corretamente, mesmo depois de fazermos alterações significativas nele.

Por exemplo, se você alterar 500 linhas de código para implementar um novo recurso e todos os seus testes passarem, você está pronto para prosseguir.

Como resultado, o teste é crítico e o ajudará a escrever software de alta qualidade. 

Então, por que ela é considerada uma habilidade de extensão ao invés de uma habilidade básica? 

Existem três razões para isso:

A comunidade iOS como um todo é péssima em testes, por quaisquer razões históricas. Quero dizer, muito ruim - muitos aplicativos grandes não têm nenhum teste, e eu perdi a conta do número de desenvolvedores iOS sênior que conheci que estão quase orgulhosos de nunca escreverem testes. 

Quando você considera todas as coisas incríveis que você pode criar com Appleferramentas e estruturas da, escrever testes não parece muito divertido em comparação. 

Pessoalmente, gosto de escrever testes da mesma forma que gosto de passar fio dental, mas sei que muitas pessoas não gostam, especialmente quando estão trabalhando em projetos pessoais.

Ao se candidatar a um emprego, conhecer Swift e AppleOs principais frameworks de sempre serão mais úteis do que saber como escrever testes. 

As empresas preferem que você saiba como usar SwiftUI, UIKit ou um dos outros grandes sucessos, porque o teste é um tópico muito menor - não há tantas coisas para aprender.

Portanto, o teste é importante, o teste é importante, e eu adoraria ensiná-lo a escrever ótimos testes. Mas só depois de dominar os fundamentos do desenvolvimento de aplicativos - depois de ter algum sucesso, sentir a pressa de ter seu aplicativo ao vivo na App Store e dominar os testes.

Arquitetura de software

Arquitetura de software

A quarta habilidade de extensão que eu gostaria de discutir é a arquitetura de software, que é realmente sobre como escrevemos código. 

Você vai escrever um código terrível quando estiver começando - um código tão ruim que provavelmente viola a convenção de Genebra. 

Tudo bem porque é assim que você aprende. Você não começa bem - você fica bom sendo mau por muito tempo, assim como LeBron James não nasceu campeão de basquete.

A questão é que você se atém ao seu código ruim até descobrir como fazer melhor. É aí que entra a arquitetura de software. Olhando para as técnicas testadas e comprovadas para estruturar seu código para torná-lo mais fácil de ler, usar, modificar e manter a longo prazo. 

Essas técnicas às vezes dependem da maneira como o Swift funciona - recursos de linguagem que podem ser usados ​​para escrever um código melhor. 

No entanto, existem inúmeras outras técnicas que funcionam em qualquer linguagem de programação e são comumente chamadas de padrões de projeto.

Um aspecto importante dessa habilidade que você deve começar a aprender é como quebrar seu código. 

Por exemplo, se você estiver criando uma única tela em seu aplicativo, pode incluir um botão de login, uma galeria de imagens e uma lista de amigos. 

No entanto, você deve separar idealmente cada uma dessas partes - um componente de botão de login, um componente de galeria de imagens e um componente de lista de amigos - para que possa reutilizar qualquer um desses componentes em outras partes de seu aplicativo.

A arquitetura de software é muito mais subjetiva do que as outras habilidades que discuti até agora. Para os outros, como SwiftUI, você pode raciocinar, "Bem, eu sei fazer X, Y e Z, então estou confiante de que sou um bom desenvolvedor de SwiftUI."

 A arquitetura de software é um tópico muito amplo e muitas vezes não existe uma maneira "certa" óbvia de resolver um problema, então acredito que o melhor benchmark para isso é este: você olha para trás em seu código de seis meses atrás, um ano atrás e em breve.

Novamente, escrever código incorreto é aceitável, desde que aproxime você de escrever um código melhor. 

Eu certamente faço caretas em alguns lugares quando olho para trás no código que escrevi cinco anos atrás, porque eu sei mais agora do que antes - e isso é uma coisa boa.

multithreading

A habilidade de extensão final que eu gostaria de discutir é multithreading, que é a prática de fazer seu código fazer mais de uma coisa por vez. 

O multithreading pode ser uma verdadeira dor no pescoço porque é difícil para o nosso cérebro compreender. Quando seu código faz uma coisa por vez, podemos pensar de forma linear, mas quando duas ou três coisas acontecem ao mesmo tempo, potencialmente se sobrepondo, isso pode realmente dobrar seu cérebro.

Portanto, embora o multithreading seja uma ótima habilidade para se ter uma habilidade de extensão, você deve ser cauteloso. Seu objetivo deve ser entender o suficiente dos conceitos e do código para fazê-lo funcionar bem sem ir muito longe. 

Para ser honesto, muitos desenvolvedores acreditam que o multithreading fará com que seu código seja executado três ou quatro vezes mais rápido instantaneamente. 

Embora isso seja verdade em alguns casos, em muitos outros casos, seu código irá realmente rodar mais devagar e agora você terá que lidar com toda a complexidade adicional do código.

Se você não acredita em mim, considere esta citação de David Smith - Ele é um membro da Appleda equipe Swift e já passou anos trabalhando no âmago da Appleframeworks de:

“Minha recomendação específica é que você evite escrever código assíncrono / simultâneo tanto quanto possível. Isso pode parecer estranho em 2018, mas o custo em complexidade e desempenho é alto.

Portanto, aprenda um pouco sobre como o multithreading funciona no Swift para demonstrar que você entende os conceitos e a implementação, mas não exagere! ”

Erros comuns que novos desenvolvedores iOS cometem

Erros comuns que novos desenvolvedores iOS cometem

Neste ponto, listei todas as habilidades básicas e de extensão que acredito que você precisará para trabalhar como desenvolvedor iOS em tempo integral. 

Mas também quero discutir alguns dos erros mais comuns que as pessoas cometem durante o aprendizado, porque os vejo o tempo todo e sei como eles prejudicam as pessoas.

Existem sete problemas principais que as pessoas enfrentam e gostaria de examiná-los em ordem. 

Eles são como se segue:

  1. Lembrando de tudo
  2. Síndrome do objeto brilhante
  3. Lobo solitário aprendendo
  4. Fazendo uso de software beta
  5. Dependendo Appledocumentação de
  6. Ficar atolado em Objective-C
  7. Visando outras línguas

Vamos examinar cada um deles um por um.

Pare de tentar se lembrar de tudo

Pare de tentar se lembrar de tudo

O primeiro, e de longe o mais comum, problema que as pessoas encontram é tentar memorizar tudo - lendo um tutorial e acreditando que devem lembrar tudo de cor. 

Por favor, por favor, não faça isso. É uma receita para o desastre e vai exaurir toda a sua força de vontade a ponto de você nunca mais querer programar novamente.

Ninguém se lembra de tudo. Ninguém chega perto de se lembrar de tudo. Mesmo se você considerar apenas as APIs publicadas por Apple, que são os pedaços de código que podemos usar para construir nossos aplicativos, deve haver bem mais de cem mil disponíveis. 

Mesmo se você limitá-lo aos componentes principais do desenvolvimento de aplicativos, você ainda está olhando para várias centenas - todos trabalhando de uma maneira muito precisa que requer muito aprendizado para usar.

Em vez disso, você aprende como fazer algo novo e logo se esquece de como fazer de novo. 

Então, você procura, usa-o novamente e, em seguida, esquece-o imediatamente. Então, você olha uma terceira vez e usa, e desta vez quase sempre esquece - algumas partes ficam com você. 

Este ciclo continua indefinidamente, com você tendo que consultar um tutorial ou algum outro guia de referência a cada vez, até que os fundamentos estejam enraizados em sua mente a ponto de você poder fazer isso sem consultar ninguém.

Se você ainda não sabia, esquecer é uma parte importante do aprendizado. 

Cada vez que você esquece algo e reaprende, isso penetra mais profundamente e mais profundamente em seu cérebro. Quando você reaprende algo, seu cérebro faz novas conexões com outras coisas que você aprendeu, o que o ajuda a entender mais sobre o contexto do que você está tentando fazer. 

E cada vez que você reaprende, está sinalizando para seu cérebro que esse tópico específico é importante o suficiente para ser armazenado em sua memória de longo prazo.

Mas se você decidir memorizar tudo, terá dificuldade. 

Em vez disso, não se preocupe em esquecer as coisas. Saber onde procurá-los é muito mais importante do que memorizar códigos Swift específicos para realizar algo. 

Quando você se esquece de algo e precisa reaprendê-lo, considere isso uma coisa boa - essa informação vai afundar mais profundamente na segunda, terceira e décima vez que você aprender, então você está ajudando seu cérebro.

Evite a síndrome do objeto brilhante

O segundo problema mais comum que vejo as pessoas encontrarem é o que chamo de "síndrome do objeto brilhante", em que encontram uma série de tutoriais que funciona bem para elas e começam a fazer progresso, mas depois de uma ou duas semanas, notam outra série de tutoriais que eles quero seguir e pular do navio para isso em vez disso. 

Algumas pessoas me enviaram emails dizendo que tentaram quatro, cinco ou até seis séries diferentes e não estão aprendendo nada por algum motivo estranho.

A questão aqui é que muitos aspectos do aprendizado de qualquer coisa são desinteressantes. Isso não é necessariamente culpa do professor. 

É apenas um fato de aprender a codificar - algumas coisas fornecem ótimos resultados com pouco esforço, enquanto outras levam muito mais tempo para entender, não produzem resultados extravagantes ou são apenas uma parte de um conceito maior.

Quando você atinge essas curvas de aprendizado íngremes, a síndrome do objeto brilhante entra em ação - com tantos tutoriais gratuitos disponíveis, você pode pular do barco para qualquer um deles e reiniciar, e você estará de volta na parte rasa da piscina, cobrindo as partes mais fáceis você já aprendeu. 

Mas, unless Se o curso original escolheu um tópico incomum para abordar, você provavelmente terá que aprendê-lo eventualmente, e está apenas adiando o inevitável.

Portanto, não estou pedindo a você que sempre resista à síndrome do objeto brilhante, porque entendo como é difícil. Em vez disso, pelo menos esteja ciente disso: quando você encontrar um problema, tente pedir a ajuda de outra pessoa e perseverar em vez de mudar.

Não vá sozinho

Não vá sozinho

Falando em perguntar a outra pessoa, o terceiro problema que vejo as pessoas se deparam é quando elas ficam sozinhas com seu aprendizado - elas acreditam que são totalmente capazes de aprender a construir aplicativos iOS usando Swift sozinhas e não precisam da ajuda de outras pessoas .

Este método funciona para um número muito pequeno de pessoas, normalmente aquelas com vasta experiência com outras linguagens de programação ou plataformas. 

No entanto, para a grande maioria das pessoas, aprender dessa maneira é uma experiência terrível - cada erro ou mal-entendido leva cinco vezes mais tempo para ser resolvido, é extremamente fácil perder a motivação e você está perdendo muita inspiração ao assistir outros têm sucesso.

Se você é um aprendiz natural de "lobo solitário", encorajo-o a mudar seus hábitos. 

Compartilhe o que você está aprendendo, conecte-se com outras pessoas que estão aprendendo e desenvolva o hábito de fazer perguntas. 

Você não apenas descobrirá uma comunidade fantástica de alunos que irão apoiá-lo e incentivá-lo, mas também será inspirado pelo trabalho deles e, por sua vez, os inspirará com o seu. Acredite em mim, já vi isso centenas de vezes e é completamente transformador.

Não use versões beta

O quarto grande problema que vejo é quando as pessoas insistem em usar versões beta de Appleferramentas de desenvolvimento de. 

Eu entendo: todo ano, Apple lança um novo iOS, um novo macOS e outros produtos, sempre oferecendo coisas novas e interessantes para experimentarmos. É natural que as pessoas queiram aprender o que há de melhor e mais recente, especialmente se souberem que o Swift tem uma longa história de mudanças.

No entanto, quando as pessoas tentam aprender com o software beta, elas se deparam com uma série de problemas:

Como os tutoriais não foram atualizados para a versão beta, seguir suas instruções nem sempre será possível ou falhará.

Bugs são comuns em betas, especialmente aqueles lançados para atualizações importantes do iOS.

AppleOs frameworks beta do demoram para se estabilizar, o que significa que o código que funcionou no beta 1 pode não funcionar no beta 3.

Portanto, embora seja empolgante aprender coisas novas e você possa acreditar que está avançando no jogo com novos recursos, acredite em mim: não vale a pena. 

Sempre use os lançamentos públicos mais recentes de Appledas ferramentas de desenvolvedor até que você se sinta confortável com elas.

Contando com a documentação oficial

Contando com a documentação oficial

O quinto grande problema que as pessoas enfrentam ao tentar aprender é confiar em Appledocumentação de. 

AppleA equipe de publicações do desenvolvedor trabalha duro para documentar o máximo possível a partir da vasta gama de estruturas da empresa, mas seu trabalho principal é escrever material de referência - coisas que você lê quando está tentando usar uma peça específica de suas ferramentas - em vez de criando um curso estruturado para ajudá-lo a aprender a construir aplicativos iOS.

Já perdi a conta de quantas vezes as pessoas me perguntaram: "Como posso aprender Swift?" apenas para ouvir: "Leia Appleguia de referência do Swift. " 

Essa abordagem funciona para algumas pessoas, e eu sei porque funcionou para mim quando o Swift foi anunciado pela primeira vez - li de capa a capa. 

No entanto, para a maioria das pessoas, é semelhante a tentar aprender uma linguagem humana lendo um dicionário. A intenção é cobrir tudo no idioma, em vez de ensinar as partes mais importantes e como aplicá-las.

Então, se você tem vasta experiência com outras línguas, lendo AppleOs guias de referência podem ser úteis, mas se você está apenas começando, pode querer revisitá-los depois de alguns meses.

Ficar atolado em Objective-C

O sexto grande problema que as pessoas enfrentam é tentar aprender Objective-C. Este foi AppleA linguagem de desenvolvimento principal antes da introdução do Swift, e embora existam resquícios em algumas bases de código antigas, a grande maioria do código existente agora é Swift, e quase todos os novos códigos também são Swift.

Passei anos escrevendo Objective-C antes do Swift e realmente comecei a amá-lo, mas ele tem uma curva de aprendizado extremamente íngreme e carece da maioria dos recursos importantes do Swift. 

Eu lembro quando Apple anunciou o iPhone SDK pela primeira vez e ficou horrorizado com Objective-C porque era diferente de tudo que eu tinha visto até agora.

Objective-C e Swift não têm quase nada em comum para um iniciante. 

Sim, eles compartilham o mesmo Apple frameworks, mas unless você planeja trabalhar em Apple - a única empresa no mundo ainda produzindo grandes quantidades de Objective-C - você deve deixar Objective-C sozinho e se concentrar inteiramente em Swift.

Ignorando outras línguas

Ignorando outras línguas

O último grande erro que vejo as pessoas cometerem ao aprender Swift é descartar outras línguas como inferiores ao Swift. 

O destino mais comum é o JavaScript, mas você também verá as pessoas mirando em Python, Java, Ruby, Go e outras linguagens, e para quê? Não é uma corrida, gente - essas línguas não precisam perder para o Swift vencer.

Na verdade, Swift e SwiftUI são frequentemente inspirados por outras linguagens e estruturas - sempre que novos recursos de linguagem são considerados, a comunidade analisa implementações semelhantes em Rust, Python, Haskell e outras linguagens, e SwiftUI é fortemente influenciada pelo JavaScript React estrutura. 

Então, quando ouço pessoas em nossa comunidade alegarem que o SwiftUI não tem JavaScript ou algo semelhante, eu me encolho - nada poderia estar mais longe da verdade.

Recursos e cursos de desenvolvimento iOS

Recursos e cursos de desenvolvimento iOS

Agora, a parte em que a maioria das pessoas está interessada: quais são os recursos reais que acredito que você deve usar para aprender Swift, SwiftUI e muito mais - para atingir seu objetivo de se tornar um desenvolvedor iOS?

Existem muitos por aí, e eu aprecio o fato de que a comunidade Swift tem um grupo tão diverso de pessoas compartilhando seus conhecimentos. 

No entanto, neste artigo, vou me concentrar em recursos gratuitos - lugares onde você pode aprender a construir aplicativos fantásticos sem gastar um centavo.

Isso é devido a dois fatores:

  1. Algumas pessoas acreditam que quanto mais alto o preço de um curso Swift, melhor deve ser, então elas acabam pagando preços exorbitantes sem receber o benefício adequado.
  2. Muitos sites, como o Udemy, contam com a venda de um grande número de cursos de baixo custo, com a certeza de que, se você não gostar de um, comprará apenas outro. Eles também têm um modelo de negócios semelhante ao do Steam em que há vendas constantes, incentivando as pessoas a acumularem um grande número de cursos para estudar "um dia".

Então, estou apenas listando recursos gratuitos aqui porque não quero que você caia nessas armadilhas - não gaste cem dólares ou mais em seu primeiro curso, e não compre uma dúzia de cursos baratos pensando que farão você um desenvolvedor.

Tutoriais

Começar, Apple tem dois recursos principais que podem ajudá-lo. O primeiro é o site Código de Ensino, que contém recursos de alunos e professores para aprender Swift desde o início, até as certificações profissionais. 

Seu currículo é extenso, então pode levar algum tempo para encontrar o melhor ponto de entrada para você, mas uma vez lá, você encontrará muito o que explorar.

Em segundo lugar, Apple tem uma série de tutoriais SwiftUI que o orientam no processo de criação de aplicativos do mundo real. Estes, no entanto, não ensinam Swift, então você deve primeiro completar seu currículo focado em Swift.

Como afirmei anteriormente, Apple também publica um guia específico para a linguagem de programação Swift, mas há uma boa chance de que não funcione para você - ele pretende ser uma referência em vez de um tutorial estruturado, por isso é uma leitura bastante densa.

O que Appleos tutoriais de não fazem é tentar fornecer um método estruturado de aprendizagem. 

YouTube e outros sites

Existem alguns vídeos excelentes do YouTube que orientam você nos fundamentos do SwiftUI, como:

VlhcNR7Qrno
, no qual ele o orienta durante o processo de criação de um jogo de caça-níqueis do zero.

51xIHDm_BDs
explica cinco conceitos do SwiftUI que todos devem aprender quando começam a programar.

aP-SQXTtWhY
que apresenta Swift e SwiftUI enquanto responde a perguntas do público.

Existem outros sites com tutoriais de Swift e SwiftUI de alta qualidade, incluindo BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee e muito mais - eu realmente incentivo as pessoas a visitar uma variedade de recursos e descobrir o que funciona para eles.

Educação baseada em aplicativos

Se você preferir aprender por meio de aplicativos, recomendo dois, ambos totalmente gratuitos. O primeiro é AppleO aplicativo Swift Playgrounds, que permite que você aprenda Swift diretamente de seu iPad ou Mac. 

Existem muitos interativos lessons voltados para crianças, mas também existem alguns mais avançados lessons que o ajudarão a aprimorar suas habilidades.

O outro aplicativo se chama Unwrap e foi criado por mim. Unwrap é compatível com todos os iPhones e iPads e permite que você aprenda, revise e pratique os fundamentos do Swift por meio de vídeos, testes e outras ferramentas. Ele cobre todos os fundamentos do Swift e complementa o currículo 100 Dias de SwiftUI perfeitamente.

Obtendo soluções

Finalmente, você precisará aprender como encontrar respostas online. Isso pode significar ir para Stack Overflow, mas espero que não, porque não é um lugar particularmente agradável.

Em vez disso, faça perguntas nos fóruns Hacking with Swift, no seu grupo favorito do Slack, nas sessões do iOS Dev Happy Hour, no Twitter e em outros lugares - somos uma comunidade genuinamente calorosa e acolhedora com muitas pessoas ansiosas para ajudá-lo a alcançar seus objetivos.

Envolvendo-se na comunidade

Envolvendo-se na comunidade

Por falar em nossa comunidade, gostaria de discutir um tópico realmente importante que o ajudará a conhecer pessoas em posições semelhantes às suas, aprender com mais eficácia e encontrar vagas de emprego - é uma situação em que todos ganham.

O assunto é conectar-se com a comunidade de desenvolvimento iOS. Isso inclui saber onde procurar notícias e ideias interessantes, onde ir para encontrar pessoas e compartilhar dicas e onde ir para fazer perguntas.

Quem devo seguir no Twitter?

Vamos começar com o mais simples, que é usar o Twitter. O Twitter é uma maneira fantástica de acompanhar coisas que interessam a você, e há algumas pessoas que eu recomendo no caso de desenvolvimento para iOS.

Sim, essas pessoas tuitam sobre seu próprio trabalho, mas acho que é ótimo acompanhá-las porque também tuitam muito sobre o trabalho de outras pessoas - elas vão ajudá-lo a ver uma variedade de perspectivas sobre um determinado tópico e compartilham todos os tipos de ideias e coisas interessantes para tentar.

Aqui estão 9 pessoas que recomendo que você siga no Twitter:

Sean Allen passa muito tempo no YouTube fazendo vídeos de desenvolvimento em Swift e iOS, mas também trabalha muito para divulgar o trabalho de outras pessoas - ele realmente faz um ótimo trabalho ajudando todos a descobrirem algo novo todas as semanas.

Antoine van der Lee executa um site de desenvolvimento iOS em https://www.avanderlee.com, mas ele também compartilha alguns ótimos links para recursos úteis que encontra no GitHub, boletins informativos e muito mais.

Novall Khan trabalha para Apple, mas isso não a impede de postar vídeos regularmente sobre o que está fazendo, o que está aprendendo, com o que está tendo problemas e muito mais - ela é realmente inspiradora.

Steve Troughton-Smith é bem conhecido por seu trabalho anterior de mexer no iOS, mas você realmente deve segui-lo pela fantástica variedade de links que ele compartilha para trabalhos impressionantes. Gosto de como ele compartilha o andamento do desenvolvimento de seus próprios aplicativos, para que você possa vê-los crescer do início ao fim.

Kaya Thomas é uma das desenvolvedoras independentes mais conhecidas da nossa comunidade, e ela foi apresentada por Apple mais vezes do que posso contar. Ela tweeta frequentemente sobre seu próprio trabalho e apresentações, mas também compartilha links para livros que está lendo, artigos que leu e outros recursos.

Majid Jabrayilov não apenas escreve um blog fantástico sobre Swift e SwiftUI, mas também é um pneuless promotor de outros - se você o seguir no Twitter, terá ideia após ideia enviada de uma ampla variedade de fontes.

Donny Wals escreve um blog do Swift e, mais recentemente, livros sobre Combine and Core Data, mas também incentiva as pessoas a compartilharem no que estão trabalhando no Twitter. Apenas ler esse tópico uma vez por semana irá inspirá-lo a tentar coisas novas, então você definitivamente deve seguir Donny.

Sommer Panage trabalhos sobre Appleda equipe de acessibilidade, então, embora ela seja um pouco limitada no que pode dizer, ela tuitou várias dicas de primeira linha, suas e de outras pessoas, que todos podem usar para criar aplicativos melhores.

Natascha Fadeeva escreve um blog sobre desenvolvimento em Swift e iOS, incluindo artigos sobre Core Data, perguntas de entrevistas e outros tópicos, mas também tweeta sobre coisas que encontra em outros lugares.

Boletins informativos e mais

Boletins informativos e mais

Claro, o Twitter não é o único lugar para ficar em contato com a comunidade; também há boletins informativos, grupos do Slack, encontros do Zoom, fóruns, conferências e outros locais. Não quero aborrecê-lo muito, então vou apenas listar um de cada aqui:

Você não pode dar errado com iOS Dev Weekly para boletins informativos. No momento em que escrevo isso, acabamos de passar por 500 edições, uma a cada semana, que acredito dizer a você tudo o que você precisa saber sobre como isso é importante.

Se você quiser postar em um fórum da web, https://www.hackingwithswift.com/forums é muito bom. Existem muitas categorias para escolher, e qualquer pessoa deve considerarless de nível de experiência, é bem-vindo a participar. Você é mais que bem-vindo para postar suas perguntas para iniciantes aqui, acredite em mim!

Todo mês, o iOS Dev Happy Hour é realizada em uma chamada de grupo Zoom com mais de 300 pessoas, mas a verdadeira diversão está nas salas de descanso, onde você pode bater papo com grupos de 6 a 8 pessoas ao mesmo tempo. É muito divertido e você conhecerá novas pessoas.

Assistir a conferências tem sido difícil devido à pandemia de coronavírus, mas Apple's WWDC foi um grande sucesso no ano passado, e foi acompanhado por uma série de eventos comunitários. Um grupo de amigos e eu criamos um Repositório GitHub para ajudar a controlar todos os outros eventos, artigos e outras coisas que aconteceram - dê uma olhada!

Por fim, se preferir bater um papo no Slack, onde pode obter respostas mais rapidamente, você pode entrar no Hacking com o grupo Swift Slack e junte-se a um dos canais Swift, SwiftUI e outros.

Quanto tempo leva para aprender iOS?

Esta é uma pergunta que frequentemente faço: quanto tempo leva para progredir de não saber nada sobre Swift para ser capaz de obter uma posição de desenvolvedor iOS de nível básico?

A resposta óbvia é "depende", mas isso seria um policial neste caso, então deixe-me abordar isso de algumas maneiras diferentes.

A regra de ouro é não ter pressa

Em primeiro lugar, você não pode fazer vários cursos ao mesmo tempo. Lembra do que eu disse sobre a "síndrome do objeto brilhante"? Sim, muitas pessoas acreditam que podem fazer dois cursos ao mesmo tempo, estudar quatro, cinco ou até mais horas todos os dias e ainda ter um entendimento de alta qualidade dos tópicos que abordaram.

Para ser claro, já vi pessoas tentarem fazer isso tantas vezes e sempre falhar. Sempre - nunca funciona, e eu ouço pessoas dizerem que é porque os tutoriais eram ruins, ou porque Swift era muito difícil, ou literalmente por qualquer outro motivo que não fosse tentar apressar algo complexo.

Eu literalmente acabei de receber um e-mail dizendo: "Oi Paul! Com que rapidez posso terminar o Swift se estudar quatro ou cinco horas por dia?" E simplesmente não é assim que o aprendizado funciona - seja aprender Swift, aprender a tocar piano, aprender a patinar no gelo ou qualquer outra coisa.

Aprender Swift pode ser difícil às vezes, e aprender a construir aplicativos requer muitas tentativas e erros, erros e desvios. E isso é bom - é melhor do que bom, é fantástico! 

Porque toda vez que você tenta algo, comete um erro ou pega o caminho errado, você aprende algo ao longo do caminho e, quando finalmente chegar à solução, vai entender muito melhor.

Portanto, o TL; DR aqui é não se apresse - não tenha pressa, não tenha medo de explorar as tangentes que surgem, não tenha medo de experimentar seus projetos e não tenha medo de voltar para algo você aprendeu anteriormente e reaprendeu conforme necessário.

Qual é a sua formação

Qual é a sua formação?

Em segundo lugar, você deve considerar seu histórico antes de vir para o Swift. Você vê, aprender a construir aplicativos requer uma ampla gama de habilidades, e se você vier para a mesa com uma riqueza de conhecimento prévio, como version control, estruturas de dados, algoritmos e muito mais, você terá uma vantagem significativa sobre aqueles que são novos na ciência da computação em geral, bem como Swift e outros Apple frameworks.

Então, aqui estão algumas possibilidades de onde você pode estar agora:

Se você tem um diploma em ciência da computação, já estará familiarizado com muitos dos fundamentos de CS necessários para começar a usar o Swift. Variáveis, matrizes, loops, matrizes, conjuntos, funções, OOP e outros conceitos serão úteis no Swift, assim como todo o seu trabalho com estruturas de dados e algoritmos. Isso pode economizar de 4 a 6 meses de estudo, dependendo das disciplinas que você estudou, e também lhe dará uma vantagem ao se candidatar a empregos em muitas empresas.

Se você não tem um diploma de CS, mas participou de um bootcamp de codificação, você terá muitos dos fundamentos necessários para começar a usar o Swift. Isso não lhe dará a mesma vantagem ao se candidatar a empregos nessas empresas, porque muitas vezes elas esperam um diploma apenas para marcar uma caixa em sua lista de requisitos arbitrários, mas ainda assim você economizará três ou quatro meses.

Se você não tem um diploma de CS e não participou de um bootcamp, mas tem programado em seu tempo livre, você economizará algum tempo - provavelmente dois meses ou mais, dependendo da linguagem ou frameworks que você estava usando .

E se você não tiver um diploma de CS, não tiver participado de um bootcamp e não tiver experiência anterior em codificação? Então eu estimaria 9 a 12 meses para ir do nada para um emprego básico. Sim, isso pode ser um ano inteiro de trabalho além de qualquer que seja o seu emprego atual em tempo integral, e isso é apenas para conseguir seu primeiro emprego como desenvolvedor iOS.

É sempre no mesmo ano? Não. Se você tiver experiência anterior, pode reduzir esse tempo para 1 a 6 meses, como afirmei anteriormente. Se você pegar os melhores números de ambos os lados - 9 meses do zero para um emprego inicial, mais 6 meses para ter um diploma de CS - isso significa que você pode ser contratado em apenas 3 meses, o que é incrível.

Você pode acreditar que encontrar seu primeiro emprego em três meses é impossível, mas não é. Caramba, conheci alguém que estava fazendo meu curso 100 Dias de Swift e conseguiu um emprego antes do dia 50 - eles já haviam aprendido o suficiente sobre o desenvolvimento de aplicativos em less mais de dois meses porque se esforçaram para fazer valer cada dia.

Portanto, você não precisa de um diploma de CS ou de um bootcamp, mas precisa estar disposto a trabalhar duro.

Permita-se alguma margem de manobra

O terceiro ponto que gostaria de salientar antes de prosseguirmos é que "leva o tempo que for preciso". Adoro uma letra de John Lennon que diz: "A vida é o que acontece quando você está ocupado fazendo outros planos".

É fantástico se você tem grandes planos de aprendizagem e grandes sonhos para o trabalho que deseja, mas às vezes está cansado, às vezes estressado, às vezes seu telhado está vazando ou seu cachorro precisa ir ao veterinário ou seus filhos precisam de mais ajuda com o dever de casa, ou qualquer outra coisa, e isso é apenas a vida. 

Portanto, não seja muito duro consigo mesmo se você ficar para trás com sua programação de aprendizado, ou se perceber que está perdendo alguns dias ou mesmo algumas semanas, e assim por diante - contanto que você seja resiliente, você conseguirá lá.

Isso é fantástico se você trabalhar muito e conseguir um emprego depois de 50 dias - muito bem! Se levar 500 dias, isso também é fantástico, e você deve estar tão orgulhoso de si mesmo. Caramba, se demorar cinco anos, tenho certeza que não é o que você queria, mas o resultado final é o mesmo, e isso é tudo que importa.

Preparando-se para se inscrever

Preparando-se para se inscrever

Por último, mas não menos importante, se você está um pouco mais adiantado em sua jornada de aprendizado no iOS e pensando em conseguir seu primeiro emprego inicial, gostaria de mostrar a você uma enorme coleção de recursos que reuni para ajudá-lo.

Eu recomendaria Vídeos com dicas de entrevista do Swift de Sean Allen - ele tem uma lista de reprodução completa para eles, onde você pode trabalhar em discussões individuais, como classes versus estruturas, programação funcional, tratamento de erros e muito mais. Nenhum dos vídeos é particularmente longo, mas todos foram elaborados para fornecer as habilidades de que você precisa para ter um bom desempenho em uma situação de entrevista.

Onde agora?

Ok, então eu examinei as habilidades básicas e de extensão de que você precisa, erros comuns de aprendizado, cursos que você pode fazer, como se conectar com a comunidade iOS e como se preparar para sua entrevista de emprego - isso é muito para cobrir, e espero que tenha sido útil.

Além disso, espero ter demonstrado quanta informação está disponível gratuitamente. 

Sim, a tentação de gastar cem dólares ou mais em um curso é forte, mas relaxe - mexa-se primeiro, encontre um impulso e também encontre alguém que ensine Swift de uma maneira que funcione para você. Quando você estiver em um lugar bom e se sentir pronto, vá em frente e gaste algum dinheiro se quiser.

Muitas felicidades em sua jornada!

Sobre o autor
David Attard
Autor: David AttardSite: https://www.linkedin.com/in/dattard/
David tem trabalhado na ou em torno da indústria online / digital nos últimos 18 anos. Ele tem vasta experiência nas indústrias de software e web design usando WordPress, Joomla e nichos ao seu redor. Como consultor digital, seu foco é ajudar as empresas a obter uma vantagem competitiva usando uma combinação de seu website e plataformas digitais disponíveis hoje.

Mais uma coisa... Você sabia que as pessoas que compartilham coisas úteis como esta postagem também parecem FANTÁSTICAS? ;-)
. deixe um útil comente com suas ideias, depois compartilhe com seu (s) grupo (s) do Facebook, que considerariam isso útil e vamos colher os benefícios juntos. Obrigado por compartilhar e ser legal!

Divulgação: Esta página pode conter links para sites externos de produtos que amamos e recomendamos de todo o coração. Se você comprar produtos que sugerimos, podemos receber uma taxa de referência. Essas taxas não influenciam nossas recomendações e não aceitamos pagamentos por análises positivas.

Autor (es) em destaque em:  Logotipo da revista Inc   Logotipo do Sitepoint   Logotipo do CSS Tricks    logotipo do webdesignerdepot   Logotipo WPMU DEV   e muitos mais ...