Roteiro de Atividade Prática
Nome: Turma:
.
Título da atividade: Ferramentas de armazenamento
de dados e criação de banco de dados em aplicações
móveis
Pontos Principais do Conteúdo:
Explicação dos Conceitos
Ferramentas de Armazenamento de Dados: em desenvolvimento móvel, é
importante escolher a ferramenta adequada para armazenar informações
locais. Essas ferramentas variam desde simples pares chave-valor (como
SharedPreferences no Android) até bancos de dados relacionais completos,
como SQLite ou Room. O uso correto de cada ferramenta garante eficiência,
organização e escalabilidade para o aplicativo.
Criação de um Banco de Dados Básico: criar um banco de dados local, como o
Room (Android) ou Core Data (iOS), permite que aplicações móveis armazenem
e recuperem dados estruturados de maneira eficiente. Essas ferramentas
ajudam a gerenciar operações de consulta, inserção, atualização e remoção de
dados diretamente no dispositivo do usuário.
Lista de materiais
• Computador com Internet;
• Caderno para anotações;
• 1 caneta.
Atividade:
O objetivo desta atividade é:
Entender como criar e configurar um banco de dados local usando
uma ferramenta adequada para o armazenamento de dados em uma
aplicação móvel;
Implementar um banco de dados básico que permita armazenar e
consultar informações de forma eficiente, usando Room (para Android)
ou Core Data (para iOS);
Explorar as operações básicas (CRUD - Create, Read, Update, Delete)
em um banco de dados, aplicando essas operações no contexto de uma
aplicação móvel.
[SIS] [B2] [C1]
1/8
Contexto:
Você está desenvolvendo um aplicativo móvel de lista de tarefas (to-do list). O
objetivo é permitir que o usuário adicione, consulte e remova tarefas,
armazenando todas essas informações localmente no dispositivo. Sua tarefa é
criar um banco de dados básico para armazenar essas informações de forma
eficiente.
Você deverá:
Definir a estrutura da tabela que armazenará as tarefas (título e status
da tarefa);
Implementar as operações CRUD (inserir, listar, atualizar e remover
tarefas);
Utilizar o Room (no Android) ou Core Data (no iOS) para gerenciar o
banco de dados localmente.
Estrutura sugerida para a Tabela (ou Entidade):
id (int): Identificador único da tarefa;
titulo (string): Título da tarefa;
status (string): Estado da tarefa (pendente/completa).
Passos para a Implementação:
1. Configurar o ambiente e as dependências:
No Android, adicione as dependências do Room no arquivo
[Link]:
implementation "[Link]:room-runtime:2.4.2"
kapt "[Link]:room-compiler:2.4.2"
No iOS, configure o Core Data no seu projeto Xcode.
2. Definir a Entidade (Tabela):
Para Android (Room):
@Entity(tableName = "tarefas")
data class Tarefa(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
val titulo: String,
val status: String
)
Para iOS (Core Data):
[SIS] [B2] [C1]
2/8
o Use o Data Model Editor para criar a entidade Tarefa com os
atributos título e status.
3. Criar o DAO (Android - Room):
Implemente as funções de CRUD para gerenciar as tarefas.
@Dao
interface TarefaDao {
@Insert
fun inserirTarefa(tarefa: Tarefa)
@Query("SELECT * FROM tarefas")
fun obterTodasTarefas(): List<Tarefa>
@Update
fun atualizarTarefa(tarefa: Tarefa)
@Delete
fun removerTarefa(tarefa: Tarefa)
}
4. Implementar o Banco de Dados (Room ou Core Data):
No Android (Room), crie a classe AppDatabase que será o ponto de
acesso ao banco de dados.
@Database(entities = [Tarefa::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun tarefaDao(): TarefaDao
}
No iOS (Core Data), utilize o NSManagedObjectContext para inserir
e consultar as tarefas.
5. Executar as Operações CRUD:
Implemente as funções que adicionam novas tarefas, listam todas as
tarefas, atualizam o status de uma tarefa e removem tarefas.
Perguntas para Responder:
1. Qual é a vantagem de utilizar o Room ou Core Data em vez de
armazenar os dados diretamente em arquivos?
2. Quais são as diferenças entre as operações CRUD (Create, Read, Update,
Delete) e como elas são implementadas no Room/Core Data?
[SIS] [B2] [C1]
3/8
3. Como a estruturação do banco de dados local afeta a performance da
aplicação móvel?
# **Roteiro de Atividade Prática**
**Nome:** ________________________________________________________
**Turma:** ________
## **Título da Atividade:**
Ferramentas de armazenamento de dados e criação de banco de dados
em aplicações móveis
---
## **Pontos Principais do Conteúdo:**
### **Ferramentas de Armazenamento de Dados**
- **Armazenamento local** em aplicações móveis pode ser feito de
diferentes formas:
- **SharedPreferences/UserDefaults** (armazenamento simples
chave-valor).
- **SQLite** (banco de dados relacional leve).
- **Room** (biblioteca de abstração para SQLite no Android).
- **Core Data** (framework de persistência no iOS).
- A escolha da ferramenta impacta na **eficiência, organização e
escalabilidade** do app.
### **Criação de um Banco de Dados Básico**
- **Room (Android)** e **Core Data (iOS)** facilitam operações CRUD
(Create, Read, Update, Delete).
- Permitem armazenar e recuperar **dados estruturados** de forma
otimizada.
---
## **Lista de Materiais**
✅ Computador com Internet
✅ Caderno para anotações
✅ Caneta
---
## **Atividade Prática**
### **Objetivo:**
Criar um **banco de dados local** para um app de lista de tarefas (to-
do list), implementando operações **CRUD** usando **Room (Android)
ou Core Data (iOS)**.
[SIS] [B2] [C1]
4/8
### **Contexto:**
Você está desenvolvendo um app de tarefas onde o usuário pode:
✔️Adicionar novas tarefas
✔️Visualizar todas as tarefas
✔️Atualizar o status (pendente/completa)
✔️Remover tarefas
---
## **Passos para Implementação**
### **1. Configurar o Ambiente**
#### **Android (Room)**
No `[Link] (Module: app)`, adicione:
```gradle
dependencies {
implementation "[Link]:room-runtime:2.4.2"
kapt "[Link]:room-compiler:2.4.2"
}
```
#### **iOS (Core Data)**
- No Xcode, marque **"Use Core Data"** ao criar o projeto.
- Defina a entidade **Tarefa** no **Data Model Editor**.
---
### **2. Definir a Entidade (Tabela)**
#### **Android (Room)**
```kotlin
@Entity(tableName = "tarefas")
data class Tarefa(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
val titulo: String,
val status: String // "Pendente" ou "Completa"
)
```
#### **iOS (Core Data)**
- Crie a entidade `Tarefa` com atributos:
- `id` (Integer 64)
- `titulo` (String)
- `status` (String)
---
### **3. Criar o DAO (Data Access Object - Android)**
```kotlin
[SIS] [B2] [C1]
5/8
@Dao
interface TarefaDao {
@Insert
fun inserirTarefa(tarefa: Tarefa)
@Query("SELECT * FROM tarefas")
fun obterTodasTarefas(): List<Tarefa>
@Update
fun atualizarTarefa(tarefa: Tarefa)
@Delete
fun removerTarefa(tarefa: Tarefa)
}
```
---
### **4. Implementar o Banco de Dados**
#### **Android (Room)**
```kotlin
@Database(entities = [Tarefa::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun tarefaDao(): TarefaDao
}
```
#### **iOS (Core Data)**
- Use `NSManagedObjectContext` para operações CRUD.
---
### **5. Executar Operações CRUD**
- **Create (Inserir):**
```kotlin
val db = [Link](..., AppDatabase::[Link],
"tarefas_db").build()
[Link]().inserirTarefa(Tarefa(titulo = "Estudar Kotlin", status =
"Pendente"))
```
- **Read (Listar):**
```kotlin
val tarefas = [Link]().obterTodasTarefas()
```
- **Update (Atualizar):**
```kotlin
[SIS] [B2] [C1]
6/8
val tarefa = tarefas[0]
[Link] = "Completa"
[Link]().atualizarTarefa(tarefa)
```
- **Delete (Remover):**
```kotlin
[Link]().removerTarefa(tarefa)
```
---
## **Perguntas para Responder**
1. **Qual é a vantagem de usar Room/Core Data em vez de arquivos?**
- Oferecem **gerenciamento estruturado**, consultas otimizadas e
segurança de dados.
2. **Como as operações CRUD são implementadas no Room/Core Data?
**
- **Create:** `@Insert` (Room) / `[Link]()`
(Core Data).
- **Read:** `@Query` (Room) / `NSFetchRequest` (Core Data).
- **Update:** `@Update` (Room) / Modificar objeto e salvar (Core
Data).
- **Delete:** `@Delete` (Room) / `[Link]()`
(Core Data).
3. **Como a estrutura do banco de dados afeta a performance?**
- Índices e consultas bem definidas melhoram a **velocidade de
acesso**.
- Má estruturação pode causar lentidão em grandes volumes de
dados.
---
**Conclusão:**
Esta atividade permitiu entender como **banco de dados locais**
funcionam em apps móveis, aplicando **CRUD** com **Room (Android)
ou Core Data (iOS)**.
**Nome:** ________________________ **Data:** ___/___/___
**Assinatura:** ________________________
[SIS] [B2] [C1]
7/8
[SIS] [B2] [C1]
8/8