Habilidades de desenvolvedor Android e perguntas para entrevistas

Publicado: Última actualização:
Android: perguntas de engenheiro de software para entrevista

habilidades de desenvolvedor Android estão em grande demanda, e espera-se que essa demanda cresça ainda mais, já que o Android é o sistema operacional móvel dominante atualmente, rodando em inúmeros modelos de smartphones e tablets, assim como em muitos outros dispositivos. Como resultado, uma campanha de recrutamento para Desenvolvedor Android é muito difícil. Tem que ser rápido e preciso se você quiser contratar os melhores. Caso contrário, os seus concorrentes vão roubar-lhe o candidato. A triagem geralmente leva mais tempo, então vamos descobrir como fazê-lo de uma forma rápida e eficaz.

1. O que é o Android?

O Android é o sistema operacional mais popular do mundo dedicado principalmente a dispositivos móveis. O código fonte é desenvolvido pelo Google no âmbito do Android Open Source Project (AOSP). As versões subsequentes são geralmente lançadas anualmente e são anunciadas nas conferências de I/O do Google.

Sua característica é que, além dos telefones, pode ser instalado em tablets e vários outros dispositivos embutidos, por exemplo, TVs (Android TV), displays em carros (Android Auto) ou relógios (Android Wear).

As principais vantagens do sistema Android são as seguintes:

  • código fonte aberto (https://source.android.com/)
  • a plataforma é desenvolvida pela Google. A cada meio ano, o sistema fornece algo novo aos usuários e programadores. O Google é muito particular no desenvolvimento de todo o ecossistema, desenvolve várias bibliotecas, ferramentas (IDEs baseadas em IntelliJ), organiza muitas conferências, workshops, screencasts, etc.
  • design consistente, especialmente desde que o conceito de Design de Materiais foi introduzido. A luta constante para manter uma aparência consistente dos aplicativos no Android, para que ao alternar entre aplicativos, os usuários não se percam quanto à forma de usar um determinado aplicativo.

2. Lista de competências do desenvolvedor Android

O que é importante para um recrutador de TI saber sobre o Android? Há certas coisas que um recrutador de TI deve estar ciente no que diz respeito ao Android:

  • Arquitetura da plataforma Android: quantos processos são lançados durante a inicialização do aplicativo, quantos threads são iniciados, de que forma o aplicativo se comunica com o sistema e outros aplicativos (por exemplo, como no seguinte cenário: escolhendo um contato, compartilhando uma imagem), o que é um thread principal e como ele funciona no Android
  • Componentes básicos da plataforma: Atividade, Fragmento, Serviço, Intenção, BroadcastReceiver, ContentProvider.
  • Bibliotecas padrão e mais populares que suportam a criação de aplicações. Estes são alguns exemplos de bibliotecas: Biblioteca de suporte ao Android, Google Play Services, Retrofit, OkHTTP, rxJava, EventBus, Dagger
  • Padrões de design que permitem escrever aplicações de uma forma que permite fácil manutenção, extensão e testes. Últimas tendências: MVP, MVVM, Arquitetura limpa
  • Regras relativas à criação de vistas eficientes, capacidade de criar vistas personalizadas reutilizáveis
  • Capacidade de lidar com a fragmentação do mercado e a multiplicidade de vários dispositivos de diferentes produtores com várias versões de sistemas. Mecanismos que a plataforma oferece para garantir o bom funcionamento da aplicação em dispositivos com telas de diferentes tamanhos/densensidades, várias versões linguísticas, várias versões do próprio sistema
  • Cada versão do Android tem um dígito e uma letra (do C até o N). O Google tenta sempre inventar um nome de pastel ou algo doce começando com uma letra em particular e é assim que chama as versões posteriores do Android: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Icecream Sandwich, Jellybean, KitKat, Lollipop, Marshmallow, Nougat). Um candidato deve ser capaz de enumerar estes nomes se estiver interessado na vida da plataforma e no seu desenvolvimento 🙂

3. Como verificar as habilidades do desenvolvedor Android na fase de triagem?

A triagem é difícil quando você não é um Desenvolvedor do Android você mesmo. É ainda mais difícil quando a própria tecnologia está em desenvolvimento o tempo todo e exige que você esteja em dia. Então, vamos passar a algumas dicas práticas de recrutamento sobre como verificar as habilidades do desenvolvedor Android.

3.1. Triagem técnica das habilidades do Android com base no CV

O CV de um candidato pode nos dizer muitas informações úteis, mas você precisa saber como escolher o que é mais importante. Como recrutador de TI, procure as seguintes informações valiosas no currículo de um desenvolvedor:

  • Uma série de aplicativos lançados no Google Play. Se ainda estiverem disponíveis, deve ser verificado como são, como funcionam e quantos downloads tem no Google Play.
  • Qual era o tamanho da equipe do desenvolvedor e qual era o seu papel no projeto? O projeto em que eles estavam trabalhando também foi criado para outras plataformas (iOS? Windows Phone?)

Se você não consegue descobrir isso pelo próprio CV, vale a pena fazer essas perguntas durante uma entrevista por telefone ou vídeo.

Como Recrutador Técnico à procura de um Desenvolvedor Android, você deve estar familiarizado com toda a terminologia utilizada pelos candidatos. É por isso que desenvolvemos este glossário Android para recrutadores de TI para que você fale a mesma língua que o seu candidato no processo de seleção.

Tecnologia Android - glossário básico de termos Android para recrutadores de TI

componentes básicos do Android Atividade, Fragmento, Intenção, Serviço, BroadcastReceiver, ContentProvider
Ferramentas de teste Espresso, Mockito, Robolectric
Componentes básicos da IU (a maior parte do Material Design) Barra de ferramentas, ViewPager, RecyclerView, CardView, Botão de acção flutuante, Gaveta de navegação, Barra de fundo, CoordinatorLayout
Construir ferramentas Gradle (Eclipse e ADT são legados)
Bibliotecas mais populares Biblioteca de suporte, Google Play Services, Retrofit, EventBus, rxJava, rxAndroid, OkHttp, Dagger


Mais informações sobre a tecnologia Android, útil do ponto de vista de um recrutador de TI

No mundo do Android, há alguns lançamentos de sistemas chave que são revolucionários de certa forma ou introduzem algo novo. Para mais informações vá a http://socialcompare.com/en/comparison/android-versions-comparison ou veja o breve resumo abaixo:

Android 7.0

  • Modo multijanela (duas aplicações simultaneamente exibidas em uma tela dividida)

Android 6.0

  • Permissões de tempo de execução. Nova abordagem para solicitar acesso aos dados sensíveis dos usuários (com base no exemplo do iOS)

Android 5.0

  • Desenho do material. Revolução da IU em aplicações

Android 4.0

  • A primeira versão do sistema que não tem variantes para telefones/tabelas, mas funciona em dispositivos com qualquer tipo de tela

Certificação no Android

Experiência anterior: o que é importante para um recrutador de TI

Se você vir pelo currículo de um desenvolvedor Android que eles tiveram um par de anos de experiência, vá um pouco mais fundo e procure as seguintes coisas em seu currículo:

  • Já escrevi sobre isso em "O que levar em conta na triagem do currículo?". A experiência é a mais importante: o trabalho em equipe, o número de publicações e problemas de produção que um candidato experimentou e pode falar fluentemente de uma maneira interessante que vai além de "minha equipe e eu resolvemos tais e tais problemas". É importante saber para que problemas a pessoa resolveu, para que contribuiu.

O que mais no CV pode ajudar a avaliar as capacidades de programação do Android?

  • Tudo relacionado com a programação Java. Workshops, certificados, conhecimento de padrões. Java é a linguagem de programação básica do Android e mesmo que apareçam outras linguagens, elas seriam baseadas em JVM (especificamente Android Runtime, ART), por isso estar familiarizado com todas as limitações e regras relativas à programação Java é muito útil.

3.2. Triagem técnica das habilidades do Android durante uma entrevista por telefone/vídeo

Um currículo lhe dá algumas informações básicas sobre as habilidades de um desenvolvedor, mas não lhe diz nada sobre o desenvolvedor como pessoa e não é suficiente para lhe fornecer um conhecimento sólido sobre suas habilidades de codificação.

Abaixo você encontrará alguns exemplos de perguntas que lhe dirão mais sobre o candidato.

1. Conte-nos sobre o problema mais interessante que você encontrou após a publicação de uma aplicação para usuários. Como você resolveu este problema?

  • Esta pergunta revela quaisquer deficiências na experiência de um desenvolvedor decente que deveria fornecer toneladas de exemplos do topo de sua cabeça de problemas que eles conseguiram resolver e que os deixou orgulhosos. Se alguém acabou de participar, pode se perder na resposta à pergunta.

2. Enumerar os componentes prontos a serem desenvolvidos do Material Design, cujas implementações podem ser encontradas na família da biblioteca de suporte.

  • Uma resposta a esta pergunta manifesta o conhecimento da família básica de bibliotecas que toda e qualquer aplicação utiliza. Um candidato deve ser capaz de enumerar pelo menos o seguinte: CardView, RecyclerView, Botão de Acção Flutuante, Barra de Ferramentas, Gaveta de Navegação. Se um programador conhece estes componentes, isso significa que eles não irão reinventar a roda ao criar uma aplicação clássica, mas usar componentes confiáveis e amplamente utilizados a partir de uma biblioteca livre.

3. Qual é o seu atalho favorito no Android Studio?

  • Uma resposta a esta pergunta mostra até que ponto um candidato está interessado na ferramenta que utiliza diariamente e até que ponto a domina. Um candidato deve facilmente enumerar pelo menos 4-5 atalhos que usa todos os dias. Quanto mais exemplos eles derem, melhor se reflete sobre eles. É um mau sinal quando um programador que não conhece atalhos e usa o mouse para tudo.

4. O que você tem que fazer para congelar uma aplicação Android?

  • Uma resposta a esta pergunta é: realizar demasiadas operações no fio condutor. Uma resposta a esta pergunta manifesta o conhecimento de um candidato sobre a arquitetura da plataforma. Ser capaz de responder a esta pergunta é uma necessidade absoluta. Um candidato que não é capaz de fornecer uma resposta não escreverá uma aplicação que seja rápida e estável do ponto de vista de seus usuários.

5. Como você lida com a fragmentação?

  • O mercado de telefones com Android é o mais diversificado de todas as plataformas móveis. Ser capaz de responder a esta pergunta significa que um candidato conhece bem o básico da plataforma, sabe o que ela oferece e sabe como garantir a compatibilidade da aplicação numa determinada versão do sistema, dispositivos com várias telas, etc.

6. É também uma boa idéia perguntar sobre a fonte dos projetos do desenvolvedor, ou seja, PSD ou fornecidos por um designer. Como eles lidam com o corte de gráficos e a cooperação com designers?

Leitura recomendada: Dados salariais completos do desenvolvedor Android

4. Testes de habilidades de desenvolvedor Android online para desenvolvedores prontos para o uso do DevSkiller

Na DevSkiller fornecemos às empresas uma infra-estrutura que lhes permite criar seus próprios testes de programação, onde podem usar sua própria base de código, projetos inteiros de TI usando frameworks e bibliotecas, para testar programadores online. No entanto, nós também temos alguns testes de codificação .NET prontos para uso que você pode usar em sua campanha de recrutamento.

Android
SENIOR
Competências testadas
Duração
45 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Android

Tarefa de programação - Nível: Difícil

Android | Vibrations API - Implementar um método para tocar uma melodia de fantasia através do dispositivo táctil incorporado para indicar que o interruptor de recurso foi alternado.

Android
MÉDIO
Competências testadas
Duração
39 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Android

Tarefa de programação - Nível: Médio

Android | Kotlin | ConstraintLayout Animation - Implementar animações de elementos de layout usando a API ConstraintLayout.

Android
SENIOR
Competências testadas
Duração
75 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Android

Tarefa de programação - Nível: Difícil

Android | Kotlin | Image Fetch (KitKat + TLSv1.2) - Ajuste a implementação da MainActivity para que o cliente OkHttp suporte o TLS 1.2, mesmo que tenha sido desativado pelo Sistema Operacional.

Android
SENIOR
Competências testadas
Duração
75 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Android

Tarefa de programação - Nível: Difícil

Demonstração do Android | OpenGL ES - O objectivo desta tarefa é verificar os conhecimentos do candidato sobre o GLSL ES 100.

Android
SENIOR
Competências testadas
Duração
60 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Android

Tarefa de programação - Nível: Difícil

Android | Bitmap Manipulations - Implementar as três operações que devem ser realizadas em uma imagem selecionada antes de iniciar uma ação.

SENIOR
Competências testadas
Duração
100 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa de programação - Nível: Difícil

iOS | Swift | Conference App Senior - Implementa um serviço de rede que é usado para interagir com o servidor.

Tarefa de programação - Nível: Difícil

Android | Chamada Async de nativo para Java via JNI - Fornecer a parte que falta da JNI do combo de comunicação nativo-Java que preenche os requisitos certos.

JUNIOR
Competências testadas
Duração
70 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Android, iOS

Tarefa de programação - Nível: Fácil

Android | Style Basics - Implementar um estilo que pode ser reutilizado com uma série de widgets TextView.

Tarefa de programação - Nível: Fácil

iOS | Swift | Water Power Plant Application - Implementar as funções em falta na aplicação para a análise dos dados de uma central hidroeléctrica.

Android
MÉDIO
Competências testadas
Duração
72 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Android, iOS

Tarefa de programação - Nível: Médio

Android | Aplicativo Lembrete - Implemente recursos faltantes no aplicativo Lembrete usando BroadcastReceeceivers, Serviços, Agendamento de intenções usando AlarmManager e API de Notificações.

Tarefa de programação - Nível: Médio

iOS | Swift | Aplicação dos detalhes do aluno - Implementar um aplicativo mantendo os detalhes do aluno em um arquivo e permitindo que os usuários consultem o arquivo a fim de recuperar dados específicos.

Android
SENIOR
Competências testadas
Duração
45 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Kotlin, Android

Tarefa de programação - Nível: Difícil

Android | Kotlin | Chamada Async de nativo para Java via JNI - Forneça a parte que falta da JNI do combo de comunicação nativo-Java que preenche os requisitos certos.

Android
JUNIOR
Competências testadas
Duração
33 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Android

Tarefa de programação - Nível: Fácil

Android | Manual Background Colour Animation - Implementar uma animação a cores suave do fundo de uma Actividade.

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore