İçindekiler
- 1. 1. Firebase (Firestore, Realtime Database)
- 1.1. Özellikler:
- 1.2. Kurulum:
- 1.3. Örnek Kullanım (Firestore):
- 2. 2. Supabase (Firebase Alternatif Açık Kaynak)
- 2.1. Özellikler:
- 2.2. Kurulum:
- 2.3. Örnek Kullanım:
- 3. 3. Appwrite (Kendi Kendine Hosting)
- 3.1. Özellikler:
- 3.2. Kurulum:
- 3.3. Örnek Kullanım:
- 4. 4. Hive (Offline-First, Hafif NoSQL)
- 4.1. Özellikler:
- 4.2. Kurulum:
- 4.3. Örnek Kullanım:
- 5. 5. SQLite (Sqflite)
- 5.1. Özellikler:
- 5.2. Kurulum:
- 5.3. Örnek Kullanım:
- 6. 6. PocketBase (Firebase Alternatif – Self-Hosted)
- 6.1. Özellikler:
- 6.2. Kurulum (Flutter için SDK):
- 6.3. Örnek Kullanım:
1. Firebase (Firestore, Realtime Database)
Firebase, Google’ın sunduğu bir Backend-as-a-Service (BaaS) platformudur ve Flutter ile mükemmel entegrasyon sağlar.
Özellikler:
- Firestore: NoSQL, gerçek zamanlı senkronizasyon, offline destek.
- Realtime Database: JSON tabanlı, düşük gecikmeli veri senkronizasyonu.
- Authentication, Storage, Cloud Functions gibi ek hizmetler.
Kurulum:
yaml
dependencies: firebase_core: ^2.24.1 cloud_firestore: ^4.15.1 firebase_auth: ^4.18.1
Örnek Kullanım (Firestore):
dart
import 'package:cloud_firestore/cloud_firestore.dart';
// Veri ekleme
await FirebaseFirestore.instance.collection('users').add({
'name': 'Ahmet',
'email': 'ahmet@example.com',
});
// Veri okuma
FirebaseFirestore.instance.collection('users').snapshots().listen((data) {
data.docs.forEach((doc) => print(doc.data()));
});
2. Supabase (Firebase Alternatif Açık Kaynak)
Supabase, Firebase’in açık kaynaklı bir alternatifidir ve PostgreSQL tabanlıdır.
Özellikler:
- PostgreSQL tabanlı, SQL sorguları destekler.
- Realtime abonelikler (Firestore gibi).
- Auth, Storage, Edge Functions desteği.
Kurulum:
yaml
dependencies: supabase_flutter: ^2.13.0
Örnek Kullanım:
dart
import 'package:supabase_flutter/supabase_flutter.dart';
final supabase = Supabase.instance.client;
// Veri ekleme
await supabase.from('users').insert({
'name': 'Mehmet',
'email': 'mehmet@example.com',
});
// Veri okuma (realtime)
final users = supabase.from('users').stream().listen((data) {
print(data);
});
3. Appwrite (Kendi Kendine Hosting)
Appwrite, backend servislerini kolayca yönetebileceğiniz bir BaaS çözümüdür.
Özellikler:
- NoSQL veritabanı.
- Auth, Storage, Cloud Functions.
- Kendi sunucunuza kurulum yapabilirsiniz.
Kurulum:
yaml
dependencies: appwrite: ^10.1.0
Örnek Kullanım:
dart
import 'package:appwrite/appwrite.dart';
final client = Client()
.setEndpoint('https://your-appwrite-server/v1')
.setProject('your-project-id');
final databases = Databases(client);
// Veri ekleme
await databases.createDocument(
collectionId: 'users',
documentId: 'unique-id',
data: {'name': 'Ayşe'},
);
// Veri okuma
final user = await databases.getDocument(
collectionId: 'users',
documentId: 'unique-id',
);
4. Hive (Offline-First, Hafif NoSQL)
Hive, Flutter için hızlı ve offline çalışabilen bir NoSQL veritabanıdır.
Özellikler:
- Şifreleme desteği (
hive_flutter_secure_storageile). - Yüksek performans (Sqflite’den daha hızlı).
- Basit key-value storage.
Kurulum:
yaml
dependencies: hive: ^2.2.3 hive_flutter: ^1.1.0 hive_secure_storage: ^0.4.0 # Şifreleme için
Örnek Kullanım:
dart
import 'package:hive_flutter/hive_flutter.dart';
// Box (tablo) açma
var box = await Hive.openBox('userBox');
// Veri ekleme
box.put('name', 'Ali');
// Veri okuma
print(box.get('name')); // "Ali"
5. SQLite (Sqflite)
SQLite, Flutter’da yerel SQL veritabanı kullanmak için en yaygın çözümdür.
Özellikler:
- İlişkisel veritabanı (SQL sorguları).
- Offline çalışma.
- Daha karmaşık veri modelleri için uygun.
Kurulum:
yaml
dependencies: sqflite: ^2.3.0 path: ^1.8.0
Örnek Kullanım:
dart
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
final database = openDatabase(
join(await getDatabasesPath(), 'users.db'),
onCreate: (db, version) {
return db.execute(
'CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT)',
);
},
);
// Veri ekleme
await database.insert('users', {'name': 'Zeynep'});
// Veri okuma
final users = await database.query('users');
print(users);
6. PocketBase (Firebase Alternatif – Self-Hosted)
PocketBase, tek dosya halinde çalışan, SQLite tabanlı bir backend çözümüdür.
Özellikler:
- Realtime desteği.
- Auth, Dosya depolama, Admin paneli.
- Firebase benzeri API.
Kurulum (Flutter için SDK):
yaml
dependencies: pocketbase: ^0.8.0
Örnek Kullanım:
dart
import 'package:pocketbase/pocketbase.dart';
final pb = PocketBase('http://your-pocketbase-server');
// Auth işlemleri
await pb.collection('users').authWithPassword('email@example.com', 'password');
// Veri ekleme
await pb.collection('posts').create(body: {'title': 'Hello'});
// Realtime dinleme
pb.collection('posts').subscribe((e) {
print(e.action); // create, update, delete
});