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

Neste artigo, veremos o que acreditamos ser necessário para se tornar um desenvolvedor iOS nos próximos meses. 

Estamos direcionando este guia diretamente para dois grupos de pessoas, iniciantes absolutos em Swift (Swift é a linguagem usada para codificar aplicativos iOS) – pessoas que nunca construíram nada para iOS antes – e os chamados falsos iniciantes – pessoas que têm tentou aprender Swift antes, mas nunca alcançou seu objetivo de conseguir um emprego 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 o que discutiremos será totalmente gratuito, então você não terá que pagar nada 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. 

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. Preparando-se para se candidatar ao primeiro emprego.

As habilidades fundamentais necessárias para se tornar um desenvolvedor iOSHabilidades 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? 

Existem cinco habilidades essenciais no total:

  1. Programação rápida
  2. SwiftUI 
  3. Rede de Dados
  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.

Vamos dividir os cinco itens em partes menores.

1. Aprendendo 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 antigos comuns em linguagens mais antigas, como C++ e Java. Isso também significa que ele possui uma série de recursos avançados dos quais você pode aproveitar.

E tudo bem. Muitas partes do Swift são relativamente simples, enquanto outras levarão mais tempo para você entender completamente, a experiência e a prática levam à perfeição.

2. SwiftUI

A segunda habilidade principal necessária é SwiftUI, que é uma 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! 

SwiftUI é uma estrutura bastante jovem, apareceu pela primeira vez em 2014 e foi desenvolvida para substituir o arcaico Objective C.

Apesar de sua pouca idade, a comunidade iOS o adotou de todo coração porque é muito fácil de usar.

Apple também possui uma estrutura mais antiga para criar aplicativos iOS chamada UIKit. Se você perguntar a várias pessoas se deve aprender SwiftUI ou UIKit primeiro, obterá uma variedade de respostas. 

Achamos que você deve aprender o SwiftUI e aqui está o motivo pelo qual você deve priorizar o SwiftUI como uma habilidade principal.

O SwiftUI é significativamente mais fácil do que o UIKit e – 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 impulso porque pode construir as coisas mais rapidamente, ver os resultados mais rapidamente e iterar esses resultados com mais agilidade, o que é extremamente motivador durante o aprendizado.

Criado para Swift

Criado para Swift

O SwiftUI foi criado para o Swift, utilizando os recursos da linguagem para auxiliar na prevenção de problemas e na obtenção do máximo desempenho. 

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 em seu aplicativo que os use - você não precisa escrever código para manter tudo sincronizado, que normalmente é bastante 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 que recursos como o Digital Crown são exclusivos de um único dispositivo, o Apple Assista, 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 alguns anos atrás, provavelmente precisaria conhecer o UIKit, mas o fato de estar lendo isso significa que você está muito mais adiantado no processo. 

Enquanto o UIKit costumava ser mais popular, o SwiftUI agora é a estrutura de interface do usuário dominante.

As maiores empresas do mundo, incluindo Apple eles próprios agora estão avançando com o SwiftUI.

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

Rede e manipulação de dados

A terceira e a quarta habilidades que mencionamos foram redes e manipulação de dados. Quando comparados ao Swift e ao SwiftUI, eles são bastante simples, ou pelo menos simples no nível necessário para obter um emprego de desenvolvedor iOS júnior.

Networking é a prática de recuperar dados da internet ou enviar dados de um dispositivo local para um servidor remoto. Em um aplicativo móvel, é claro que essa é uma habilidade fundamental.

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 recomendamos 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 variedade de aplicativos que você poderá criar se expandirá ainda mais.

As habilidades são as seguintes:

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

Como antes, gostaríamos de examinar cada um deles com mais detalhes para que você entenda por que os consideramos importantes – e por que os consideramos 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 14 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 consideramos 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ê precisa realmente querer aprender, ou ficará confuso , entediado, zangado ou potencialmente todos 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. 

Mencionamos networking e trabalho com dados na seção de habilidades básicas, e é verdade. Com essas habilidades instaladas, 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.

Como o UIKit, o Core Data é extremamente popular – centenas de milhares de aplicativos foram criados 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. Muitos aplicativos grandes não têm nenhum teste e, tragicamente, vários desenvolvedores seniores de iOS quase se orgulham 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. 

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, se você deseja ser um ótimo desenvolvedor geral, precisa aprender a escrever ótimos testes. Mas somente depois de dominar os fundamentos do desenvolvimento de aplicativos – depois de ter algum sucesso, sentir a adrenalina 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 gostaríamos de discutir é a arquitetura de software, que é realmente sobre como escrevemos o código. 

Você vai escrever um código terrível quando estiver começando. 

Tudo bem porque é assim que você aprende. Você não começa bem – você fica bom sendo ruim por um longo tempo e aprendendo maneiras melhores de fazer as coisas com experiência e exposição.

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 discutimos até agora. Para os outros, como SwiftUI, você pode raciocinar: "Bem, eu sei como fazer X, Y e Z, então estou confiante de que sou um bom desenvolvedor SwiftUI".

 A arquitetura de software é um tópico muito amplo e geralmente não há uma maneira "certa" óbvia de resolver um problema; portanto, a melhor referência para isso é esta: você olha para trás em seu código de seis meses atrás, um ano atrás e assim por diante .

Escrever um código ruim é aceitável, desde que o aproxime de escrever um código melhor. 

Você certamente vai coçar a cabeça em alguns lugares quando olhar para o código que escreveu há cinco anos, porque saberá mais agora do que sabia antes – e é assim que deve ser.

multithreading

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

Multithreading pode ser uma verdadeira dor porque é difícil para o nosso cérebro entender. Quando seu código faz uma coisa de cada vez, podemos pensar linearmente, mas quando duas ou três coisas acontecem ao mesmo tempo, potencialmente sobrepostas, isso pode realmente atrapalhar seu pensamento.

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.

“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! ”

David Smith - Apple Equipe SwiftUI

Erros comuns que novos desenvolvedores iOS cometem

Erros comuns que novos desenvolvedores iOS cometem

Neste ponto, listamos todas as habilidades básicas e de extensão necessárias para trabalhar como desenvolvedor iOS em tempo integral. 

Também queremos discutir alguns dos erros mais comuns que as pessoas cometem durante o aprendizado, porque eu os vejo o tempo todo e sei como eles atrasam as pessoas.

Existem sete grandes problemas que as pessoas enfrentam. 

  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. 

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 é a "síndrome do objeto brilhante", na qual eles encontram uma série de tutoriais que funcionam bem para eles e começam a progredir, mas depois de uma ou duas semanas, eles percebem outra série de tutoriais que desejam seguir e abandonam o barco para isso em vez disso. 

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.

Esteja ciente da síndrome do objeto brilhante - quando você encontrar um problema, tente pedir ajuda a outra pessoa e perseverar em vez de trocar.

Não vá sozinho

Não vá sozinho

Falando em perguntar a outra pessoa, o terceiro problema que vemos as pessoas se deparam é quando elas se tornam lobos solitários com seu aprendizado - elas acreditam que são totalmente capazes de aprender a criar aplicativos iOS usando o Swift sozinhas e não requerem a 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 do "lobo solitário", nós o encorajamos a mudar seus modos. 

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 fantástica comunidade de alunos que o apoiará e o encorajará, mas também será inspirado pelo trabalho deles e, por sua vez, os inspirará com o seu. É completamente transformador.

Não use versões beta

A quarta grande questão é quando as pessoas insistem em usar versões beta de Appleferramentas de desenvolvimento de. 

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 vários 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.

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

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.

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

Quando o Apple anunciou pela primeira vez o SDK do iPhone, muitas pessoas ficaram horrorizadas com o Objective-C porque era diferente de tudo o que 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 as pessoas cometem ao aprender Swift é descartar outros idiomas 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. 

Portanto, as pessoas da comunidade afirmam que o SwiftUI é livre de JavaScript ou algo semelhante – nada poderia estar mais longe da verdade.

Recursos e cursos de desenvolvimento iOS

Recursos e cursos de desenvolvimento iOS

Agora, a parte que mais interessa às pessoas: quais são os recursos reais que você deve usar para aprender Swift, SwiftUI e muito mais – a fim de atingir seu objetivo de se tornar um desenvolvedor iOS?

Existem muitos por aí, e a comunidade Swift tem um grupo tão diversificado de pessoas compartilhando seus conhecimentos. 

No entanto, neste artigo, vamos nos concentrar em recursos gratuitos – lugares onde você pode aprender a criar 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".

Portanto, aqui estamos apenas listando recursos gratuitos para que você 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á de 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.

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

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:

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

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

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

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

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

Antonie 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 Desenvolvedor iOS semanalmente 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 Happy Hour para desenvolvedores iOS é 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.

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

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