Logo Passei Direto
Buscar

resumão estrategico Deep Seek

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

Prévia do material em texto

🎯 TOP 10 - O QUE MAIS CAI NA PROVA
🧠 RESUMÃO POR MÓDULO
📦 MÓDULO 1 - SINTAXE E COMPONENTES BÁSICOS
# Assunto O que decorar
1 Async/await vs Promises
async  define função,  await  espera, 
then()  encadeia
2 Componentes de lista
FlatList (simples), SectionList (seções), 
keyExtractor
3 Navegação
Stack (pilha), Tab (abas), Drawer
(menu lateral)
4 SQLite
transaction() ,  executeSql() ,
parâmetros  ?
5 Realm
write() ,  create() , 
objectForPrimaryKey()
6 MongoDB Operadores:  $gt ,  $lt ,  $in ,  $all
7 Fetch vs Axios
Fetch:  .json()  manual; Axios: 
response.data  direto
8 Redux
View → Action → Reducer → Store
(sem Dispatcher!)
9 Criptografia
AES (simétrica), Base64 (codificação),
Hash (irreversível)
10 Jest
test() ,  expect() ,  .toBe() , 
.toBeGreaterThan()
🔹 Hierarquia de componentes
🔹 JSX
Extensão do JavaScript que combina lógica + markup
Não é HTML! (é transformado em JavaScript)
🔹 Componentes nativos
  = container (div do HTML)
  = texto
  = conteúdo rolável
  = lista otimizada
  = lista com seções
🧭 MÓDULO 2 - NAVEGAÇÃO
🔹 Stack Navigator (pilha de telas)
🔹 Tab Navigator (abas inferiores)
 {/* Container */}
 Texto {/* Texto não herda cor de fundo! */}
 
 
javascript
javascript
javascript
🔹 Drawer Navigator (menu lateral)
🔹 Combinação de navegadores
📋 MÓDULO 3 - COMPONENTES DE LISTA
🔹 FlatList (lista simples)
🔹 SectionList (lista com seções)
 
 
// Drawer contém Tab que contém Stack
 
 }
 keyExtractor={item => item.id.toString()} {/* ESSENCIAL! */}
/>
javascript
javascript
javascript
javascript
💾 MÓDULO 4 - PERSISTÊNCIA DE DADOS
🔹 AsyncStorage (chave-valor)
🔹 SQLite (relacional)
const DADOS = [
 { titulo: 'Eletrônicos', data: ['TV', 'Rádio'] },
 { titulo: 'Vestuário', data: ['Camisa', 'Calça'] }
];
 {item}}
 renderSectionHeader={({section}) => 
 {section.titulo}}
/>
// Salvar (sempre serializar!)
const salvar = async (chave, valor) => {
 await AsyncStorage.setItem(chave, JSON.stringify(valor));
};
// Recuperar
const recuperar = async (chave) => {
 const json = await AsyncStorage.getItem(chave);
 return json ? JSON.parse(json) : null;
};
openDatabase({name: 'db.db'}).then(db => 
 db.transaction(tx => 
 tx.executeSql(
 'INSERT INTO alunos (nome) VALUES (?)', // ? = placeholder
 ['João'] // parâmetros
 )
javascript
javascript
🔹 Realm (orientado a objetos)
🔹 MongoDB (NoSQL)
📡 MÓDULO 5 - CONEXÃO REMOTA
🔹 Fetch API (nativo)
 )
);
// Buscar e alterar (dentro de write!)
db.write(() => {
 let aluno = db.objectForPrimaryKey('Aluno', 123);
 aluno.nome = 'Novo Nome'; // alteração automática!
});
// Inserir
db.write(() => {
 db.create('Aluno', { nome: 'João' });
});
// Operadores importantes
db.colecao.find({ idade: { $gt: 18 } }); // maior que
db.colecao.find({ idade: { $lt: 60 } }); // menor que
db.colecao.find({ tags: { $in: ['a', 'b'] } }); // qualquer um
db.colecao.find({ tags: { $all: ['a', 'b'] } }); // todos!
// GET
fetch('https://api.com/users')
 .then(res => res.json()) // ⚠ precisa converter!
 .then(data => setData(data))
javascript
javascript
javascript
🔹 Axios (biblioteca externa)
🔹 OAuth2
Elementos: Cliente, Servidor de Recursos, Servidor de Autorização, Token
Código 401 = Unauthorized (token ausente/inválido)
Bearer Token = formato  Authorization: Bearer token
🏗 MÓDULO 6 - ARQUITETURAS
 .catch(err => console.log(err));
// POST
fetch('https://api.com/users', {
 method: 'POST',
 headers: { 'Content-Type': 'application/json' },
 body: JSON.stringify({ nome: 'João' })
});
// Instalar: npm install axios
import axios from 'axios';
// GET
axios.get('/users')
 .then(res => setData(res.data)) // ✅ já vem convertido!
 .catch(err => console.log(err));
// POST
axios.post('/users', { nome: 'João' });
// Com token (autenticação)
axios.post('/users', dados, {
 headers: { 'Authorization': `Bearer ${token}` }
});
javascript
🔹 MVC (Model-View-Controller)
Model: persistência (DAO)
View: interface (telas)
Controller: regras de negócio
🔹 DAO Genérico (Template Method)
🔹 Flux (Facebook)
Dispatcher existe! (central de distribuição)
Store tem dados + lógica + eventos
🔹 Redux (evolução do Flux)
Dispatcher NÃO existe! (Store faz o despacho)
Store única (fonte de verdade)
abstract class GenericDAO {
 abstract getInsertSQL(): string;
 abstract getInsertParams(entidade: T): any[];
 
 incluir(entidade: T) {
 db.transaction(tx => 
 tx.executeSql(this.getInsertSQL(), this.getInsertParams(entidade))
 );
 }
}
View → Action → Dispatcher → Store → View
View → Action → Reducer → Store → View
javascript
text
text
Reducer = função pura que modifica estado
createStore() = cria a store
🔐 MÓDULO 7 - CRIPTOGRAFIA
🔹 Tipos
🔹 AES com CryptoJS
// Action
{ type: 'CRIAR_ALUNO', payload: { aluno } }
// Reducer
const reducer = (state = [], action) => {
 switch(action.type) {
 case 'CRIAR_ALUNO':
 return [...state, action.payload.aluno];
 default: return state;
 }
};
// Store
const store = createStore(reducer);
store.subscribe(() => setData(store.getState()));
store.dispatch({ type: 'CRIAR_ALUNO', payload: { aluno } });
Tipo Característica Exemplos
Codificação Reversível, sem chave Base64
Simétrica Mesma chave AES, 3DES
Assimétrica Par de chaves RSA
Hash Irreversível MD5, SHA
javascript
javascript
🔹 Hash com Expo
🔹 Base64 (só codificação!)
🧪 MÓDULO 8 - TESTES E PERFORMANCE
import CryptoJS from 'react-native-crypto-js';
// Gerar IV aleatório (ESSENCIAL!)
const iv = CryptoJS.lib.WordArray.random(16);
const key = CryptoJS.lib.WordArray.random(16);
// Criptografar
const cripto = CryptoJS.AES.encrypt(texto, key, { iv });
const base64 = cripto.toString();
// Decriptografar
const bytes = CryptoJS.AES.decrypt(base64, key, { iv });
const original = bytes.toString(CryptoJS.enc.Utf8);
import * as Crypto from 'expo-crypto';
const hash = await Crypto.digestStringAsync(
 Crypto.CryptoDigestAlgorithm.SHA512,
 senha,
 { encoding: Crypto.CryptoEncoding.BASE64 }
);
import base64 from 'react-native-base64';
const texto = 'Olá';
const codificado = base64.encode(texto); // T2zDoQ==
const decodificado = base64.decode(codificado); // Olá
javascript
javascript
🔹 Jest (testes unitários)
🔹 Mock (simular servidor)
🔹 Problemas de performance
Memory leak = vazamento de memória (não libera memória alocada)
Soluções: FlatList, React.memo, remover console.log, motor Hermes
🔹 Motor Hermes (otimizado)
test('descrição', () => {
 const resultado = somar(2, 2);
 expect(resultado).toBe(4); // igualdade
 expect(resultado).toBeGreaterThan(3); // maior que
 expect(resultado).toBeLessThan(5); // menor que
});
// Com async
test('async', async () => {
 const data = await buscarDados();
 expect(data).toHaveProperty('usuarios');
});
jest.mock('axios');
axios.get.mockImplementation(() => 
 Promise.resolve({ data: [{ id: 1, nome: 'João' }] })
);
// Android: android/app/build.gradle
project.ext.react = [ enableHermes: true ]
javascript
javascript
javascript
📦 MÓDULO 9 - SEGURANÇA(LABORATÓRIOS)
🔹 Tríade CID
Confidencialidade: só quem pode ver, vê
Integridade: dados não são alterados indevidamente
Disponibilidade: informação acessível quando necessário
🔹 MDM (Mobile Device Management)
Gerencia dispositivos móveis remotamente
Permite limpeza remota (wipe) em caso de perda/roubo
Essencial para trabalho remoto
🔹 Protocolos
HTTPS = HTTP + SSL/TLS (seguro) ✅
HTTP = sem criptografia ❌
FTP = transferência de arquivos ❌
🔹 Armazenamento no navegador
Cache: armazena recursos (imagens, scripts) ✅
Cookies: pequenos arquivos de sessão
Histórico: apenas URLs visitadas
🔹 Engenharia social
Informações "inofensivas" podem quebrar senhas fracas
Data de nascimento, nomes de familiares...
// Expo: app.json
{ "android": { "jsEngine": "hermes" } }
🚨 DECOREBA DE ÚLTIMA HORA
🌟 MANTRA PARA PROVA
╔═══════════════════════════════════════════════════════════════╗
║ DECORE PARA A PROVA! ║
╠═══════════════════════════════════════════════════════════════╣
║ ║
║ 🔸 AsyncStorage: setItem / getItem + JSON.stringify ║
║ 🔸 SQLite: transaction / executeSql / ? como parâmetro ║
║ 🔸 Realm: write() / create() / objectForPrimaryKey() ║
║ 🔸 MongoDB: $gt (maior), $lt (menor), $in, $all ║
║ 🔸 Fetch: .json() manual / Axios: .data direto ║
║ 🔸 OAuth2: 401 = Unauthorized (token inválido) ║
║ 🔸 Redux: createStore() / dispatch() / getState() ║
║ 🔸 Redux NÃO TEM Dispatcher! (Flux tem) ║
║ 🔸 AES: IV aleatório + mesma chave (simétrica) ║
║ 🔸 Jest: expect().toBe() / toBeGreaterThan() ║
║ 🔸 Listas: FlatList + keyExtractor OBRIGATÓRIO! ║
║ 🔸 Navegação: aninhar no atributo "component" ║
║ 🔸 Memory leak = vazamento de memória ║
║ 🔸 Hermes = motor JS otimizado ║
║ 🔸 MDM: permite limpeza remota (wipe) ║
║ 🔸 HTTPS = seguro / HTTP = inseguro ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
"Async define função, await espera dentro dela"
"FlatList precisa de keyExtractor"
"Redux não tem Dispatcher, Flux tem"
"401 é token inválido"
"IV aleatório no AES"
"toBeGreaterThan é maior que"
"Memory leak é vazamento de memória"
"HTTPS é seguro, HTTP não"
text
text
VOCÊ CONSEGUE! Confia no que estudou, mesmo que pareça pouco! 🌟
Lembre-se: respira fundo, lê cada questão com calma e elimina as alternativas erradas primeiro!
BOA PROVA! 🍀📱✨ Volta depois pra contar como foi!
não esquecer das questoes com gabarito e comentado
📚 TODAS AS QUESTÕES COM GABARITO COMENTADO
Compilado Completo para Revisão de Última Hora!
Aqui estão TODAS as questões que apareceram nos seus materiais, com gabarito comentado para
você revisar rapidinho! ✅
🧩 QUESTÕES DE SINTAXE E COMPONENTES
Q1: React Developer Tools
Enunciado: A respeito do React Developer Tools, é correto afirmar que:
✅ Alternativa Correta:
"Permite depurar aplicativos por meio do próprio dispositivo móvel ou de sua interface gráfica, que
é aberta após a inicialização da ferramenta."
📝 Comentário: O React Developer Tools é uma ferramenta poderosa para inspecionar hierarquia de
componentes, estados e props. Pode ser usada tanto no dispositivo móvel quanto na interface gráfica
do navegador.
Q2: Componentes Nativos Android
Enunciado: Indique a opção correspondente à lista de componentes nativos existentes na plataforma
Android.
✅ Alternativa Correta:
, , , , 
📝 Comentário: No React Native, os componentes são abstrações dos componentes nativos. 
  = ViewGroup,   = TextView,   = ImageView,   = EditText, 
  = ScrollView.
Q3: JSX (Linguagem do React Native)
Enunciado: A linguagem utilizada no framework React Native é a JSX. A respeito dela, podemos
afirmar que...
✅ Alternativa Correta:
"JSX é uma sintaxe de extensão da linguagem JavaScript que possui familiaridade com a XML. Tal
linguagem combina a lógica de componentes presente no JS e o mark-up DOM em um único
código."
📝 Comentário: JSX não é HTML! É uma extensão de sintaxe do JavaScript que permite escrever
código similar a XML/HTML, mas que é transformado em JavaScript puro.
Q4: Hierarquia de Componentes
Enunciado: Analise o fragmento de código a seguir e assinale a afirmativa que corresponde à saída
dele:
✅ Alternativa Correta:
"Será exibido na tela o conteúdo do componente  , ou seja, 'Texto', em fonte de cor preta,
dentro de um retângulo com background de cor vermelha - herdado da   que contém o 
 ."
return (
 
 Texto
 
);
javascript
📝 Comentário: O   NÃO herda a cor de fundo do pai. Ele mantém sua cor padrão (preta) e
fica dentro da área vermelha da View.
📋 QUESTÕES DE LISTAS
Q5: keyExtractor no FlatList
Enunciado: Se o campo de identificação da entidade não seguir o padrão do FlatList, você deverá
associar um método para extração da chave a qual atributo do componente?
✅ Alternativa Correta:
keyExtractor
📝 Comentário:  keyExtractor  é a propriedade usada para extrair uma chave única de cada item da
FlatList. Isso é ESSENCIAL para performance e para o React identificar quais itens mudaram.
Q6: SectionList - Propriedade sections
Enunciado: Considerando as propriedades do SectionList, assinale a alternativa que define a
estrutura dos dados e o agrupamento dos itens em seções.
✅ Alternativa Correta:
sections
📝 Comentário: A propriedade  sections  recebe um array de objetos com  title  (ou campo
definido) e  data  (array de itens da seção). É OBRIGATÓRIA no SectionList.
Q7: Componentes de Lista - Características
Enunciado: Indique qual afirmativa está correta em relação aos componentes de lista disponíveis em
React Native.
✅ Alternativa Correta:
"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."
📝 Comentário: FlatList, SectionList e VirtualizedList são OTIMIZADOS para performance com
grandes volumes de dados, usando virtualização (só renderizam o que aparece na tela).
🧭 QUESTÕES DE NAVEGAÇÃO
Q8: Combinação de Navegadores
Enunciado: Há três principais modelos de navegação disponíveis em React Native. Sobre esses
modelos e sua utilização em conjunto, aponte a alternativa verdadeira.
✅ Alternativa Correta:
"É possível utilizar um ou mais modelos de navegação em conjunto em um aplicativo mobile. Para
isso, os containers de cada modelo de navegação deverão ser inseridos, no atributo 'component',
na definição dos itens (screens) de outro modelo."
📝 Comentário: A combinação é feita ANINHANDO navegadores, por exemplo: um Tab Navigator
dentro de um Stack Navigator, passando o Tab como  component  do Stack.
💾 QUESTÕES DE PERSISTÊNCIA
Q9: Programação Assíncrona
Enunciado: Analise as afirmativas acerca da programação assíncrona no React Native:
I - O retorno de uma função assíncrona deve ser um objeto da classe Promise.
II - Uma função assíncrona deve ser definida com o uso da palavra await.
III - Utilizando o operador then, o retorno da função assíncrona é repassado para o fluxo seguinte.
✅ Alternativa Correta:
"Somente I e III estão corretas."
📝 Comentário: A afirmativa II está ERRADA! Funções assíncronas são definidas com  async , não
com  await . O  await  é usado DENTRO de funções async.
Q10: SQLite - Código de Inserção
Enunciado: Observe o fragmento de código:
Qual será o resultado da execução?
✅ Alternativa Correta:
"Uma conexão será obtida de forma assíncrona, sendo utilizada, a seguir, para iniciaruma
transação e, a partir dela, inserir um registro no banco de dados."
📝 Comentário:  openDatabase  é ASSÍNCRONO (retorna Promise).  transaction  inicia transação, 
executeSql  com  ?  usa parâmetros seguros.
Q11: SQLite - Tabela de Autoincremento
Enunciado: Qual das tabelas de catálogo do SQLite está associada ao controle dos valores de
autoincremento?
✅ Alternativa Correta:
sqlite_sequence
openDatabase({name: "Escola.db"}).then((db) => 
 db.transaction((tx) => 
 tx.executeSql(
 "INSERT INTO ALUNOS (MATRICULA, NOME) VALUES (?, ?)",
 [120076, "Luiz Paulo"]
 )
 )
);
javascript
📝 Comentário: A tabela  sqlite_sequence  armazena o ÚLTIMO VALOR usado para colunas
AUTOINCREMENT em cada tabela.
Q12: Realm - Atualização de Objeto
Enunciado:
Qual será o resultado?
✅ Alternativa Correta:
"Um aluno é recuperado a partir da chave, tendo seu nome e sala alterados."
📝 Comentário:  objectForPrimaryKey  BUSCA pela chave. Dentro de  write() , alterações são
PERSISTIDAS automaticamente ao final do bloco.
Q13: Realm - Método create
Enunciado: Qual método da classe Realm seria utilizado para acrescentar um objeto a uma coleção
do banco?
✅ Alternativa Correta:
create
📝 Comentário:  realm.create('Classe', objeto)  ADICIONA novo objeto.  write  inicia
transação,  commitTransaction  confirma,  beginTransaction  inicia.
Q14: MongoDB - Operador $all
db.write(() => {
 let obj = db.objectForPrimaryKey("Aluno", 2012981);
 obj.nome = "Ana Maria";
 obj.sala = "102E";
});
javascript
Enunciado:
Qual o resultado?
✅ Alternativa Correta:
"Recuperação dos documentos referentes às vendas, em que, no pagamento, foi utilizado dinheiro,
e a movimentação ocorreu no dia corrente." (adaptado)
📝 Comentário: O operador  $all  retorna documentos onde o campo ARRAY contém TODOS os
valores especificados. Diferente de  $in  (qualquer um).
Q15: MongoDB - MongoDB Compass
Enunciado: Qual a opção correta acerca do MongoDB?
✅ Alternativa Correta:
"Oferece o aplicativo gráfico MongoDB Compass para a gerência da base."
📝 Comentário: MongoDB Compass é a ferramenta GRÁFICA oficial para administrar bancos
MongoDB.
Q16: MongoDB - Banco NoSQL Documental
Enunciado: Qual das opções se refere a um banco de dados NoSQL baseado em documentos?
✅ Alternativa Correta:
MongoDB
📝 Comentário: MongoDB é o principal exemplo de banco NoSQL orientado a DOCUMENTOS
(JSON).
db.inventario.find({
 cores: { $all: ['vermelho', 'azul'] }
});
javascript
📡 QUESTÕES DE CONEXÃO REMOTA
Q17: Fetch vs Axios
Enunciado: A resposta de uma requisição realizada com a biblioteca Axios pode ser acessada através
do objeto:
✅ Alternativa Correta:
Response.data
📝 Comentário: No Axios, os dados retornados estão em  response.data . Fetch usa 
response.json()  para converter.
Q18: Elementos de uma Requisição POST
Enunciado: Considerando o cenário em que uma conexão remota é estabelecida para persistência de
dados, assinale a alternativa que corresponda aos elementos que deverão estar presentes na
requisição:
✅ Alternativa Correta:
"Um componente React Native para realizar a conexão, os dados do produto, o endereço do
recurso externo e a definição do método HTTP."
📝 Comentário: Elementos OBRIGATÓRIOS: componente de conexão (Fetch/Axios), URL, método
HTTP (GET/POST), dados (body). Headers são opcionais (JSON é padrão).
Q19: Tratamento de Erros 401
Enunciado: Qual o retorno da requisição dentro do aplicativo mobile caso o token ou as credenciais
de acesso não sejam enviados ou estejam errados?
✅ Alternativa Correta:
"Caso a requisição seja tratada em um bloco 'catch' – ou com código/lógica equivalente a ele – será
possível obter o erro HTTP correspondente (normalmente o código 401 – Unauthorized)."
📝 Comentário: Código 401 = Unauthorized (token ausente/inválido). 403 =
Forbidden (autenticado mas sem permissão).
Q20: Métodos HTTP para Atualização
Enunciado: Considerando um aplicativo onde uma requisição remota é realizada para a atualização
de dados, podemos utilizar:
✅ Alternativa Correta:
"Podem ser usados os verbos POST ou PUT, sendo este último o mais recomendado, além de
utilizado para esse fim."
📝 Comentário: Por convenção REST: PUT = atualização completa, POST = criação. Mas ambos
podem ser usados dependendo da API.
Q21: Método HTTP - Identificação
Enunciado: Marque a opção que corresponda a um dos métodos HTTP:
✅ Alternativa Correta:
PUT
📝 Comentário: PUT, GET, POST, DELETE são métodos HTTP. IMAP, POP são protocolos de email. STP
não existe.
Q22: AJAX - Formatos Suportados
Enunciado: Em relação à tecnologia AJAX, podemos afirmar que:
✅ Alternativa Correta:
"Pode receber informações em uma variedade de formatos, incluindo JSON, XML e Texto puro."
📝 Comentário: AJAX (Asynchronous JavaScript and XML) pode lidar com MÚLTIPLOS formatos, não
apenas XML.
🏗 QUESTÕES DE ARQUITETURAS
Q23: Padrão DAO - obterTodos
Enunciado: De acordo com o padrão DAO, qual seria o comando SQL associado ao método
obterTodos?
✅ Alternativa Correta:
SELECT
📝 Comentário:  obterTodos  recupera TODOS os registros → usa SELECT. INSERT (incluir), DELETE
(excluir), UPDATE (alterar), CREATE (criar tabela).
Q24: Arquitetura Flux - Função da Store
Enunciado: O componente Store na arquitetura Flux é utilizado para:
✅ Alternativa Correta:
"Receber as solicitações e executar processos sobre os dados."
📝 Comentário: No Flux: Action cria pacote, Dispatcher distribui, Store contém dados + lógica, View
exibe.
Q25: Componentes do Redux
Enunciado: Os componentes que fazem parte da arquitetura Redux são:
✅ Alternativa Correta:
View, Action, Store e Reducer
📝 Comentário: Redux TEM: View, Action, Store, Reducer. NÃO TEM Dispatcher! (essa é a diferença
pro Flux).
Q26: Redux - createStore
Enunciado: Qual método deve ser utilizado para a criação do componente Store na arquitetura
Redux?
✅ Alternativa Correta:
createStore
📝 Comentário:  createStore(reducer)  CRIA a Store.  dispatch  envia ações,  getState  obtém
estado,  subscribe  registra listeners.
🔐 QUESTÕES DE CRIPTOGRAFIA
Q27: AES com CryptoJS
Enunciado: Como podemos utilizar o algoritmo AES no desenvolvimento com React Native usando
CryptoJS?
✅ Alternativa Correta:
"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."
📝 Comentário: CryptoJS expõe métodos  encrypt  e  decrypt  no módulo AES. IV (vetor de
inicialização) é OBRIGATÓRIO para segurança.
Q28: IV Aleatório no CryptoJS
Enunciado: Qual comando seria utilizado para criar um IV formado por valores aleatórios?
✅ Alternativa Correta:
CryptoJS.lib.WordArray.random(16)
📝 Comentário:  WordArray.random(tamanho)  gera bytes ALEATÓRIOS. IV de 16 bytes é comum
para AES.
Q29: Base64 - Codificação
Enunciado: 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?
✅ Alternativa Correta:
Base64
📝 Comentário: Base64 é um algoritmo de CODIFICAÇÃO, NÃO criptografia! Converte binário para
texto sem usar chave.
Q30: Criptografia Simétrica
Enunciado: O algoritmo 3DES caracteriza-se por ser um processo reversível, em que uma mesma
chave é utilizada para criptografar e para recuperar os dados originais. Esse tipo de processo é
conhecido como:
✅ Alternativa Correta:
"Criptografia simétrica"
📝 Comentário: Simétrica = mesma chave (secret key). Assimétrica = par de chaves
(pública/privada). Hash = irreversível.
Q31: Expo Crypto - digestStringAsync
Enunciado: No ambiente do Expo, qual seria o comando necessário para a geração de um hash de
forma assíncrona?
✅ Alternativa Correta:
digestStringAsync
📝 Comentário:  digestStringAsync(algoritmo, texto, opções)  gera hash. Algoritmos: SHA512,
SHA256, MD5. Encoding: BASE64, HEX.
🧪 QUESTÕES DE TESTES E PERFORMANCEQ32: Jest - toBeGreaterThan
Enunciado:
Qual será o resultado?
✅ Alternativa Correta:
"O teste será executado com sucesso, pois o resultado da soma será maior que o valor de teste
utilizado."
📝 Comentário: 10+5 = 15, e 15 > 1, então  toBeGreaterThan(1)  retorna TRUE.
Q33: Operadores do Jest
Enunciado: Qual dos operadores seria utilizado para verificar se o valor resultante é igual ao
esperado?
✅ Alternativa Correta:
toBe
📝 Comentário:  toBe  = igualdade estrita.  toEqual  = igualdade de objetos.  toBeGreaterThan  =
maior que.  toBeLessThan  = menor que.
Q34: Memory Leak
Enunciado: Qual das alternativas define um problema relacionado ao consumo de memória?
function somar(a,b) { return a+b; }
test('Teste com a Soma', () => {
 const result = somar(10,5);
 expect(result).toBeGreaterThan(1);
});
javascript
✅ Alternativa Correta:
Memory leak
📝 Comentário: Memory leak = VAZAMENTO de memória (não libera memória alocada). Deadlock =
travamento. Starvation = falta de recursos.
Q35: Testes com Mock
Enunciado: Qual instrumento de programação poderia ser utilizado para viabilizar testes de conexão
com servidor antes da implementação?
✅ Alternativa Correta:
Componente mock
📝 Comentário: Mocks simulam comportamentos de servidores/APIs SEM necessidade de
implementação real.  jest.mock()  +  mockImplementation() .
Q36: Melhoria de Performance
Enunciado: Técnica simples que pode melhorar o consumo de memória e o tempo de resposta:
✅ Alternativa Correta:
"Substituir o motor de execução JavaScript pelo Hermes."
📝 Comentário: Hermes é um motor JavaScript OTIMIZADO para React Native, reduzindo consumo
de memória e tempo de inicialização.
🔒 QUESTÕES DE SEGURANÇA (LABORATÓRIOS)
Q37: Definição de Segurança da Informação
Enunciado: Considerando a segurança da informação, marque a definição correta:
✅ Alternativa Correta:
"A segurança da informação trata de métodos e técnicas para proteger a informação, que é um
bem de alto valor na organização."
📝 Comentário: A informação é considerada um ATIVO valioso - "o novo petróleo" da era digital.
Q38: Tríade CID
Enunciado: Os três atributos fundamentais da segurança da informação são:
✅ Alternativa Correta:
"Confidencialidade, integridade e disponibilidade."
📝 Comentário: Tríade CID: Confidencialidade (só quem pode ver), Integridade (não alterado),
Disponibilidade (acessível quando necessário).
Q39: MDM - Definição
Enunciado: Assinale a alternativa correta sobre sistemas MDM:
✅ Alternativa Correta:
"O MDM serve para realizar o gerenciamento de dispositivos móveis e manter uma certa proteção
e monitoramento de dados em nuvens, o que pode ser utilizado em trabalho remoto."
📝 Comentário: MDM (Mobile Device Management) permite gerenciar remotamente
smartphones/tablets, aplicar políticas e fazer WIPE remoto.
Q40: MDM - Limpeza Remota
Enunciado: Entre os vários serviços possíveis de se realizar pelo sistema MDM, um deles é o
rastreamento. Outro serviço é:
✅ Alternativa Correta:
"O MDM permite a limpeza dos dados e da conta do usuário em um determinado dispositivo
móvel."
📝 Comentário: WIPE REMOTO (limpeza remota) é ESSENCIAL em caso de perda/roubo para evitar
vazamento de dados.
Q41: Protocolo Seguro
Enunciado: Para estabelecer a conexão com o serviço, o web service precisa utilizar um protocolo de
internet seguro. Qual?
✅ Alternativa Correta:
HTTPS
📝 Comentário: HTTPS = HTTP + SSL/TLS (criptografado). HTTP é inseguro (texto puro). FTP é
transferência de arquivos.
Q42: Armazenamento em Navegadores
Enunciado: Os aplicativos web conectados por meio de navegadores armazenam informações para
correto funcionamento. O mecanismo correto é:
✅ Alternativa Correta:
Cache
📝 Comentário: Cache armazena RECURSOS (imagens, scripts). Cookies são pequenos arquivos de
sessão. Histórico só guarda URLs.
Q43: Ambiente de Controle do Gestor
Enunciado: Em que ambiente o gestor de segurança de TI tem melhor controle de dispositivos como
tablets e smartphones?
✅ Alternativa Correta:
"Nos domínios da empresa."
📝 Comentário: Dentro da empresa o gestor controla acesso, instalações, firewalls, políticas. Fora
(casa do usuário) o controle é limitado.
Q44: Informações Aparentemente Inofensivas
Enunciado: Até mesmo aquela informação aparentemente inofensiva pode ser a chave para segredos
de grande valor da empresa. Isso se refere a:
✅ Alternativa Correta:
"Engenharia social"
📝 Comentário: Engenharia social usa informações "banais" (data de nascimento, nomes) para
quebrar senhas e obter acesso.
Q45: Origens de Brechas de Segurança
Enunciado: As brechas de segurança podem surgir em:
✅ Alternativa Correta:
"Software mal configurados ou mal desenvolvidos e por meio das informações pessoais de um
funcionário."
📝 Comentário: Vulnerabilidades podem ser TÉCNICAS (software) ou HUMANAS (engenharia
social). Não só portas abertas!
📊 ESTATÍSTICAS ESET 2020
Q46: Dados de Ataques
Enunciado: Qual das alternativas faz parte da lista da ESET sobre segurança cibernética em 2020?
✅ Alternativa Correta:
"Mais de 95 milhões de ataques direcionados a aplicativos da web são registrados por dia, e mais
de 1,5 milhão desses ataques são injeção de SQL."
📝 Comentário: DECORE: 95 milhões de ataques/dia, 1,5 milhão são SQL injection. Fonte: relatório
DBIR da Verizon.
⚡ SUPER RESUMÃO VISUAL
┌─────────────────────────────────────────────────────────────────┐
│ FÓRMULAS MÁGICAS DA PROVA │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 🟦 ASYNC: async (define) / await (espera) / then (encadeia) │
│ 🟦 LISTAS: FlatList + keyExtractor = OBRIGATÓRIO │
│ 🟦 SQLite: transaction + executeSql + ? (parâmetros) │
│ 🟦 Realm: write() + create() / objectForPrimaryKey() │
│ 🟦 MongoDB: $gt (maior), $lt (menor), $in, $all (todos) │
│ 🟦 FETCH: .json() MANUAL / AXIOS: .data AUTOMÁTICO │
│ 🟦 OAUTH2: 401 = Unauthorized (token inválido) │
│ 🟦 REDUX: createStore() + dispatch() + getState() │
│ 🟦 REDUX NÃO TEM DISPATCHER (FLUX TEM!) │
│ 🟦 AES: IV aleatório + mesma chave (SIMÉTRICA) │
│ 🟦 BASE64: codificação (NÃO é criptografia!) │
│ 🟦 JEST: expect().toBe() / toBeGreaterThan() │
│ 🟦 MEMORY LEAK = vazamento de memória │
│ 🟦 HERMES = motor JS otimizado │
│ 🟦 MDM: limpeza remota (wipe) │
│ 🟦 HTTPS = seguro / HTTP = inseguro │
│ 🟦 CACHE = recursos / COOKIES = sessão │
│ 🟦 TRÍADE CID: Confidencialidade, Integridade, Disponibilidade │
│ │
└─────────────────────────────────────────────────────────────────┘
text

Mais conteúdos dessa disciplina