Entrevista Técnica é um processo de avaliação das habilidades do desenvolvedor por meio de uma série de entrevistas e tarefas práticas. No desenvolvimento mobile, inclui a verificação de conhecimento da plataforma (Android SDK, UIKit, SwiftUI), algoritmos e estruturas de dados, padrões arquiteturais (MVVM, Clean Architecture, MVI) e design de sistemas de aplicativos mobile. Grandes empresas realizam de 3 a 5 rodadas, com tempo médio de contratação de 4 a 6 semanas. De acordo com o LinkedIn Talent Report 2025, a demanda por engenheiros iOS e Android cresceu 34% em dois anos.
Principais pontos
Entrevista técnica é um processo estruturado de avaliação de competências profissionais, incluindo a verificação de hard skills (conhecimento técnico) e soft skills (comunicação, trabalho em equipe). O ciclo padrão de entrevista para um desenvolvedor mobile tem de 3 a 5 rodadas com duração total de 4 a 6 horas. A porcentagem de aprovação em relação ao número de candidaturas iniciais é de 2 a 5% em grandes empresas de tecnologia.
O processo de contratação em desenvolvimento mobile difere do desenvolvimento web: são adicionadas perguntas sobre especificidades da plataforma — ciclo de vida de Activity/Fragment, ARC e gerenciamento de memória em Swift, modelos de threading (Main Thread, Dispatch Queue, Coroutines), requisições de rede e cache de dados. Desenvolvedor Android deve conhecer Jetpack Compose, Room, WorkManager, Dagger/Hilt. Desenvolvedor iOS — SwiftUI, Core Data, Combine, URLSession. A diferença nos requisitos cresce com a experiência: para posições Senior, adiciona-se design de sistemas e arquitetura completa do aplicativo.
A estrutura da entrevista depende do nível. Para posições Junior, conhecimento básico da linguagem e plataforma é suficiente (1-2 rodadas). Desenvolvedor Middle passa por 2-3 rodadas com bloco de algoritmos. Entrevista Senior inclui 4-5 rodadas: algoritmos, arquitetura de aplicativo mobile, design de sistemas, entrevista comportamental e entrevista final com VPE (Vice President of Engineering) ou CTO.
Triagem de RH — primeira etapa com duração de 20 a 30 minutos. O recrutador verifica a compatibilidade da experiência com os requisitos da vaga, discute condições de trabalho, expectativas salariais e motivação do candidato. É importante formular claramente sua experiência: projetos, stack tecnológico, conquistas em métricas (redução de tempo de carregamento, diminuição de taxa de crash, aceleração de build). A triagem de RH não verifica conhecimento técnico, mas elimina até 40% dos candidatos por incompatibilidade com requisitos formais.
Após a triagem, vem a entrevista de algoritmos — etapa crucial para a maioria das empresas. Duração — 45 a 90 minutos. O candidato recebe 1 a 2 problemas de algoritmos e estruturas de dados. A solução é escrita em um quadro online (Codility, HackerRank, CoderPad) ou em papel. Não apenas a correção, mas também a velocidade de raciocínio, a capacidade de fazer perguntas esclarecedoras e otimizar a solução são avaliadas. Segundo o interviewing.io (2025), 73% dos candidatos são reprovados justamente na etapa de algoritmos.
Rodada de arquitetura avalia a capacidade de projetar aplicativos mobile. O candidato é convidado a projetar um aplicativo (lista de tarefas, mensageiro, agregador de notícias, serviço de streaming). São avaliados a escolha do padrão arquitetural (MVP, MVVM, MVI, VIPER), organização de camadas (Presentation, Domain, Data), trabalho com DI (Dagger, Hilt, Swinject) e navegação. Para Android — conhecimento de Jetpack Navigation, para iOS — padrão Coordinator e SwiftUI NavigationStack.
Na entrevista comportamental, são avaliadas soft skills: capacidade de trabalhar em equipe, resolver conflitos, argumentar decisões. Usa-se o método STAR (Situation, Task, Action, Result) — o candidato descreve uma situação específica da experiência. Exemplo de pergunta: “Conte sobre o bug mais difícil que você encontrou e corrigiu.” Rodada final com o tech lead ou VPE avalia pensamento estratégico e adequação cultural à empresa.
Problemas de algoritmos são um componente obrigatório das entrevistas em grandes empresas de tecnologia (Google, Meta, Yandex, Tinkoff, Avito). O objetivo principal é avaliar a capacidade de resolver problemas, não o conhecimento da linguagem. O candidato pode usar qualquer linguagem de programação — preferência para Kotlin no Android e Swift no iOS. Tópicos típicos: arrays, tabelas hash, grafos, programação dinâmica, árvores (Binary Tree, Trie, Segment Tree).
Segundo o LeetCode (2025), para passar com confiança na entrevista de algoritmos, é necessário resolver 250 a 400 problemas. Principais tópicos por frequência: Two Pointers (12%), Sliding Window (10%), DFS/BFS em grafos (14%), Binary Search (8%), Dynamic Programming (18%), Hash Map / Set (15%). Notação Big O é um elemento obrigatório: o candidato deve explicar a complexidade temporal e espacial de sua solução e sugerir otimizações.
// LeetCode 1: Two Sum — problema clássico de HashMap
fun twoSum(nums: IntArray, target: Int): IntArray {
// Armazene complemento = target - nums[i] e seu índice
val map = mutableMapOf<Int, Int>()
for (i in nums.indices) {
val complement = target - nums[i]
// Se o complemento for encontrado — par encontrado
if (complement in map) {
return intArrayOf(map[complement]!!, i)
}
map[nums[i]] = i
}
throw IllegalArgumentException("No two sum solution")
}
// Tempo: O(n), Espaço: O(n)O problema Two Sum é o mais popular em entrevistas (segundo o LeetCode, mais de 20 milhões de submissões). A solução O(n) usa HashMap: para cada elemento, verifica se a diferença target - nums[i] já apareceu. Se sim — retorna os índices. Se não — armazena o elemento atual no HashMap. A solução ingêna O(n²) com dois loops aninhados é considerada insuficiente para posições Senior.
Perguntas de plataforma na entrevista de desenvolvedor mobile se dividem em três blocos: conhecimento fundamental da plataforma, trabalho com UI e multithreading, requisições de rede e armazenamento de dados. Para Android, são obrigatórios: ciclo de vida de Activity e Fragment, diferenças entre Fragment v1 e Fragment v2, ActivityResult API (substituição do onActivityResult), ViewModel + StateFlow, Compose lifecycle. Para iOS: ciclo de vida de UIViewController, ARC (Automatic Reference Counting), DispatchQueue e OperationQueue, SwiftUI lifecycle (View — @State — @Binding — @ObservedObject).
Pergunta típica: “Quais callbacks do ciclo de vida da Activity são chamados ao girar a tela?” Resposta correta: onPause → onStop → onDestroy → onCreate → onStart → onResume. Pergunta adicional: “Como salvar o estado ao girar?” — via SavedStateHandle no ViewModel, onSaveInstanceState Bundle ou rememberSaveable no Jetpack Compose. Para iOS: “O que acontece com UIViewController ao entrar em background?” — viewWillDisappear → viewDidDisappear → didEnterBackground (AppDelegate).
| Componente | Android | iOS |
|---|---|---|
| Ciclo de vida | Activity: onCreate → onStart → onResume → onPause → onStop → onDestroy | UIViewController: viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear |
| Salvamento de estado | SavedStateHandle, onSaveInstanceState, rememberSaveable | Codable + UserDefaults, Core Data, @SceneStorage |
| Multithreading | Coroutines (Dispatchers.Main, IO, Default) | GCD (DispatchQueue.main, .global, .background) |
| Layout de UI | Jetpack Compose (Modifier, @Composable) | SwiftUI (View, @ViewBuilder, Modifier) |
| Navegação | Jetpack Navigation Component, Cicerone, Decompose | NavigationStack, Coordinator, Router (RIBs) |
System Design Interview para desenvolvedor mobile avalia a capacidade de projetar a arquitetura do aplicativo cliente e sua interação com o servidor. Problemas padrão: projetar um feed de notícias (como Instagram/TikTok), chat (como Telegram), player de vídeo (como YouTube), cache de primeiro nível (L1 — in-memory, L2 — disco). Duração — 60 minutos. Avalia-se a estruturação do pensamento, não a quantidade de detalhes.
Template de resposta para System Design: 1) Clarify requirements — esclarecer requisitos funcionais (feed, curtidas, comentários, upload de foto) e não funcionais (offline, velocidade de carregamento, consumo de bateria). 2) High-level design — desenhar diagrama de camadas: UI Layer → ViewModel → Repository → Network / Cache / DB. 3) Deep dive — detalhar componentes principais, por exemplo, mecanismo de paginação (Paging 3 para Android, Offset-based vs Cursor-based para iOS). 4) Trade-offs — discutir compromissos: cache vs frescor dos dados, offline-first vs online-only.
Principais tópicos de System Design para mobile: cache (LRU Cache, Disk Cache com limite), trabalho com imagens (Coil, Glide, SDWebImage — carregamento, cache, placeholder, progresso), otimização de tráfego (protobuf em vez de JSON, compressão, Differ/GraphQL), trabalho offline (Room + Sync Adapter, Core Data + iCloud, WorkManager para sincronização em segundo plano). Offline-first é um dos tópicos mais frequentes para posições Senior.
Para iOS, são adicionadas perguntas sobre App Thinning, Slicing, On-Demand Resources e otimização de build. Para Android — sobre R8/ProGuard, App Bundles (AAB vs APK), Dynamic Delivery e Minification. A pergunta arquitetural “Como implementar cache de imagens com limite de memória?” testa a compreensão de LRU Cache (LinkedHashMap com access order), Disk LRU Cache (DiskLruCache de Jake Wharton) e camada de cache de memória do Coil/Glide.
A preparação para entrevista requer uma abordagem sistemática de 4 a 8 semanas antes da entrevista planejada. Estratégia básica: 2 semanas para revisão de teoria (linguagem, plataforma, algoritmos), 2 a 4 semanas para resolver problemas de algoritmos (100 a 300 problemas no LeetCode), 1 a 2 semanas para entrevistas simuladas (Pramp, interview.io, com amigos). Para posições Senior, adiciona-se preparação de System Design (2 a 3 semanas). O plano proporciona 70 a 80% de aprovação no nível alvo.
Para desenvolvedores mobile, a preparação específica inclui: leitura do Android Developers Guide / iOS Developer Library, análise de código fonte de bibliotecas populares (Retrofit, OkHttp, Coil, Koin, Alamofire, Kingfisher), escrita de um projeto pessoal com Clean Architecture e CI/CD (GitHub Actions, Fastlane). Escreva um aplicativo-exemplo no GitHub com arquitetura modular, DI, testes (Unit + UI + Snapshot) — isso demonstrará compreensão profunda e se tornará um argumento na entrevista.
| Semana | O que fazer | Resultado |
|---|---|---|
| 1-2 | Revisão de teoria: linguagem (Kotlin/Swift), plataforma (Android/iOS), algoritmos (Big O, estruturas principais) | Resumo dos tópicos principais |
| 3-4 | LeetCode: 100-150 problemas, tópicos: Arrays, Hash Maps, Trees, DFS/BFS, DP | Solução confiante de problemas Medium |
| 5-6 | System Design: leitura de “Designing Data-Intensive Applications”, prática de 5-7 designs | Template de resposta pronto para System Design |
| 7-8 | Entrevistas simuladas (5-10 entrevistas), revisão de perguntas de plataforma, perguntas comportamentais | Preparação completa para entrevista real |
Erro 1: resolver em silêncio. O candidato escreve código em silêncio, sem comentar o raciocínio. O entrevistador não consegue avaliar o processo de solução. Correto: verbalizar cada passo — “Vejo que o problema se resume a uma busca em grafo. Sugiro usar BFS porque precisamos encontrar o caminho mais curto.” Essa comunicação dá ao entrevistador a oportunidade de direcionar o candidato em caso de erro, o que é avaliado positivamente.
Erro 2: escrever código imediatamente. Começar a codificar sem esclarecer requisitos e discutir abordagens é uma das principais causas de reprovação. Antes de escrever código: esclarecer dados de entrada/saída, discutir casos de borda, comparar 2-3 abordagens com avaliação de Big O e, só após acordo com o entrevistador, escrever a solução ótima. Padrão correto: Clarify → High-level approach → Big O → Write code → Test with examples → Discuss trade-offs.
Erro 3: desconhecimento da plataforma. O candidato resolve bem algoritmos, mas não consegue explicar a diferença entre Activity e Fragment ou entre weak/unowned em Swift. Para vagas mobile, o conhecimento da plataforma é avaliado tanto quanto os algoritmos. Estude: diferenças de versões do SDK (compileSdk vs minSdk vs targetSdk), regras ProGuard/R8 para bibliotecas populares, Swift Concurrency (async/await, actors) e MainActor. Um em cada três candidatos a vaga iOS é reprovado em perguntas sobre ARC.
Perguntas frequentes
O número padrão de rodadas é de 3 a 5: triagem de RH (30 minutos), algoritmos (60 minutos), arquitetura/design de sistemas (60 minutos), entrevista comportamental (45 minutos), rodada final com tech lead (60 minutos). Em startups, podem ser 2-3 rodadas; em grandes empresas (Google, Meta), até 6 rodadas. Duração total do ciclo de entrevistas — de 2 a 6 semanas, dependendo da empresa.
Top 5 tópicos para entrevista de algoritmos: programação dinâmica (18% dos problemas), DFS/BFS em grafos (14%), Two Pointers (12%), Sliding Window (10%), Binary Search (8%). Para passar em entrevistas FAANG, recomenda-se resolver 250-400 problemas no LeetCode. Nível Medium é o mínimo obrigatório. Para posições Senior, são adicionados problemas de árvores e filas de prioridade.
Plano de um mês: semana 1 — revisão da linguagem e plataforma (Kotlin/Swift, bibliotecas principais, ciclos de vida). Semana 2 — LeetCode Medium (100 problemas, tópicos: Arrays, Hash Maps, Trees). Semana 3 — System Design para mobile (cache, paginação, offline-first). Semana 4 — entrevistas simuladas (mínimo 3 no Pramp ou com um colega). Dica chave: faça entrevistas simuladas em condições próximas às reais — prazo, entrevistador desconhecido, quadro online.
Junior: 1-2 rodadas, algoritmos básicos (reverse string, fizzbuzz, percurso básico de árvore), perguntas sobre linguagem e fundamentos da plataforma. Middle: 2-3 rodadas, algoritmos Medium, perguntas sobre arquitetura (MVP/MVVM), trabalho com rede e cache. Senior: 4-5 rodadas, algoritmos Hard, System Design, arquitetura completa do aplicativo, CI/CD, code review, perguntas comportamentais sobre liderança e mentoria. Espera-se que o Senior faça perguntas e lidere a discussão.
Exemplos de perguntas: “Conte sobre um conflito na equipe e como você o resolveu,” “Qual foi a feature mais difícil e por quê,” “Por que você quer trabalhar conosco,” “O que você fez para melhorar processos na equipe.” Use o método STAR (Situation, Task, Action, Result) para respostas estruturadas. Prepare 3-4 histórias da experiência com antecedência — isso cobre 80% das perguntas comportamentais.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também