ExpoAdvanced
expo-sqlite — local SQL database
AsyncStorage-এর পরের ধাপ — expo-sqlite দিয়ে structured data।
5টি অংশবাংলা ভাষায়
বড়/relational data-তে AsyncStorage-এর চেয়ে `expo-sqlite` উপযুক্ত — full SQL।
terminalbash
bash
npx expo install expo-sqlitelib/db.tsts
ts
import * as SQLite from "expo-sqlite";
const db = SQLite.openDatabaseSync("tasktrack.db");
export function setup() {
const sql =
"CREATE TABLE IF NOT EXISTS tasks (" +
"id TEXT PRIMARY KEY NOT NULL," +
"title TEXT NOT NULL," +
"done INTEGER DEFAULT 0," +
"created_at TEXT NOT NULL);";
db.execSync(sql);
}
export function getTasks() {
return db.getAllSync(
"SELECT * FROM tasks ORDER BY created_at DESC"
);
}
export function insertTask(id, title) {
db.runSync(
"INSERT INTO tasks (id, title, created_at) VALUES (?, ?, ?)",
id,
title,
new Date().toISOString()
);
}getAllSync/runSync/execSync— sync API (UI-heavy কাজে ডাকা উচিত না)- prepared statements
?— SQL injection থেকে নিরাপদ - migration —
PRAGMA user_versionদিয়ে
কখন SQLite
হাজার+ row, relation, filter/join দরকার — SQLite। আরামদায়ক ব্যক্তিগত small state — AsyncStorage যথেষ্ট।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।