Buscar

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS EM ANDROID

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS EM ANDROID 
 
Lupa Calc. 
 
 
 
 
 
EEX0141_202001643222_TEMAS 
 
 
Aluno: ALAN MOREIRA PERES Matr.: 202001643222 
Disc.: PROG DISP MÓVEIS 2022.1 EAD (GT) / EX 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não 
valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. 
Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
02793SINTAXE E COMPONENTES DO REACT NATIVE 
 
 
 
 
1. 
 
 
Em relação à hierarquia de componentes nativos, é correto 
afirmar que: 
 
 
 
A hierarquia de componentes em React Native é bastante flexível. Com isso, é possível 
utilizar em conjunto diferentes componentes, inclusive como contêineres de outros 
componentes. 
 
 
Um componente não pode ser usado como contêiner. Consequentemente, ele não pode ter 
nenhum outro componente aninhado em si. 
 
 
Um componente só pode ser contêiner de outros componentes do mesmo tipo. 
 
 
A regra de hierarquias ou de componentes que podem ser utilizados em conjunto é 
bastante flexível. Entretanto, no caso de componentes de diferentes tipos serem utilizados 
em conjunto, não é possível estilizá-los individualmente, havendo apenas a possibilidade 
de que os filhos herdem os mesmos estilos dos elementos-pai. 
 
 
Embora os componentes possam ser usados como contêiner de outros, há uma restrição 
para esse regra em relação ao componente View, que só pode ser utilizado para outros 
componentes do mesmo tipo. 
Data Resp.: 20/04/2022 18:58:34 
 
Explicação: 
A resposta certa é: A hierarquia de componentes em React Native é bastante flexível. Com isso, 
é possível utilizar em conjunto diferentes componentes, inclusive como contêineres de outros 
componentes. 
 
 
 
 
 
 
 
 
 
2. 
 
 
Em relação ao ambiente de programação para dispositivos 
móveis, marque a alternativa verdadeira. 
 
 
 
A utilização de gerenciadores de pacotes facilita a configuração do ambiente de 
desenvolvimento. Com eles, nenhuma configuração se faz necessária em termos de 
softwares ou mesmo de configurações no sistema operacional. 
 
 
Quando utilizamos o Expo CLI para criarmos nossas aplicações, não é possível, em um 
mesmo computador/ambiente, criar aplicações utilizando o React Native CLI. 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
 
 
Para testar aplicativos Android, é necessário ter um dispositivo móvel que utilize tal 
sistema operacional. 
 
 
O Android Studio é a única IDE que pode ser usada para a codificação de aplicativos em 
React Native. 
 
 
É possível existir um ambiente de desenvolvimento heterogêneo, não havendo restrições 
quanto à utilização apenas de um gerenciador de pacotes, de uma mesma IDE ou mesmo 
de uma única forma de desenvolver e testar nossos aplicativos. 
Data Resp.: 20/04/2022 18:58:44 
 
Explicação: 
A resposta certa é: É possível existir um ambiente de desenvolvimento heterogêneo, não 
havendo restrições quanto à utilização apenas de um gerenciador de pacotes, de uma mesma 
IDE ou mesmo de uma única forma de desenvolver e testar nossos aplicativos. 
 
 
 
 
 
 
 
 
02525INTERFACE GRÁFICA COM REACT NATIVE 
 
 
 
 
3. 
 
 
Indique qual afirmativa está correta em relação aos componentes 
de lista disponíveis em React Native. 
 
 
 
Embora sejam otimizados em relação à adaptação da janela de rolagem, os componentes 
de lista possuem problemas de performance no que diz respeito ao consumo de memória. 
 
 
Os componentes de lista são containers simples, como as View, com a única diferença de 
que permitem a exibição, dentro de um laço de repetição, usando o código JS com o 
componente React, de seu conteúdo. 
 
 
Os componentes de lista só permitirão a exibição de dados desde que seja possível 
determinar, antes da renderização deles, sua quantidade. 
 
 
Os componentes de lista são elementos otimizados para a exibição de dados nesse 
formato, possuindo diversas otimizações, que vão desde o consumo de memória até a 
renderização e a atualização da janela para a exibição dos itens. 
 
 
Os componentes de lista disponíveis só podem ser utilizados individualmente, não sendo 
possível a combinação deles ou até a utilização de um mesmo tipo de forma aninhada. 
Data Resp.: 20/04/2022 19:15:33 
 
Explicação: 
A resposta certa é: Os componentes de lista são elementos otimizados para a exibição de dados 
nesse formato, possuindo diversas otimizações, que vão desde o consumo de memória até a 
renderização e a atualização da janela para a exibição dos itens. 
 
 
 
 
 
 
 
 
 
4. 
 
 
O Stack Navigator permite criar uma ''pilha de telas''. Em relação 
a seu modelo de navegação, é correto afirmar: 
 
 
 
O Stack Navigator permite a navegação pelas telas do aplicativo por meio do método 
''navigate'' ou do botão de voltar, inserido por default no topo de cada tela. Com isso, é 
possível acessar qualquer uma das telas que tenha sido incluída em seus ''screens''. 
 
 
Após navegar para determinada tela, não é possível voltar à tela anterior sem antes 
recarregar todo o aplicativo. 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
 
 
A navegação no modelo Stack Navigator é realizada apenas por meio do botão de voltar 
no topo da tela. 
 
 
As opções de navegação ficam dispostas em um menu, que, por padrão, fica escondido à 
esquerda da tela. 
 
 
Os botões de navegação nesse modelo ficam, por padrão, alocados na parte inferior da 
tela. 
Data Resp.: 20/04/2022 19:15:38 
 
Explicação: 
A resposta certa é: O Stack Navigator permite a navegação pelas telas do aplicativo por meio do 
método ''navigate'' ou do botão de voltar, inserido por default no topo de cada tela. Com isso, é 
possível acessar qualquer uma das telas que tenha sido incluída em seus ''screens''. 
 
 
 
 
 
 
 
 
02700PERSISTÊNCIA DE DADOS COM REACT NATIVE 
 
 
 
 
5. 
 
 
Observe o fragmento de código apresentado a seguir, parte de um 
aplicativo criado na plataforma React Native. 
 
 
Qual será o resultado da execução desse trecho de código? 
 
 
 
Será criado um banco de dados com o nome ALUNOS, e na sequência os registros 120076 
e ''Luiz Paulo'' serão removidos da tabela ''Escola.db''. 
 
 
Será efetuada uma conexão com o banco de dados, configurado para o arquivo 
''Escola.db'', e na sequência a tabela ALUNOS é gerada no banco. 
 
 
Será criada uma tabela com o nome ''Escola.db'', sendo inserido um registro com o nome 
ALUNOS, e valores indefinidos, devido ao uso de interrogações. 
 
 
Uma conexão será obtida de forma síncrona, sendo utilizada, em seguida, para gerar uma 
transação e, a partir dela, alterar os dados do aluno 120076. 
 
 
Uma conexão será obtida de forma assíncrona, sendo utilizada, a seguir, para iniciar uma 
transação e, a partir dela, inserir um registro no banco de dados. 
Data Resp.: 20/04/2022 19:15:45 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
A resposta certa é: Uma conexão será obtida de forma assíncrona, sendo utilizada, a seguir, 
para iniciar uma transação e, a partir dela,inserir um registro no banco de dados. 
 
 
 
 
 
 
 
 
 
6. 
 
 
O banco de dados Realm é manuseado, no React Native, a partir 
de uma classe com o mesmo nome, concentrando todos os 
métodos necessários para consultar e modificar os objetos de 
qualquer coleção incluída no esquema de criação. Qual método da 
classe Realm seria utilizado para acrescentar um objeto a uma 
coleção do banco? 
 
 
 
objectForPrimaryKey 
 
 
commitTransaction 
 
 
beginTransaction 
 
 
write 
 
 
create 
Data Resp.: 20/04/2022 19:15:50 
 
Explicação: 
A resposta certa é: create 
 
 
 
 
 
 
 
 
02358CONEXÃO REMOTA COM REACT NATIVE 
 
 
 
 
7. 
 
 
A utilização de conteúdo externo, disponível através de APIs de 
terceiros, ou de nossas próprias APIs, permite incrementar as 
funcionalidades disponíveis em um aplicativo mobile. Dentre os 
recursos disponíveis em React Native para a realização dessa 
comunicação, podemos afirmar: 
 
 
 
As requisições entre o aplicativo e o servidor remoto utilizam um protocolo proprietário. 
 
 
O framework React Native dispõe de recursos nativos para a realização de conexão 
remota. 
 
 
Os dados transferidos precisam ser criptografados no aplicativo, já que não podem 
transitar sobre conexões seguras. 
 
 
As requisições realizadas são sempre, e somente, síncronas. 
 
 
Novas bibliotecas precisam ser instaladas para permitir que nosso aplicativo se comunique 
com outras APIs. 
Data Resp.: 20/04/2022 19:15:58 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
No React Native está disponível, nativamente, um componente que permite a conexão com 
recursos remotos, o Fetch API. 
 
 
 
 
 
 
 
 
 
8. 
 
 
No contexto do modelo Offline First, uma interface otimista pode 
ser definida como uma interface que: 
 
 
 
Funcione da mesma forma quando o dispositivo esteja ou não conectado à internet. 
 
 
Forneça elementos de interação que deem ao usuário a sensação de que a aplicação 
realizou uma tarefa que dependa de recursos remotos, mesmo sem que tal comunicação 
já tenha sido concluída. 
 
 
Implementa recursos de acessibilidade. 
 
 
Possui elementos de interação, como títulos de botões e textos que contenham frases 
amigáveis, utilizados como resposta a requisições feitas a recursos remotos. 
 
 
Seja agradável de utilizar, possuindo um conjunto de cores e elementos visuais que 
chamem a atenção do usuário. 
Data Resp.: 20/04/2022 19:16:02 
 
Explicação: 
Essa técnica consiste em tornar mais fluída a interação dos usuários com os aplicativos, mais 
ainda, quando tais recursos não estiverem online. Nesse contexto, a interface otimista consiste 
em fazer parecer ao usuário que a aplicação é mais rápida do que realmente é. 
 
 
 
 
 
 
 
 
02826TÓPICOS AVANÇADOS EM REACT NATIVE 
 
 
 
 
9. 
 
 
Ao efetuar a persistência em banco de dados, pode ser necessário 
ocultar informações de determinados campos, com a possibilidade 
de recuperação posterior, ou seja, devem ser adotados algoritmos 
de criptografia simétrica, em que o AES tem sido a principal opção 
para as plataformas móveis mais populares. Tendo como base a 
biblioteca CryptoJS, como podemos utilizar o algoritmo AES no 
desenvolvimento com React Native? 
 
 
 
Basta invocar a classe Base64, pois os valores já são codificados no formato AES. 
 
 
É necessário instanciar um objeto do tipo Cipher, com a passagem do algoritmo AES, 
chave e IV, e utilizar os métodos encrypt e decrypt do objeto. 
 
 
Devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o 
método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES. 
 
 
Precisamos utilizar o método digestStringAsync, fornecendo chave AES e IV, tanto para a 
criptografia quanto para a recuperação da informação. 
 
 
Não é possível trabalhar com o algoritmo AES no React Native, pois a biblioteca CryptoJS 
não fornece um gestor apropriado para ele. 
Data Resp.: 20/04/2022 19:16:05 
 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141
Explicação: 
A biblioteca CryptoJS fornece os gestores de criptografia simétrica por meio de módulos, em que 
estão incluídos AES, DES, TripleDES, Rabbit e RC4, referindo-se aos algoritmos adotados por 
cada um. Qualquer que seja o gestor escolhido, os métodos encrypt e decrypt ficam disponíveis, 
respectivamente, para criptografia e recuperação da informação, sendo necessário fornecer a 
chave e o IV. 
 
 
 
 
 
 
 
 
 
10. 
 
 
Entre os requisitos de segurança da plataforma Android, 
atualmente não é aceitável que o mesmo IV seja utilizado na 
geração sequencial de chaves. Ao utilizar a biblioteca CryptoJS, 
portada para React Native de sua verão NodeJS, qual comando 
seria utilizado para criar um IV formado por valores aleatórios? 
 
 
 
CryptoJS.lib.generateIV(128/8) 
 
 
CryptoJS.lib.IV.createFrom(''randomBytes'') 
 
 
CryptoJS.IV.getVector(128) 
 
 
CryptoJS.lib.ByteArray.createIV([128,16]) 
 
 
CryptoJS.lib.WordArray.random(16) 
Data Resp.: 20/04/2022 19:16:08 
 
Explicação: 
Com o módulo lib, oferecido na biblioteca CryptoJS, temos diversas classes e métodos utilitários 
para as atividades acessórias de processos criptográficos, como geração de números aleatórios, 
que podem ser utilizados na construção do IV e do SALT. O método random, de WordArray, 
acessado no módulo lib de CryptoJS, retorna um vetor de números aleatórios de 32 bits (Word), 
com o tamanho sendo 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp?num_seq_aluno_turma=160761611&cod_hist_prova=280958905&num_seq_turma=7013545&cod_disc=EEX0141

Continue navegando