Decifrando a entrevista do iOS
O iOS é um pequeno nicho no desenvolvimento de software, e o escopo de conhecimento que você precisa cobrir é bastante estável ao longo dos anos.
A preparação para uma entrevista no iOS não é muito diferente de uma entrevista de front-end . O desenvolvimento do lado do cliente é uma habilidade que podemos mostrar facilmente, portanto, as empresas geralmente esperam um portfólio de projetos nos quais você trabalhou.
A concorrência em empresas de prestígio é acirrada, com milhares de inscrições dos principais engenheiros de todo o mundo. Independente do seu nível técnico e do cargo que está se candidatando, aqui vão 5 fatores que vão ter grande influência na sua forma de procurar um emprego:
- Proficiência técnica — resolução de problemas, desenvolvimento ios.
- Anos de experiência — Quanto mais, melhor, de 3 a 5 é o preferido.
- Projetos pessoais — aplicativos da App Store, repositórios de código aberto.
- Ex-empregadores — Quanto mais prestígio, melhor.
- Habilidades de entrevista — Pensar em voz alta, contar histórias, fazer perguntas.
- Entrevista por telefone com gerente de contratação (0–1)
- Entrevista por telefone com membros da equipe (1–3)
- Fazer tarefa para casa (0–1)
- Entrevista presencial (1)
- Negociação de oferta (0-n)
Proficiência Técnica
Quer você ame ou odeie estruturas de dados e algoritmos, você precisa de um tempo considerável para praticar. A maioria das empresas está usando e não vai mudar tão cedo.
O iOS é um pequeno nicho no desenvolvimento de software, e o escopo de conhecimento que você precisa cobrir é bastante estável ao longo dos anos. Em 2022, espera-se que você tenha conhecimento decente nos seguintes tópicos:
Conhecimento básico
- Swift (protocolos, genéricos)
- Padrões (MVC, MVVM, VIPER)
- Pacotes (SwiftPM, CocoaPods, Carthage)
- Simultaneidade (GCD, Async/Await, Tarefas, Atores)
- Programação Reativa (Combine, RxSwift)
- Armazenamento (Aplicativo, Cena, CoreData, Realm)
- Rede (URLSession, Alamofire)
- Ferramentas (Xcode, TestFlight, AppStore)
- Diretrizes (API, interface, compra no aplicativo)
- Fundação, SwiftUI, UIKit
- XCTests, Combine, CoreData
- CloudKit, StoreKit, PhotoKit
- CoreGraphics, CoreAnimation
- Alamofire — Rede HTTP elegante
- Kingfisher — Baixe e armazene imagens em cache
- SnapKit — DSL de layout automático para iOS e OS X
- RxSwift — Programação reativa
- Domínio — banco de dados móvel
- Lottie — animações vetoriais After Effects
- SkeletonView — Exibições de carregamento sofisticadas
- Herói — Transição elegante
Tarefa para levar para casa
Você deve gastar tempo trabalhando em seu próprio aplicativo para colocar na App Store. Não precisa ser muito sofisticado: apenas algo que funcione e tenha o suficiente para mostrar que você conhece o iOS. Um aplicativo bom o suficiente e você nunca mais terá esse tipo de desafio de merda.
Alguns dos exemplos mais comuns de tarefas a serem executadas são:
- Busque algum JSON e exiba os resultados.
- Adicione um novo recurso a uma base de código existente.
- Encontre um bug em um projeto existente.
- Implemente um recurso específico e principal da empresa.
Para obter sucesso em seu projeto para levar para casa, certifique-se de que:
- Deve ser fácil de executar, construir e perfilar.
- Deve ser bem testado e documentado de acordo.
- Deve seguir um padrão de design claro (MVC, MVVM).
- Evite usar bibliotecas de terceiros a todo custo.
- A base de código deve estar limpa, sem erros, sem avisos.
- Nunca exceda o limite de tempo atribuído pelo entrevistador.
Recursos de aprendizagem
- Sites de tutoriais: swiftbysundell.com , raywenderlich.com , nshipster.com , objc.io , byby.dev
- Trabalhos remotos: iOS Dev Jobs , RemoteOK , Remotive , Remote , Trabalhamos remotamente
- Desafios práticos: APIs públicas , inspiração de interface do usuário de design móvel
- Perguntas da entrevista: Swift , SwiftUI





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)