Como se tornar um Desenvolvedor iOS
Tags: ios, swift, apple, beginners
Published: 2023-05-15 18:40:58

[](url)  O mercado de tecnologia está em constante crescimento e cada vez mais a demanda por desenvolvedores de aplicativos para dispositivos móveis aumenta. Entre as diversas plataformas disponíveis, o sistema operacional iOS, utilizado nos dispositivos da Apple, é um dos mais populares e que possui grande potencial de mercado. Nesse sentido, ser um desenvolvedor iOS pode ser uma excelente escolha de carreira para quem tem interesse na área de tecnologia. Neste artigo, vamos abordar os principais conhecimentos necessários para se tornar um desenvolvedor iOS, bem como as formas de aprendizado, desenvolvimento de projetos e networking, além de oferecer algumas dicas finais para quem deseja se destacar nessa área.


## Tens o que é necessário? 
  Antes de tudo, para se tornar um desenvolvedor iOS nativo é necessário ter acesso a pelo menos um MacOS. Muito embora existam soluções no mercado que permitem rodar uma aplicação iOS em um Windows ou Linux, acaba sendo muito necessário que se tenha um MacOS por questões de produtividade, fluxo de trabalho e ecossistema. 

  Infelizmente, a gente sabe que isso se torna um grande problema para nós mortais brasileiros, uma vez que um Macbook Air mais básico passa dos R$ 7 mil facilmente. No entanto, para iniciar seu jornada você não precisa de uma máquina extremamente potente e algum MacBook Pro usado de uns anos atrás fará o trabalho com tranquilidade. 

  Se por um lado a necessidade de ter um MacOS é uma barreira que afasta muita gente, por outro pode ser uma grande oportunidade caso você passe por ela pois a proporção de vagas abertas para iOS no mundo e desenvolvedores profissionais é muito alta, o que faz com que as vagas tenham relativamente baixa concorrência se comparadas à outras tecnologias. 

  Como nosso intuito é desenvolver aplicações para iPhone é sempre bom tem um iPhone disponível. Não é um equipamento obrigatório para começar, uma vez que é possível rodar a grande maioria dos apps em simuladores no próprio MacOS. O iPhone só se torna obrigatório caso você vá desenvolver algum aplicativo que precise de Bluetooth ou outro recurso só disponível no dispositivo físico. Mas para começo apenas o Macbook é necessário. 

## Xcode. É de comer? 
  Provavelmente andando por aí procurando algum conteúdo relacionado você já deve ter ouvido essas três palavras mágicas. E caso você siga na carreira, irá ouvir muito mais. 

  **Xcode** é a ferramenta principal utilizada por um desenvolvedor iOS. É lá que toda mágica acontece. O Xcode nada mais é do que chamamos de IDE, que é literalmente um ambiente integrado de desenvolvimento. Ou seja, todo o código e trabalho necessário para fazer um app iOS ganhar vida é feito nele. Será dentro do Xcode que você digitará todo o seu código. Código esse que será em Swift ou Objective-C. Então, tendo seu MacOS em mãos, recomendo baixar a versão mais atual do Xcode na AppStore ou através deste link aqui: https://developer.apple.com/xcode/resources/

## Swift e Objetive-C

  **Swift e Objective-C** são o que chamamos de linguagem de programação. Ah, as famosas e famigeradas linguagens. Mesmo que não seja da área, você já ouviu alguns doidos por aí se ofendendo porque um gostava de Java e outro não, um adora Javascript e outro não. Pois é, agora chegou a sua vez.

  Para iOS atualmente temos duas linguagens de programação, que é literalmente o "idioma" que você usará para escrever seus códigos. Essas linguagens são Swift e Objective-C. E você pode estar se perguntando: "Por que tem duas?". Bem, a versão resumida da história é que todo mundo odiava Objective-C, até o Steve Jobs. Objective-C foi a primeira linguagem utilizada pela Apple desde 1990 e lá vai bolinha e foi a única até 2014. No entanto, por diversos poréns, uma delas a dificuldade de aprender e trabalhar com Objective-C, a Apple criou o Swift, uma linguagem moderna, simples e intuitiva para melhorar a nossa vida. Para iniciar sua jornada nesse mundo, por agora foque apenas no Swift caso não queria perder toda sua sanidade. O Objective-C pode esperar até que você esteja  ~~doido(a) de vez~~ mais calejado(a). 

## Paguei R$30 mil num Mac, baixe o Xcode. E agora? 
  Bem, o próximo passo para se tornar um desenvolvedor iOS é obviamente começar a aprender o ofício, ou seja, aprender a programar caso você ainda não saiba. Muito embora seja possível aprender a programar em qualquer linguagem de programação(Javascript, Java, C/C++, C#, Python, etc...), não faz mal nenhum você já ir unindo o útil ao agradável e aprender a programar com Swift. 

  Pensando nisso, a própria Apple desenvolveu um pequeno curso introdutório de programação numa ferramenta chamada Swift Playgrounds(https://www.apple.com/br/swift/playgrounds/). Disponível em português, nesse curso são apresentados os principais conceitos de programação de um jeito bem lúdico e visual, além de ser possível utilizar a ferramenta tanto no Mac quanto num iPad ~~caso você tenha vendido toda sua família pro Duolingo e tenha dinheiro pra comprar tudo da Apple~~.

  Caso você prefira, existem outras formas de aprender programação também de um jeito lúdico. As minhas recomendações pessoais são: **Khan Academy e Freecodecamp**. No entanto, é importante frisar que essas ferramentas ensinam os fundamentos da programação que podem ser aplicados a qualquer linguagem de programação. Então, para evitar retrabalho, eu indico fortemente que você já comece a aprender programação com Swift. No final deste post irei incluir algumas recomendações de livros e cursos que você pode seguir.

## Sei fazer o If e um for em Swift. Já posso começar a fazer meus apps? 
  O intuito de você ter vindo até aqui é de justamente aprender a fazer aplicações iOS. E até agora no máximo o que você sabe fazer é printar uns textos e é isso. Bem, para começar para valer a trazer aplicativos iOS à vida, você vai precisar aprender **UIKit ou SwiftUI**. 

  UIKit ou SwiftUI são bibliotecas/frameworks gráficos desenvolvidas pela própria Apple para facilitar seu trabalho e te dar uma base muito sólida para fazer os botões, imagens, textos, campos e etc aparecerem na tela. Para quem vem de outros contextos de programação, imagine que UIKit e SwiftUI são como o React.js ou Flutter do iOS. Então, é estritamente necessário aprender eles. Qual dos dois você deve aprender? Bem, a história aqui é muito parecida com a de mais acima do Swift vs Objective-C. 

  De forma resumida, UIKit é o framework que está por aí desde 2007, quando surgiu o iOS. Todas as aplicações desenvolvidas até 2019 eram desenvolvidas utilizando ele(era a única forma) e até hoje, em 2023, boa parte dos apps ainda são construídos utilizando UIKit devido ao sua estabilidade, tempo de uso, costume dos devs com ele. No entanto, nem tudo é mil maravilhas. UIKit é um framework antigo, que utiliza de um paradigma mais antigo e tem alguns "problemas" que pode deixar seu código um pouco bagunçado ou difícil de entender.

  Pensando em resolver esses problemas, a Apple em 2019 lançou o SwiftUI, uma nova forma de desenvolver aplicações para todo o ecossistema(MacOS, iPadOS, iOS, WatchOS) com apenas uma base de código. Além disso, é uma forma mais intuitiva e natural de escrever as interfaces, o que facilita a manutenção do código. Obviamente, aqui a gente também tem alguns problemas. Por ser um framework novo, sem muito tempo de mercado, ele é um tanto quanto instável, podendo conter alguns bugs ou até mesmo faltar algumas funcionalidades que estão presenter no UIKit a muito tempo. Além disso, existem poucos desenvolvedores com experiência com o SwiftUI, o que diminui o atrativo para a adoção imediata desse framework. 

  Levando em consideração tudo isso, eu super indico que você comece sua jornada utilizando o **UIKit**. Muito embora o SwiftUI seja o futuro nas palavras da própria Apple, o UIKit ainda é o presente e vai ser por algum tempo. Existe uma imensa quantidade de material com o UIKit, provavelmente bem mais que do SwiftUI, e mais perguntas no StackOverflow foram feitas ~~para que você repita elas~~.

## Outras coisas importantes

## UX

  Um desenvolvedor(a) de aplicação iOS nada mais que é um desenvolvedor front-end para o ecossistema da Apple. Logo, nosso principal trabalho é desenvolver aplicações com interfaces intuitivas que ajudam o usuário a realizar sua tarefa da maneira mais eficiente o possível. 

  Com isso, é importante que você tenha pelo menos uma noção de Experiência do Usuário aka User Experience aka UX. Para quem não sabe, UX é uma área de estudos e do desenvolvimento de software que tem como principal objetivo projetar como será toda jornada do usuário num sistema ou serviço, de forma bem resumida. 

  Geralmente, o UX(ou UI Design) será o responsável por desenhar a interface que você, dev iOS, irá construir para aplicação. Dessa forma, é importante que você tenha, pelo menos, uma noção sobre as tendências e boas práticas de design de interface e UX para que você possa conversar de uma maneira mais direta com seu colega de trabalho. Não precisa de forma alguma que você seja um PhD no assunto, mas também é muito importante que você não seja uma ameba quando o assunto é UX. 

  Falando em boas práticas, a própria Apple desenvolveu um guia de boas práticas e padrões que deverá ser seguido nos apps. A chamada HIG ou Human Interface Guideline(https://developer.apple.com/design/human-interface-guidelines/) define práticas que devem ser seguidas quando você estiver criando seus apps. Não precisa obviamente seguir essas práticas à risca, mas é sempre bom ter uma noção para não fazer algo muito absurdo que ninguém vai entender. 

## Programação Orientada a Objetos ou POO
  Muito embora não seja crucial, é importante que você faça uma ideia do que diachos é programação orientada a objetos, afinal você vai precisar lidar com ela em algum momento, já que as ferramentas, bibliotecas e frameworks da Apple, principalmente os mais antigos, são baseado nela. É um assunto relativamente avançado e, sinceramente, tem muito programador com anos e anos de mercado que não tem entende e não sabe muito bem trabalhar com ela. Mas é importantíssimo que você saiba o básico do básico para trabalhar com iOS. 

## Inglês

  Uma coisa crucial para qualquer desenvolvedor ou pessoa que trabalha na área de TI é o inglês. Infelizmente, boa parte do conteúdo sobre programação e tecnologia é em inglês. Documentação, fóruns, livros, cursos, vídeos e etc. Muito embora exista tradução de muita coisa, as vezes ela é um pouco pobre e deixa a desejar. Então é muito necessário que você aprenda pelo menos um inglês básico/intermediário para evoluir legal na carreia. Além disso, saber inglês vai abrir fronteiras na sua carreira podendo lhe render alguns trabalhos na gringa. 

## É só isso?

  Não, na verdade isso aqui é só o início de uma jornada pro resto da sua vida (ou pelo menos enquanto o ChatGPT não roubar seu emprego). Ser um desenvolvedor de qualquer stack significa que você vai passar o resto da sua vida estudando pois todo santo dia surge coisas novas para se aprender e trabalhar. Então, sim, você vai ter que estudar muita coisa e nunca vai estar com o sentimento que já sabe tudo.

  Mas não querendo assustar ninguém, desenvolvimento no geral e, principalmente, iOS é uma carreira muito satisfatória que recompensa muito seu esforço. Então é bem provável que você até passe a gostar de estudar pois verá que vale muito a pena com o tempo. 

Caso você goste de uma estrutura de aprendizado bem definida, recomendo também dar uma olhada aqui: 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6318bahhijiper3f1aax.png)

  A minha ideia aqui foi só dar um geralzão do que se precisa para começar na área. Irei voltar em breve com mais posts detalhando um pouco mais alguns assuntos que podem ter ajudar nesse início. 


## Links úteis

* Fundamentos da programação:
  * https://www.khanacademy.org/computing/computer-programming
  * https://www.freecodecamp.org/
* Programação com Swift
    * https://www.apple.com/swift/playgrounds/
    * https://books.apple.com/gb/book/the-swift-programming-language-swift-5-7/id881256329
    * https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/

* Livro
   * [Swift: A Step-by-Step Guide for Absolute Beginners ](https://www.amazon.com/gp/product/1698927835/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1698927835&linkCode=as2&tag=booksoncode-20&linkId=db823efe895a9fa06f7a74a4bb372391)
 
* Cursos
    * [Swift Cloudy: Lógica de Programação com Swift](https://www.udemy.com/course/swift-cloudy-logica-de-programacao-com-swift/): 
    * [Desenvolvimento IOS 12 - Aprenda a criar 18 Apps](https://www.udemy.com/course/curso-desenvolvimento-ios/)