Aula 11 - Persistência de Dados 💾
Dados Locais
Nem tudo precisa de internet. Às vezes queremos salvar preferências do usuário ou dados que funcionem offline.
1. SharedPreferences 🔑
Ideal para salvar pequenas quantidades de dados, como configurações (Ex: tema escuro, se o usuário já viu o tutorial). Salva pares de Chave-Valor.
final prefs = await SharedPreferences.getInstance();
await prefs.setBool('show_ads', false);
bool? showAds = prefs.getBool('show_ads');
2. Banco de Dados Local (SQLite) 🗄️
Para grandes volumes de dados (como uma lista de tarefas ou contatos), usamos o SQLite através do pacote sqflite.
Estrutura CRUD
- Create (Inserir)
- Read (Ler)
- Update (Atualizar)
- Delete (Excluir)
3. Fluxo de Dados Offline (Mermaid) 📊
graph LR
A[App] --> B{Tem Internet?}
B -- Sim --> C[Buscar na API]
B -- Não --> D[Buscar no Banco Local]
C --> E[Salvar no Banco Local]
D --> F[Mostrar na Tela]
E --> F
4. Instalando Pacotes (Termynal) 💻
5. Mini-Projeto: Bloco de Notas Simples 🚀
Crie um app que:
1. Permita escrever uma nota.
2. Salve a nota no SharedPreferences ao fechar o app.
3. Recupere a nota automaticamente ao abrir o app novamente.
6. Exercício de Fixação 🧠
- Quando devemos usar
SharedPreferencesem vez de um Banco de Dados SQL? - O que significa a sigla CRUD?
- Qual a principal vantagem de ter um banco de dados local no app?
Próxima Aula: Vamos aprender a Organização Profissional do Projeto! 🏛️