Course Code: CSE413
Course Title: Mobile Application Development
Lecture-06
Data Handling Techniques in 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
Data Handling Techniques in Flutter
Local Databases
● SQLite (via sqflite package)
○ Relational database
○ Store structured data (tables, rows, columns)
○ Use for local, persistent storage
Data Handling Techniques in 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
Data Handling Techniques in 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
Data Handling Techniques in 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.
Data Handling Techniques in Flutter
Implementation Steps
1. Add dependencies: sqflite, path_provider
2. Create database helper class
3. Perform CRUD operations
Data Handling Techniques in 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});
Data Handling Techniques in 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
Data Handling Techniques in Flutter
Code
var box = await Hive.openBox('myBox');
box.put('name', 'Alice');
print(box.get('name'));
Data Handling Techniques in 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
Data Handling Techniques in 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));
Data Handling Techniques in 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
Data Handling Techniques in Flutter
Code
FirebaseFirestore.instance.collection('users').add({'name': 'Alice', 'age':
25});
Data Handling Techniques in 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.
Thank You

Lecture 06 - Data Handling in Flutter.pdf

  • 1.
    Course Code: CSE413 CourseTitle: Mobile Application Development Lecture-06
  • 2.
    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.
  • 16.