Buscar

EXERC 3 TÓPICOS AVANÇADOS EM REACT NATIVE

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 8 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 8 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

Prévia do material em texto

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS EM ANDROID
	
		Lupa
	 
	
	
	
	 
	DGT0303_202001069674_TEMAS
	
	
	
		Aluno: REGIS BATISTA CONDE
	Matr.: 202001069674
	Disc.: PROGRAMAÇÃO PARA D 
	2023.3 EAD (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu EXERCÍCIO! 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.
	02826 - TÓPICOS AVANÇADOS EM REACT NATIVE
	 
		
	
		1.
		Arquiteturas de fluxo unidirecional são muito eficientes na construção de sistemas para Web ou dispositivos móveis. Criada pelo Facebook, a arquitetura Flux é um bom exemplo de modelo baseado em fluxo, e o componente Store, definido na arquitetura, é utilizado para
	
	
	
	criar pacotes de comunicação, representando as solicitações do usuário.
	
	
	receber as solicitações e executar processos sobre os dados.
	
	
	exibir os dados para o usuário.
	
	
	gerenciar a interatividade do usuário com o sistema.
	
	
	despachar os pacotes de comunicação, para o responsável pelo processamento.
	Data Resp.: 15/10/2023 11:11:58
		Explicação:
Na arquitetura Flux, o componente View é responsável por exibir os dados para o usuário e gerenciar a interatividade. Qualquer solicitação é traduzida em uma Action, que pode ser definida como um pacote de comunicação, repercutido pelo Dispatcher para algum componente Store, onde são executados os processos necessários sobre os dados, com a emissão de eventos para a atualização da View ao final.
	
	
	 
		
	
		2.
		Considere o trecho de código apresentado a seguir, que tem como base a utilização da biblioteca de testes unitários Jest:
Qual será o resultado da execução dos testes, via npm test?
	
	
	
	O teste irá falhar, pois o retorno da soma não é igual ao valor de teste utilizado.
	
	
	O teste será executado com sucesso, pois o resultado da soma será maior que o valor de teste utilizado.
	
	
	O teste será executado com sucesso, devido ao fato de que o resultado da soma é igual ao valor de teste utilizado.
	
	
	O teste irá falhar, pois o resultado da soma será menor que o valor de teste utilizado.
	
	
	O teste irá falhar, pois o resultado da soma deveria ser menor que o valor de teste.
	Data Resp.: 15/10/2023 11:12:37
		Explicação:
Com base na biblioteca Jest, temos diversos operadores para as comparações utilizadas nos testes. No fragmento de código, é utilizado o operador toBeGreaterThan, que verifica se o resultado é maior que o valor de teste. Como a soma retornará o valor quinze, e o valor de comparação é um, o teste será executado com sucesso.    
	
	
	 
		
	
		3.
		Quando um aplicativo não consegue completar as funcionalidades oferecidas por ele em prazo adequado, o usuário se sente desestimulado, pois a usabilidade fica comprometida, mas existem técnicas simples, que podem melhorar o consumo de memória e o tempo de resposta, como a que é citada na alternativa
	
	
	
	adotar figuras no formato BMP, devido à taxa de compressão.
	
	
	manter as mensagens via console para acompanhamento da execução.
	
	
	utilizar sempre implementações recursivas para as funções.
	
	
	substituir o motor de execução Java Script pelo Hermes.
	
	
	recriar os componentes nativos a cada exibição.
	Data Resp.: 15/10/2023 11:13:00
		Explicação:
O motor Hermes é mais eficiente, e a substituição por ele traz benefícios reais em termos de performance. Com relação às demais alternativas, a implementação recursiva consome mais memória, mensagens de console devem ser eliminadas, as figuras devem ser no formato PNG ou vetorial, e componentes nativos, quando utilizam o mesmo conteúdo, podem ser memorizados via React.memo, diminuindo o tempo para exibição.
	
	
	 
		
	
		4.
		Técnicas formais para execução de testes e análise de performance devem ser utilizadas para a garantia da qualidade do produto. Alguns problemas comuns estão relacionados ao tempo de resposta, outros ao consumo de memória, e há ainda os fatores de usabilidade do produto. Qual das alternativas define um problema relacionado ao consumo de memória?
	
	
	
	format exception
	
	
	deadlock
	
	
	starvation
	
	
	memory leak
	
	
	promise rejection
	Data Resp.: 15/10/2023 11:13:08
		Explicação:
Um problema comum em diversos aplicativos é o memory leak, ou vazamento de memória, em que sucessivas chamadas a determinados métodos resultam no consumo de pequenos blocos de memória, os quais são alocados durante o processamento, mas não são desalocados ao final. Com o bloqueio gradativo das posições de memória, o sistema se torna mais lento, impactando diretamente na performance.   
	
	
	 
		
	
		5.
		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.IV.getVector(128)
	
	
	CryptoJS.lib.IV.createFrom(''randomBytes'')
	
	
	CryptoJS.lib.WordArray.random(16)
	
	
	CryptoJS.lib.ByteArray.createIV([128,16])
	Data Resp.: 15/10/2023 11:13:13
		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 fornecido como parâmetro.   
	
	
	 
		
	
		6.
		Para a arquitetura Redux, o papel do componente Store é levemente diferente da Flux, pois ele se torna responsável pelo despacho de solicitações, eliminando a necessidade de um componente Dispatcher. Qual método deve ser utilizado para a criação do componente Store na arquitetura Redux?
	
	
	
	subscribe
	
	
	getStore
	
	
	getState
	
	
	dispatch
	
	
	createStore
	Data Resp.: 15/10/2023 11:13:23
		Explicação:
A arquitetura Redux utiliza uma abordagem funcional, em que as funções Reducer são definidas em um arquivo Java Script ou Type Script, e importadas para outro arquivo, utilizadas para inicializar um componente Store, criado por meio de createStore. Com o componente Store criado, qualquer tela pode ser associada a ele com o subscribe.
	
	
	 
		
	
		7.
		Muitas vezes, precisamos testar a conexão com um banco de dados ou servidor na rede, antes que ele seja implementado. Qual instrumento de programação poderia ser utilizado para viabilizar os testes na situação descrita?
	
	
	
	componente mock
	
	
	modificador async
	
	
	operador toEqual
	
	
	função test
	
	
	função expect
	Data Resp.: 15/10/2023 11:13:33
		Explicação:
Objetos mock, ou simulados, desviam o fluxo de execução normal, e devem ser utilizados para fornecer as respostas previstas por determinado servidor. O uso de um mock elimina a necessidade de construir um servidor físico para efetuar testes, nas fases iniciais do desenvolvimento, e mantém a compatibilidade com os processos normais de verificação.     
	
	
	 
		
	
		8.
		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?   
	
	
	
	Devemos invocar o método encrypt, fornecendoo 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. 
	
	
	É 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.
	
	
	Basta invocar a classe Base64, pois os valores já são codificados no formato 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.: 15/10/2023 11:14:54
		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.     
	
	
	 
		
	
		9.
		O padrão DAO é muito importante para a arquitetura MVC, pois permite que as chamadas ao banco de dados sejam concentradas em poucas classes, viabilizando o agrupamento na camada mais apropriada, e evitando que os comandos SQL sejam repercutidos nas demais camadas do sistema. De acordo com o padrão DAO, qual seria o comando SQL associado ao método obterTodos?
	
	
	
	DELETE
	
	
	INSERT
	
	
	CREATE
	
	
	UPDATE
	
	
	SELECT
	Data Resp.: 15/10/2023 11:14:14
		Explicação:
Com base no DAO, temos a concentração dos comandos SQL relacionados a uma entidade específica. Os métodos comumente considerados no padrão DAO são incluir, relacionado ao comando INSERT, excluir, tendo como base o DELETE, alterar, invocando um comando UPDATE, e métodos gerais de consulta, como obterTodos, que são baseados no comando SELECT, com ou sem restrições.
	
	
	 
		
	
		10.
		De forma geral, o resultado de um processo criptográfico é uma sequência binária, que apresenta dificuldades relacionadas à persistência e transmissão em rede, requerendo uma transformação para o formato texto. Qual algoritmo é tipicamente utilizado na conversão? 
	
	
	
	SHA1
	
	
	MD5
	
	
	Euler
	
	
	Base64
	
	
	Runge-Kutta
	Data Resp.: 15/10/2023 11:14:18
		Explicação:
A codificação por meio do algoritmo Base64 permite a transformação do vetor de elementos binários em uma sequência de texto, o que elimina valores nulos, ou zeros, os quais causariam problemas relacionados à persistência e transmissão de dados. Não se trata de um algoritmo criptográfico, mas de uma codificação, pois a transformação não requer a utilização de uma chave.

Continue navegando