quero ser dev iOS: por onde eu começo?
este artigo é para você que tomou a decisão de ser um dev mobile e escolheu o mundo iOS para chamar de seu. apresento algumas dicas de elementos que eu, particularmente, acredito que são importantes para quem quer ingressar nessa área e ainda não sabe por onde deve começar os seus estudos.
comece pelo swift
Antes de qualquer coisa, você PRECISA compreender como a linguagem de programação base para o desenvolvimento iOS funciona.
entenda como o swift lida com variáveis, laços de repetição, operadores, como é a manipulação das estruturas de dados, etc.
e então, faça muitos exercícios para colocar tudo o que aprendeu em prática, afinal, você só vai realmente aprender fazendo. para começar, indico o 100 days of Swift, que se trata de uma série de exercícios que abrangem vários conceitos da linguagem, vale à pena dar uma olhadinha :)
storyboard, view code, swiftUI?
atualmente, para criar a interface de usuário de um app para iOS existem 2 formas: através do UIKit ou do swiftUI. O UIKit é a forma que está a mais tempo em uso e permite que sejam criados apps para iOS e tvOS. Já o swiftUI, lançado em 2019, permite a criação de apps para iOS, tvOS, macOS e watchOS.
e aí, possivelmente, você deve ter se questionado: estudar UIKit ou swiftUI? a resposta é: depende.
apesar do swiftUI estar se desenvolvendo muito rápido, a grande maioria dos apps iOS no mercado hoje usam UIKit. então, se o seu plano é começar logo a trabalhar na área, as chances de você entrar em uma empresa e ter que dar manutenção em um app com UIKit são muito altas. além disso, levando em conta que o swiftUI é para dispositivos com iOS 13+, e o cenário dos dispositivos Apple no Brasil (produto muito caro = muitas pessoas com dispositivos antigos), é muito provável que demore um pouco mais para as empresas deixarem o swiftUI como principal.
por isso, sugiro começar os estudos pelo UIKit e depois, quando você se sentir confortável, estudar swiftUI.
beleza, vou começar os estudos pelo UIKit. mas storyboard ou view code?
o UIKit permite que os layouts sejam criados usando storyboards ou view code. ao criar telas usando storyboard, todas elas ficarão concentradas em um arquivo onde será possível configurar a UI de cada tela e a navegação entre elas. já o view code é o ato de criar as views, a configuração do layout e suas constraints, programaticamente. enquanto que usando storyboard você já tem em tempo real uma ideia de como o layout ficará, usando view code é necessário rodar a aplicação para poder ver o resultado.
então, respondendo a pergunta acima, eu recomendo você ter noção de como funciona a criação do layout com storyboard, para o caso de ter que dar manutenção em um código que utilize isso. porém, se você for criar algo do zero, por favor, use view code.
o view code tem como benefícios a facilidade de manutenção, controle da inicialização das views, componentização, dentre muitos outros. no começo, você sentirá que essa abordagem parece ser mais demorada, mas com o tempo, isso vai mudar. você vai pegar o jeito e vai dar tudo certo. mais uma vez a dica é: pratique! você só vai aprender, realmente, fazendo.
links que podem ajudar
praticar swift
- 100 days of swift
- se você vai começar por swift, mas ainda não tem um mac, indico a IDE online replit, é muito completa e é possível praticar bem a linguagem.
desenvolvimento iOS, em geral
- primeiramente, o próprio site da Apple. engloba swiftUI e UIKit.
- existem vários sites ótimos, mas destaco o hacking with swift e o raywenderlich.com, ambos têm muito conteúdo de qualidade.
- se você curte vídeos, recomendo o canal do sean allen.
- especificamente para swiftUI, além do site da Apple, recomendo o curso da stanford, é bem completo e a didática é muito boa.
- em relação à comunidade, um ótimo lugar para se manter atualizado e tirar dúvidas é o iOS dev BR, no slack. o pessoal sempre está disposto a ajudar.
- por fim, indico o build failed podcast, é bem legal e traz dicas de como desenvolver a carreira em iOS.
espero que, de alguma forma, esse conteúdo tenha te ajudado. se você é um dev mais experiente e quer compartilhar algumas dicas para quem está começando, convido você a comentar esse post :)
uma recomendação final: não pule etapas! fazer isso só irá te trazer frustração.
um abraço e sucesso em sua jornada!
[agradecimento especial ao thiago moraes e felipe koga pela revisão]