Logo Passei Direto
Buscar

Arquiteturas MVC, Flux, Redux e Criptografia no React Native

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Resumo – Arquiteturas MVC, Flux, Redux e 
Criptografia no React Native 
O material aborda padrões arquiteturais e técnicas importantes no desenvolvimento de aplicações 
com React Native, incluindo MVC, Flux, Redux, DAO e criptografia.
1. Arquitetura MVC no React Native
A arquitetura MVC divide o sistema em três camadas principais:
• Model: responsável pelos dados e persistência. 
• View: interface gráfica apresentada ao usuário. 
• Controller: controla as regras de negócio e a comunicação entre View e Model. 
Essa separação melhora a organização, reutilização e manutenção do código.
Padrão DAO
O padrão DAO (Data Access Object) centraliza operações no banco de dados, como:
• inserir; 
• alterar; 
• excluir; 
• consultar dados. 
Foi criada uma classe genérica chamada GenericDAO, utilizando o padrão Template Method, 
onde:
• a lógica geral já está pronta; 
• subclasses implementam apenas os detalhes específicos. 
Exemplo:
• AlunoDAO especializa operações para a entidade Aluno. 
O SQLite foi utilizado como banco local no React Native.
2. GenericController
A classe GenericController encapsula chamadas ao DAO e controla operações da aplicação.
Funções principais:
• incluir; 
• alterar; 
• excluir; 
• consultar registros. 
Os métodos utilizam programação assíncrona (async/await) e tratamento de erros com 
try/catch.
3. Interface com React Native
Foram criadas telas utilizando:
• TextInput; 
• TouchableOpacity; 
• FlatList. 
A tela AlunoTela permite:
• cadastrar alunos; 
• listar alunos; 
• excluir alunos. 
A navegação foi implementada com React Navigation usando Stack Navigation.
4. Arquitetura Flux
Flux é uma arquitetura criada pelo Facebook baseada em fluxo unidirecional de dados.
Componentes principais
View
Interface do usuário.
Action
Representa ações disparadas pelo usuário.
Dispatcher
Recebe ações e as encaminha.
Store
Armazena estados e regras de negócio.
Flux utiliza:
• programação assíncrona; 
• eventos; 
• padrão Observer. 
Quando os dados mudam, a Store notifica automaticamente as telas.
5. Arquitetura Redux
Redux é uma evolução simplificada do Flux.
Características
• fluxo unidirecional; 
• gerenciamento centralizado de estado; 
• programação funcional; 
• ausência de Dispatcher; 
• uso de Reducers. 
Componentes
Actions
Funções que retornam objetos contendo:
• type; 
• payload. 
Reducers
Funções puras responsáveis por atualizar estados.
Store
Armazena o estado global da aplicação.
Subscribe
Permite que a View seja atualizada automaticamente.
O Redux simplifica o gerenciamento de estados e facilita:
• manutenção; 
• testes; 
• previsibilidade do sistema. 
6. Criptografia no React Native
O conteúdo também apresenta fundamentos de criptografia.
Codificação Base64
Transforma dados em texto reversível.
Métodos:
• encode; 
• decode. 
7. Criptografia Simétrica
Utiliza:
• mesma chave para criptografar e descriptografar. 
Algoritmos:
• AES; 
• 3DES; 
• RC4. 
O projeto utiliza:
• biblioteca react-native-crypto-js. 
8. Hash
Hash é uma criptografia destrutiva:
• não permite recuperar o valor original. 
Muito usado para:
• armazenamento de senhas. 
Exemplos:
• MD5; 
• SHA1. 
9. Geração e Armazenamento de Chaves
Foi criada a classe KeyGenerator, responsável por:
• gerar chaves aleatórias; 
• armazenar chaves com segurança. 
Componentes utilizados:
• IV (Initialization Vector); 
• SALT; 
• EncryptedStorage. 
O armazenamento seguro usa:
• Keychain (iOS); 
• EncryptedSharedPreferences (Android). 
10. Classe Cipher
A classe Cipher implementa:
• criptografia; 
• descriptografia. 
Usando:
• AES; 
• Base64. 
Os dados são criptografados antes de serem gravados no banco SQLite.
11. Criptografia Transparente no DAO
O campo nome do aluno foi criptografado diretamente no AlunoDAO.
Assim:
• as demais camadas não precisam conhecer o processo criptográfico; 
• o DAO realiza criptografia e descriptografia automaticamente. 
Isso aumenta a segurança sem alterar a lógica da aplicação.
Exercícios de Fixação
1. Qual camada do MVC é responsável pela persistência de 
dados?
a) View
b) Controller
c) Model
d) Dispatcher
2. O padrão DAO serve para:
a) Criar interfaces gráficas.
b) Centralizar acesso ao banco de dados.
c) Gerenciar navegação.
d) Criar componentes visuais.
3. O padrão Template Method permite:
a) Programação sem herança.
b) Reutilizar lógica comum e especializar detalhes.
c) Eliminar classes abstratas.
d) Substituir banco de dados.
4. No Flux, quem recebe e encaminha as ações?
a) Store
b) Reducer
c) Dispatcher
d) View
5. No Redux, o estado é alterado por:
a) Dispatcher
b) Reducers
c) View
d) DAO
6. Qual característica pertence ao Redux?
a) Fluxo bidirecional.
b) Uso obrigatório de eventos personalizados.
c) Fluxo unidirecional de dados.
d) Ausência de Store.
7. O componente Store no Redux:
a) Gerencia o estado global.
b) Exibe telas.
c) Substitui reducers.
d) Cria botões.
8. Qual algoritmo é usado no exemplo de criptografia 
simétrica?
a) RSA
b) SHA1
c) AES
d) LDAP
9. Hash é utilizado principalmente para:
a) Navegação entre telas.
b) Armazenamento seguro de senhas.
c) Criação de interfaces.
d) Comunicação HTTP.
10. O EncryptedStorage é utilizado para:
a) Criar tabelas SQLite.
b) Armazenar dados criptografados com segurança.
c) Criar reducers.
d) Fazer navegação entre telas.
Gabarito
1. c 
2. b 
3. b 
4. c 
5. b 
6. c 
7. a 
8. c 
9. b 
10.b

Mais conteúdos dessa disciplina