Decifrando a entrevista do iOS

Apr 02 2023
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.
Foto por JESHOOTS.COM no Unsplash

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:

  1. Proficiência técnica — resolução de problemas, desenvolvimento ios.
  2. Anos de experiência — Quanto mais, melhor, de 3 a 5 é o preferido.
  3. Projetos pessoais — aplicativos da App Store, repositórios de código aberto.
  4. Ex-empregadores — Quanto mais prestígio, melhor.
  5. Habilidades de entrevista — Pensar em voz alta, contar histórias, fazer perguntas.
  1. Entrevista por telefone com gerente de contratação (0–1)
  2. Entrevista por telefone com membros da equipe (1–3)
  3. Fazer tarefa para casa (0–1)
  4. Entrevista presencial (1)
  5. 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