Guia de Preparação para Entrevista de Desenvolvedor Mobile
O BLS projeta que funções de desenvolvedor de software — a categoria que engloba desenvolvedores mobile — crescerão 25% de 2022 a 2032, superando amplamente a média para todas as ocupações [2]. Este guia prepara você para as perguntas específicas, cenários de codificação ao vivo e desafios de design de sistema que enfrentará.
Principais Conclusões
- Perguntas comportamentais investigam tradeoffs específicos de mobile: triagem de crashes em produção, decisões de migração cross-platform e recuperações de rejeições do App Store/Play Store.
- Rodadas técnicas testam profundidade de plataforma e fluência arquitetural: lifecycle de views, injeção de dependência, detecção de memory leaks e sincronização offline-first.
- Codificação ao vivo frequentemente envolve renderização de UI ou fluxo assíncrono de dados: listas paginadas de endpoint REST com estados de erro [13].
- Design de sistema foca em restrições mobile: consumo de bateria, conectividade intermitente, orçamento de tamanho binário.
- Perguntas que você faz revelam senioridade: pipeline CI/CD, crash-free rate targets, feature flags.
Perguntas Comportamentais
1. "Conte-me sobre uma vez em que crashes em produção aumentaram após um release."
Framework STAR: Descreva a queda no crash-free rate, a decisão hotfix vs rollback, a análise do stack trace e a recuperação.
2. "Descreva uma situação em que precisou recusar um design que não era viável em mobile."
Mostre colaboração com designers respeitando convenções de plataforma — Material Design 3, Human Interface Guidelines.
3. "Conte sobre uma vez em que reduziu o tamanho binário ou tempo de startup."
Demonstre instintos de otimização baseados em profiling com ferramentas como Xcode Instruments, Android Studio Profiler.
4. "Descreva a migração de um codebase legado para nova arquitetura."
Estratégia incremental — strangler fig pattern aplicado a mobile.
5. "Conte sobre uma rejeição difícil do App Store ou Play Store."
Familiaridade com guidelines de review de plataforma e o ecossistema de distribuição.
6. "Como lidou com prioridades conflitantes entre paridade de features iOS e Android?"
Coordenação cross-platform e decisões pragmáticas específicas de plataforma.
Perguntas Técnicas
1. "Explique o lifecycle Activity/Fragment no Android — ou UIViewController no iOS — e onde faria uma requisição de rede."
Requisições de rede pertencem ao ViewModel via viewModelScope.launch, não em onResume(). No iOS, distinga viewDidLoad de viewWillAppear [7].
2. "Como previne memory leaks numa aplicação mobile?"
Padrões específicos: referência de Context em singleton Android, strong reference cycles em closures Swift ([weak self]), BroadcastReceivers não registrados [4].
3. "Como implementaria sincronização de dados offline-first?"
Room/Core Data/SwiftData como fonte de verdade, padrão Repository, WorkManager/BGAppRefreshTask, resolução de conflitos [7].
4. "Diferença entre StateFlow e SharedFlow em Kotlin — ou @State, @Binding e @ObservedObject em SwiftUI?"
Fluência em gerenciamento reativo de estado [4].
5. "Como arquitetaria uma feature com fluxo de dados unidirecional?"
Implementação MVI ou TCA com exemplo concreto [4].
6. "Como configurar pipeline CI/CD para app mobile?"
Fastlane, GitHub Actions, gerenciamento de code signing, testes automatizados de screenshot [7].
7. "Estratégias para reduzir tempo de startup do app?"
Otimização baseada em profiling: lazy init, defer SDK init, baseline profiles [4].
Perguntas Situacionais
1. "Taxa ANR do app Android ultrapassou 0,47% no Play Console. Como investiga?"
Comece pelo relatório de clusters ANR. Verifique operações na main thread. Use StrictMode, migre chamadas síncronas para Dispatchers.IO.
2. "PM pede feature que requer rastreamento de localização em background."
Políticas de privacidade de plataforma. Diferenças de permissões, requisitos do App Store, impacto na bateria. Alternativas como geofencing.
3. "Feature precisa funcionar identicamente em iOS e Android. PM sugere framework cross-platform."
Avalie critérios concretos: acesso a APIs de plataforma, distribuição de skills do time. Compare KMP, Flutter, React Native.
4. "Crash-free rate cai após atualização de OS."
Triagem: Crashlytics, filtrar por versão OS, reproduzir, hotfix, adicionar novo OS ao CI.
O Que Entrevistadores Procuram
Profundidade de plataforma: Explicar por que Compose usa slot-based API sinaliza compreensão profunda [7].
Instintos de produção: Error handling, instrumentação de analytics, acessibilidade (contentDescription, accessibilityLabel) [7].
Raciocínio arquitetural: Justificar escolhas com restrições, não buzzwords.
Red flags: Não explicar arquitetura do próprio projeto, sem consciência de memory management, dispensar testes [13].
Método STAR com Métricas Mobile
Exemplo 1: Melhorando Performance
Situação: Cold start de 4,2s no p95. Tarefa: Reduzir abaixo de 2,5s. Ação: Profiling com System Trace, lazy init com App Startup library. Resultado: p95 caiu para 1,8s, duração de sessão aumentou 9%.
Exemplo 2: Conflito de Dependências
Situação: Conflito transitivo de dependência no Podfile. Tarefa: Resolver em 24h. Ação: Auditei uso da API, forkei podspec. Resultado: Release no prazo, PR upstream mergeado em uma semana.
Exemplo 3: Remediação de Acessibilidade
Situação: 47 violações de acessibilidade. Tarefa: Corrigir 22 P0 em 3 semanas. Ação: Criei utility semantics{} com lint rule, atualizei design tokens. Resultado: Taxa de conclusão TalkBack de 34% para 91%.
Perguntas para o Entrevistador
- "Qual é o target de crash-free rate?"
- "Como gerenciam code signing e provisioning profiles?"
- "Qual a infraestrutura de feature flags?"
- "Qual é a matriz de testes de dispositivos/versões OS?"
- "Como dividem trabalho entre iOS e Android?"
- "Qual a versão mínima de OS suportada?"
- "Usam código compartilhado entre plataformas?"
Principais Conclusões
Entrevistas de desenvolvedor mobile avaliam simultaneamente: profundidade técnica de plataforma, instintos de engenharia de produção e capacidade de raciocinar sobre restrições mobile (bateria, conectividade, tamanho binário, políticas de review).
O Resume Geni pode ajudar a estruturar sua experiência mobile com as palavras-chave técnicas certas.
FAQ
Quanto tempo de preparação?
2-3 semanas: 40% prática de código, 30% system design, 30% histórias STAR [12][13].
Que linguagens focar?
iOS: Swift. Android: Kotlin. Cross-platform: Dart (Flutter), TypeScript (React Native) [2][5].
Entrevistas incluem system design?
Sim — "Design offline messaging" ou "Design social feed com infinite scroll" [13].
Que certificações ajudam?
Google Associate Android Developer, Apple Develop in Swift, Flutter Certification [8][3].
Quão importante ter apps publicados?
É o sinal mais forte. Provam o ciclo completo de desenvolvimento [6][13].
Preparação diferente para startups vs big tech?
Significativamente. Big tech: LeetCode + system design. Startups: take-home + amplitude [5][6].
Como demonstrar skills sem experiência profissional?
Construa e publique 2-3 apps focados com código limpo no GitHub [2][11].