Como selecionar as habilidades de desenvolvedor nativo Reagir

Publicado: Última actualização:
Como selecionar as habilidades de desenvolvedor nativo Reagir

Enquanto o React recebe toda a grande imprensa, o React Native tem se tornado uma parte essencial do universo JavaScript. Ele permite que desenvolvedores móveis escrevam aplicativos móveis que podem ser portados tanto para o iOS quanto para o Android. A vantagem disso é que ao invés de ter que desenvolver habilidades separadas de iOS (Objective-C e Swift) e Android (Java e Kotlin), os desenvolvedores de aplicativos móveis podem usar JavaScript, a linguagem mais comumente usada no momento. Mas como todas as pilhas de tecnologia, não é suficiente simplesmente saber JavaScript. Você precisa ter um entendimento profundo do React Native. Então como os empregadores podem dizer se um desenvolvedor React Native tem as habilidades que eles precisam?

Um guia para a triagem de habilidades de desenvolvedor Reage Native

Este guia dará aos recrutadores técnicos toda a informação que eles precisam para selecionar os candidatos a desenvolvedor React Native. Dentro você vai encontrar:

O que é uma Desenvolvedora Nativa de Reações

1. O que é React Native?

React Native é uma estrutura concebida e mantida pelo Facebook com o objectivo de simplificar o processo de desenvolvimento de aplicações móveis multi-plataforma, na sua maioria relacionadas com a interface do utilizador. É construído sobre outra biblioteca JavaScript React que rapidamente atingiu o status das ferramentas mais populares e reconhecíveis entre os desenvolvedores front-end. Mas a sua ascensão tem atraído alguma controvérsia.

Lançado em 2015 como um projeto open-source, React Native rapidamente dividiu a comunidade de desenvolvedores móveis. Antes do React Native aparecer, havia uma série de ferramentas exibindo páginas web escritas em HTML, CSS e JavaScript dentro de um navegador autônomo que imitava o aplicativo nativo. Se isso soasse a desajeitado, você estaria certo. Eles provaram ser uma dor para usar e não têm sido muito populares.

Reage Native, por outro lado, evita tomar os mesmos atalhos que os seus antecessores. A hierarquia de visualização apresentada pela aplicação é completamente nativa do sistema em que ela está rodando. Por outras palavras, a aplicação parece ser uma aplicação nativa e não uma página web. Isto torna as aplicações React Native indistinguíveis das aplicações regulares escritas em Swift, Objective-C, Kotlin, ou Java. Para vê-lo funcionar na prática, confira aplicativos populares como Facebook, Messenger, Instagram, ou Discord. Mesmo um especialista teria dificuldade em ver quais partes dessas aplicações foram escritas em React Native e quais foram escritas usando outra pilha de tecnologia.

1.1 A diferença entre Reagir vs Reagir Nativo

React e React Native são ambos projectos open source que foram criados pelo Facebook, mas não são a mesma coisa. Reagir é uma biblioteca JavaScript para construir o front end de aplicativos web, enquanto React Native é um framework que fornece um conjunto unificado de ferramentas para construir aplicativos móveis tanto no iOS quanto no Android. Isso leva a diferenças fundamentais como o fato de que React é renderizado em HTML enquanto React Native não é. React Native também dá aos desenvolvedores React Native a capacidade de converter ou estabelecer pontes entre as visões nativas escritas em linguagens específicas da plataforma como Swift ou Kotlin em algo utilizável pelo React Native.

Mas apesar das suas diferenças, React e React Native são notavelmente semelhantes, com React Native usando muitos dos fundamentos do React. Trabalhar com React Native requer o uso do 70-80% dos componentes e práticas do React. Por causa disso, a curva de aprendizagem para um desenvolvedor de React aprender React Native não é muito íngreme. Mesmo assim, são duas tecnologias separadas que não devem ser confundidas uma com a outra.

2. Para que é usado o React Native?

A maior vantagem do React Native é que ele permite ao desenvolvedor React Native criar aplicações para diferentes plataformas sem ter que aprender e usar múltiplos recursos tecnológicos. O Facebook chama essa abordagem de "aprender uma vez, escrever em qualquer lugar". Seu objetivo no desenvolvimento do React Native é unificar o conhecimento necessário para criar aplicativos móveis.

Reagir Native dá aos desenvolvedores uma forma declarativa de construir interfaces de usuário. Em termos leigos, isto oferece uma curva de aprendizagem muito mais suave em comparação com o UIKit nativo para iOS ou Android SDK. Isso significa que muitos desenvolvedores de aplicativos o usam como uma forma de entrar no desenvolvimento de aplicativos móveis. Isso também levou a uma série de ferramentas concorrentes, como o Flutter do Google ou o SwiftUI da Apple, recentemente anunciado, que foram desenvolvidos usando princípios semelhantes.

Mas mesmo representando uma maneira fácil de entrar no desenvolvimento de aplicativos, React Native é a base de alguns aplicativos poderosos. Bloomberg, Airbnb, e UberEats são todos grandes exemplos de aplicativos construídos com React Native.

O que um recrutador de TI deve saber sobre um desenvolvedor React Native

3. O que é importante para um recrutador de TI saber sobre a React Native?

Sendo ainda uma estrutura bastante jovem, a React Native está sujeita a múltiplas mudanças com impacto menor ou maior no trabalho do desenvolvedor. Na maioria das vezes, essas mudanças são opt-in e há poucas ou nenhumas depreciações difíceis que podem causar a migração da base de código de um desenvolvedor React Native.

Devido à sua natureza de fonte aberta, o roteiro de todas as mudanças e melhorias planejadas está disponível para a comunidade. Com a recente adição de ganchos e mudanças ainda mais fáceis planejadas para o futuro próximo, o processo de fazer uma aplicação móvel se tornará ainda mais rápido e conveniente do que nunca.

Uma vantagem inegável do React Native é a sua ampla e útil comunidade. Muitas perguntas em todos os níveis já foram respondidas em um artigo de blog, uma entrada no Stack Overflow ou alguma micro-biblioteca postada como um pacote NPM. Há muitos recursos para os iniciantes aprenderem e para os desenvolvedores avançados ampliarem seus conhecimentos.

Mas uma coisa importante a ser lembrada é não confundir a abordagem do Facebook de "aprender uma vez, escrever em qualquer lugar" com "escrever uma vez, escrever em qualquer lugar". Ainda é difícil em React Native escrever um aplicativo que funcionaria em iOS e Android. Isso ocorre porque ainda existem muitos recursos dependentes do sistema que requerem a divisão de partes do seu código em versões separadas do iOS e do Android. Mesmo assim, o objetivo do React Native é unificar as habilidades para construir aplicativos, não criar um aplicativo que funcione em ambas as plataformas.

3.1 Que experiência deve ter um Desenvolvedor Nativo Reagir

Ao avaliar o currículo de um desenvolvedor React Native, o que realmente se resume ao tipo de cargo para o qual um candidato é recrutado. Estar envolvido em projetos comerciais é uma necessidade quando se fala de cargos de alto nível ou de liderança, já que se espera conhecimento relacionado ao negócio para essas funções. Para outros níveis, isso não importa muito. Uma vantagem das contribuições de código aberto é que elas podem dar ao recrutador uma visão adicional sobre o estilo de código ou a forma como o candidato interage com a comunidade. Para resumir, é realmente importante compreender as necessidades da equipe e as responsabilidades da função antes de iniciar o processo de triagem.

Como verificar as habilidades de Reagir Nativos na fase de triagem?

4. 4. Triagem técnica das habilidades de um desenvolvedor nativo React com base em um currículo

React Native é bastante único em termos de como as pessoas entram nela e dos antecedentes de onde vêm. Alguns desenvolvedores web familiarizados com JavaScript e possivelmente também com o próprio React podem querer expandir seu conjunto de habilidades para incluir o desenvolvimento móvel. Por outro lado, alguns desenvolvedores móveis nativos podem reconhecer os pontos fortes da abordagem e das ferramentas do React Native e gostariam de aproveitá-los em seu trabalho do dia a dia. Ambos podem fazer uma contribuição significativa para a equipe, o primeiro trazendo padrões e melhores práticas específicas do JS ou React, o segundo fornecendo o conhecimento sobre algumas características e limitações de um ambiente específico para celulares. Seria bom para o recrutador saber qual seria exactamente o papel do candidato e que conjunto de competências é exigido pela equipa.

Reagir Glossário Native Developer

5. Reagir Glossário nativo para recrutadores técnicos

Padrões JavaScript atuais ECMAScript2015 (também conhecido por ES6), ECMAScript2019 (também conhecido por ES10)
JavaScript superset que adiciona uma digitação forte TypeScript
Reagir Bibliotecas nativas React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Gestores de pacotes

NMP, Fios
extensões JavaScript JSX
Ferramentas que ajudam a manter o estilo de código ESLint, TSLint, Prettier
Corredores de teste Jest, Mocha

5.1 Que tecnologias procurar em um currículo de desenvolvedor nativo React

Uma coisa importante a procurar é o padrão JavaScript com o qual o candidato está familiarizado. A partir de 2015 com ECMAScript2015 (aka ES6), um novo padrão JavaScript está sendo lançado a cada ano. A iteração atual a partir de 2019 é chamada ECMAScript2019 (ES10). Estes diferentes padrões podem ter um impacto no React Native API que o candidato tem usado até agora.

A mudança mais significativa veio entre as normas ES5 (2009) e ES6 (2015). Mas o código escrito nos novos padrões pode sempre ser transposto para os padrões mais antigos usando ferramentas como Babel.

5.2 Outras coisas a ter em conta num currículo de desenvolvedor nativo React

Uma habilidade que também pode ser útil para um Desenvolvedor Nativo Reactivo é o TypeScript. Este é um super conjunto de JavaScript que usa a digitação estática. A digitação estática, em geral, ajuda a identificar alguns erros no código muito mais cedo (porém não substitui os testes unitários nessa matéria) e permite que os desenvolvedores expressem suas intenções sobre as APIs públicas que expõem ao público de uma forma mais clara e melhor estruturada.

Existem também muitas bibliotecas ad-hoc React Native focadas na resolução de problemas particulares como navegação ou gestão estatal. A familiaridade com estes está fortemente correlacionada com os tipos de projectos em que o candidato tem estado a trabalhar. Se um candidato listar uma biblioteca como React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL, ou muitas outras, este pode ser um ponto de entrada interessante para a discussão sobre a experiência anterior do candidato.

Reagir perguntas de entrevistas com desenvolvedores nativos

6. Reagir às perguntas da entrevista nativa

Um currículo permite que você saiba como um candidato apresenta seus conhecimentos. Mas isto não é suficiente para lhe dizer se eles têm as habilidades que você precisa. Afinal de contas, qualquer pessoa pode escrever qualquer coisa em um currículo. Eles então precisam ser questionados sobre suas habilidades em uma tela de telefone ou entrevistados após passar pela fase de avaliação de habilidades de codificação.

6.1 Perguntas sobre a experiência de um desenvolvedor Nativo Reag

Pergunta 1: Poderia descrever as aplicações em que trabalhou no passado? Como você usou o React Native nessas aplicações?

Razão: Esta questão deve servir principalmente como um aquecimento para o candidato se abrir e tomar a iniciativa de falar sobre a sua experiência geral. É importante perguntar como o React Native foi usado pela sua equipa como um seguimento. Isto permite ao recrutador avaliar com que áreas do React Native o candidato pode estar familiarizado - por exemplo, se o RN foi usado em todo o aplicativo, ou apenas em algumas das telas, se ele foi ligado com partes nativas escritas no Objective-C/Java, etc.

Q2: Porque é que você e a sua equipa escolheram usar React Native? Qual foi o maior ponto de venda para você? Como isso ajudou nas aplicações em que você trabalhou?

R: A resposta a esta pergunta pode dizer ao recrutador várias coisas. Mostra parcialmente o cargo ou responsabilidades que o candidato tinha na sua equipa - estavam eles envolvidos no processo de tomada de decisão? E mesmo que não, eles estão cientes dos principais propósitos Reagir Nativo que poderiam ter vendido a idéia aos seus pares? Isso também mostra se o candidato é capaz de tomar uma decisão técnica com base nos requisitos comerciais das candidaturas com as quais trabalhou ou se está apenas seguindo a tendência.

Q3: Como você lidou com o estado nessas aplicações? Como é que funcionou?

R: Esta é uma questão um pouco mais técnica. Como o React Native em seu núcleo é apenas a camada de interface do usuário, é importante saber o que o candidato estava usando para preencher os espaços em branco restantes, um dos quais é a gestão do estado. Isto tem o potencial de abrir a discussão sobre fluxo de dados unidirecionais (redux, flux) ou estado de manuseio de serviços externos (REST, GraphQL). Também dá um sentido da capacidade do candidato para avaliar os prós e os contras da abordagem adoptada, que é uma habilidade crucial no auto-desenvolvimento.

6.2 Perguntas sobre os conhecimentos e opiniões de um desenvolvedor nativo Reagir

Q1: Que tipo de componentes se pode usar no React Native? Como eles diferem? Quando usar quais?

R: Esta questão pode ser interpretada pelo candidato de várias maneiras. Os componentes podem ser divididos em contentor/representação ou em estadual/puro/funcional. Não importa que forma de pensar o candidato mostra aqui, esta questão é mais sobre o candidato ser capaz de falar sobre o propósito ou limites de cada um de preferência no contexto da sua própria experiência.

Q2: Como você reutiliza o código em sua aplicação? Que técnicas você conhece para compartilhar lógica comum e qual é a sua opinião sobre elas?

R: Existem várias formas de conseguir a reutilização de código, as mais populares são os Componentes de Ordem Superior, Prumos de Render, Ganchos e Contexto. Seu uso é geralmente baseado na preferência da equipe, então o ponto principal aqui é o candidato explicar porque usaria um em vez do outro. Isso deve dar ao recrutador alguma noção de quão profundo é o conhecimento do candidato, uma compreensão dos internos da React Native, e o quanto o candidato se preocupa com um código limpo e de fácil manutenção.

Q3: Como você depura a aplicação? Que ferramentas você usa e de que forma elas são úteis?

R: A maior parte do tempo de um desenvolvedor React Native é dedicada à leitura, análise e depuração da base de código existente. É por isso que a habilidade e o conhecimento necessários para depurar o aplicativo de uma forma adequada e eficiente é crucial. O candidato poderia mencionar diferentes abordagens que variam do uso de logs simples até a anexação de um depurador para usar pontos de interrupção ou inspecionar a hierarquia de visualização através das Ferramentas React Dev. Cada uma delas tem alguns casos específicos nos quais ela brilha melhor, portanto o candidato também deve mencionar um exemplo de situação na qual ela foi usada. Pontos de bônus por mencionar um teste unitário que reproduz o bug e o faz passar como uma forma de determinar que o bug foi corrigido e permanecerá corrigido no futuro.

Q4: Você já encontrou algum problema de desempenho com o seu aplicativo? O que você usou para diagnosticá-los? Como você os resolveu?

R: O desempenho do React Native é muitas vezes trazido à tona pelos céticos quando se trata da sua utilidade. Embora seja verdade que é fácil cair em algumas armadilhas causando a queda da taxa de quadros no processo, entender os internos de Reagir e Reagir Native é apenas o suficiente para mitigar esses problemas. Os candidatos podem mencionar técnicas como memorização, melhorias como componentes puros ou armadilhas como funções em linha. Estas cobrem uma parte significativa das razões que fazem com que a interface seja menos responsiva. Quando os candidatos falam sobre ferramentas como profiler e conceitos como blending e offscreen rendering, torna-se claro que eles têm enfrentado problemas verdadeiramente complexos (provavelmente com animações). A resposta ideal também deve mencionar que, para melhorar o desempenho, é necessário ter um conjunto de métricas para minimizar ou maximizar (como FPS, consumo de memória ou CPU, etc.), pois sem elas é difícil avaliar se o desenvolvedor React Native está indo na direção certa.

Q5: E os testes? Você os usou? Como é que eles ajudaram a tua equipa? Que tipos de testes usaste?

R: Os testes ainda são um tema surpreendentemente controverso. Quer se goste ou não, uma aplicação tem de ser testada pelo menos de alguma forma antes de ser enviada para a produção para garantir que as novas funcionalidades estão a funcionar como especificado e, mais importante ainda, que a antiga não se partiu. Ter uma equipe de QA forte e dedicada definitivamente ajuda com isso, mas ter testes unitários ou instantâneos dá ao desenvolvedor React Native um feedback imediato que ele pode usar para corrigir o código. Testes são uma ferramenta para desenvolvedores que aumentam significativamente sua confiança nas mudanças que estão sendo introduzidas na base de código. Um teste irá capturar o momento em que a aplicação está funcionando corretamente e manterá essa correção a partir desse ponto. Existem vários executantes de testes JavaScript, sendo o Jest o mais recomendado no contexto do React Native, especialmente porque vem dos autores do React Native. Além disso, pode-se usar um renderizador de reações para testar o comportamento do componente em particular ou tirar um instantâneo de toda uma hierarquia de visualização para protegê-lo de mudanças inesperadas.

Q6: Como você mantém o estilo de código entre a sua equipe? Como vocês gerenciam a base de códigos juntos?

R: Esta é uma questão mais leve para revelar o conhecimento do candidato sobre as diferentes ferramentas utilizadas no processo de desenvolvimento. As respostas aqui podem ser muito amplas. Elas podem variar desde Prettier e ESLint, que automatiza a formatação do código e verifica se o código escrito corresponde às regras definidas pela equipe, até conceitos como integração contínua ou mesmo sistemas de controle de versão como Git. O candidato pode até mencionar práticas como a revisão de código. O objetivo principal da pergunta é mostrar como e de que forma os candidatos colaboraram com suas equipes, e quanto do trabalho repetitivo eles foram capazes de automatizar.

6.3 Perguntas comportamentais para fazer a um desenvolvedor Nativo Reagir

Q1: Qual foi a maior conquista da sua carreira? Qual foi o maior erro? Que medidas você tomaria para repetir o sucesso ou evitar a repetição do fracasso?

R: Uma pergunta bastante genérica, mas que mostra o auto-reconhecimento e a capacidade de autocrítica do candidato. Ambos são necessários no processo de aprendizagem, que é uma parte constante de ser um grande desenvolvedor de software.

Q2: Como você lidaria com uma situação em que o seu projeto tem um prazo definido para amanhã, mas ainda há algumas características a serem implementadas?

R: Isso não é nada difícil de imaginar e há uma grande chance do candidato ter enfrentado uma situação como essa no passado. Talvez o candidato tenha tentado negociar e ganhar mais tempo para terminar o trabalho. Talvez eles tenham se sentado com o proprietário ou gerente do produto para priorizar as características e se ater a algum tipo de MVP. Talvez eles tenham implementado algumas funcionalidades de uma forma rápida, mas não muito manejável, para ganhar tempo e definir um lembrete para fazer uma limpeza mais tarde. Existem diferentes abordagens e os objetivos desta pergunta são mostrar ao recrutador se os candidatos entendem a importância dos objetivos do negócio e se são capazes de fazer algumas concessões no nível técnico para atendê-los.

Q3: Que recursos você recomendaria para o desenvolvedor júnior/regular que lhe permitissem aumentar suas habilidades? Você gostaria de ser o mentor de um desenvolvedor? Você já fez isso no passado?

R: A resposta a esta pergunta é uma forma indirecta de verificar qual dos recursos que o candidato utilizou anteriormente e porquê. Isto dá ao recrutador informações adicionais sobre os antecedentes. A parte do mentor pode indicar se o desenvolvedor Nativo Reage gosta de compartilhar conhecimentos que também podem impactar positivamente a equipe.

Q4: Que áreas de desenvolvimento móvel ou de software você gostaria de explorar ou se familiarizar mais com? Por quê?

R: Esta pergunta dá ao recrutador uma ou duas pistas sobre que tópicos podem ser interessantes para o candidato e em que direção os candidatos gostariam de desenvolver suas carreiras. Ela permite ao recrutador avaliar se o projeto para o qual o candidato é recrutado seria um bom ajuste.

Testes de Codificação Reagir Native Developer

7. Triagem técnica das habilidades do desenvolvedor React Native usando um teste de codificação online

Um currículo de desenvolvedor React Native contém as habilidades que seus candidatos dizem ter e a tela do telefone lhe dá a oportunidade de verificar se eles têm conhecimento teórico de conceitos relacionados ao desenvolvimento React Native. Mas só porque um candidato tem conhecimentos teóricos, não é certo que ele possa aplicar isso aos aspectos práticos do desenvolvimento de software. Um teste de codificação online pode lhe dar uma idéia de como um candidato pode desenvolver uma aplicação usando o React Native.

7.1 Qual teste de programação Reagir Nativo você deve escolher?

Existem algumas opções, mas é importante escolher um teste que use especificamente React Native, e não JavaScript, ou React. Aqui estão algumas diretrizes:

  • O teste espelha o trabalho que a sua empresa faz
  • É uma duração razoável, de uma a duas horas (ou até menos)
  • O envio é automatizado
  • O teste pode ser feito na casa do candidato.
  • Verifica a qualidade do código e dos estojos de bordas, assim como as soluções
  • O candidato tem acesso a todos os recursos normais que utiliza para desenvolver software
  • É um projeto em pilha que não só dá ao candidato acesso à estrutura React Native, mas também às várias bibliotecas que são utilizadas com React Native
  • É calibrado para corresponder ao nível da posição

7.2 DevSkiller pronto para uso online Reagir Testes de avaliação de codificação de desenvolvedores nativos

Reação do Devskiller Os testes nativos são construídos com base na metodologia RealLifeTesting™ para garantir uma visão completamente precisa das habilidades do candidato. O teste pode ser feito no local e hora onde o candidato está mais confortável e pronto. Eles têm acesso a qualquer recurso necessário, como GitHub, Stack Overflow, Google e outras bibliotecas React Native. Este é um recurso, não um bug, pois mostra as decisões que o candidato toma em um ambiente de programação natural. Você pode ver como o candidato completa a tarefa, mas também, as decisões que ele toma, a lógica comercial que ele aplica, a eficiência e limpeza de seu código, e como ele conhece bem a pilha de tecnologia.

Você pode construir seu próprio teste ou usar um dos próprios testes do DevSkiller, construído por especialistas sênior da React Native.

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

Perguntas de escolha

avaliação do conhecimento de ES6, JavaScript

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

React Native | Movie Store - Implementa uma aplicação que permite aos utilizadores comprar todos os filmes que possam imaginar.

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

Perguntas de escolha

avaliação do conhecimento de ES6, JavaScript

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

Reagir Nativo | HR Companion App - Implementar uma aplicação para ajudar o departamento de RH a manter a lista de candidatos a serem avaliados.

Reagir Nativo
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 ES6, JavaScript

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

React Native | Ultimate BugTracker - Implementa funcionalidades em falta e corrige bugs na aplicação usada como um bug tracker interno de uma casa de software.

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