Data Handling Techniquesin Flutter
Why Use Databases in Flutter?
● Persistent storage for user data
● Offline access to critical app data
● Optimized performance for structured/unstructured data
● Seamless integration with Flutter
3.
Data Handling Techniquesin Flutter
Local Databases
● SQLite (via sqflite package)
○ Relational database
○ Store structured data (tables, rows, columns)
○ Use for local, persistent storage
4.
Data Handling Techniquesin Flutter
Local Databases
● Hive (via hive package)
○ NoSQL database
○ Key-value store for simple, fast storage
○ Best for lightweight data storage
● Moor (via moor package)
○ SQLite wrapper with reactive streams
○ Ideal for more complex queries and real-time updates
5.
Data Handling Techniquesin Flutter
Remote Databases
● Firebase Firestore
○ Cloud-based NoSQL database
○ Real-time sync across devices
○ Automatic scaling
● REST API (via http package) (Representational State Transfer API)
○ Network-based data exchange
○ Communicate with external servers
6.
Data Handling Techniquesin Flutter
a. SQLite (via sqflite package)
● Description: SQLite is a self-contained, serverless relational
database. It stores structured data (tables, rows, columns) locally on
the device.
● Use Case: Use SQLite when you need to store relational data like
user information, app settings, or any structured data.
7.
Data Handling Techniquesin Flutter
Implementation Steps
1. Add dependencies: sqflite, path_provider
2. Create database helper class
3. Perform CRUD operations
8.
Data Handling Techniquesin Flutter
Code
final db = await openDatabase('app.db', version: 1, onCreate: (db, version) {
return db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)');
});
await db.insert('users', {'name': 'Alice', 'age': 25});
9.
Data Handling Techniquesin Flutter
Hive – NoSQL Key-Value Storage
● Fast and lightweight storage
● Stores data as key-value pairs (NoSQL)
● Good for caching and offline storage
Implementation Steps
1. Add dependencies: hive, hive_flutter
2. Initialize Hive
3. Store and retrieve data
10.
Data Handling Techniquesin Flutter
Code
var box = await Hive.openBox('myBox');
box.put('name', 'Alice');
print(box.get('name'));
11.
Data Handling Techniquesin Flutter
ObjectBox – Fast NoSQL Database
● High-performance database optimized for mobile
● Faster than SQLite & Hive
● Uses objects instead of tables/keys
Implementation Steps
1. Add dependencies: objectbox
2. Define entity models
3. Insert and query data
12.
Data Handling Techniquesin Flutter
Code
@Entity()
class User {
int id = 0;
String name;
int age;
User({required this.name,
required this.age});
}
var box = store.box<User>();
box.put(User(name: 'Alice', age: 25));
13.
Data Handling Techniquesin Flutter
Firebase Firestore – Cloud NoSQL Database
● Stores and syncs data in real-time
● Ideal for multi-user apps (Like: Chat, Social Media)
● NoSQL JSON-based document storage
Implementation Steps
1. Add dependencies: firebase_core, cloud_firestore
2. Initialize Firebase
3. Perform CRUD operations
14.
Data Handling Techniquesin Flutter
Code
FirebaseFirestore.instance.collection('users').add({'name': 'Alice', 'age':
25});
15.
Data Handling Techniquesin Flutter
Choosing the Right Database
● Use SQLite if you need structured data with relationships.
● Use Hive for fast, lightweight key-value storage.
● Use ObjectBox for high-performance NoSQL needs.
● Use Firestore for cloud-based real-time apps.