อันนี้เป็น tip & trick อย่างหนึ่งที่เรียนรู้ระหว่างการทำโปรเจคตัวหนึงด้วย Google Flutter ครับ
พอดีมาถึงจุดที่ต้องการบันทึกข้อมูลเก็บไว้ในตัวแอพ ก็จะมีหลายวิธีเลย ไม่ว่าจะเป็น
- Share Preference (เก็บข้อมูลเล็กๆ)
- SQLite (เก็บแบบโครงสร้างใหญ่หน่อย และเป็น Relational Data)
- แบบ NoSQL (อันนี้แบบสำหรับคนติด MongoDB จากการทำเว็บ)
แต่ถ้าเราเลือก 2 แบบหลัง ส่วนนี้จะมีการทำงานเกี่ยวกับการเขียนไฟล์ลงบนเครื่องของลูกค้าด้วย นั่นก็คือไฟล์ Database นั่นล่ะครับ
ซึ่งการทำงานที่เห็นกันบ่อยๆ คือการใช้ package ที่ชื่อ path_provider ในการชี้ที่อยู่ในการเขียนไฟล์ฐานข้อมูลลงไปในตัวแอพของเรา
หลายๆ ครั้งเราจะลืมใช้ path_provider นี้ในการชี้ตำแหน่งไฟล์ครับ เช่นการเขียนลงไปในโฟลเดอร์ Document ของตัวแอพเรา สามารถหาตำแหน่งได้โดยใช้ function ของ path_provider
var docDir = await getApplicationDocumentsDirectory();
ถ้าจู่ๆ เราเขียนไฟล์ลงไปโดยตรง โดยที่ไม่ได้ชี้เข้าไปในส่วนที่ระบบอนุญาตให้เราทำงานได้ ก็จะทำให้เกิด error ขึ้น
ด้านล่างจึงเป็นโค้ดที่ควรใช้ในการทำงานกับไฟล์ Database หรือการบันทึกไฟล์บ่อยๆ ครับ
void connect() async {
// get the application documents directory
var dir = await getApplicationDocumentsDirectory();
// ให้แน่ใจว่ามีโฟลเดอร์นี้อยู่จริงๆ นะ ไม่งั้น error อีก
await dir.create(recursive: true);
// สร้างที่อยู่ของไฟล์ database แบบเต็ม
var dbPath = join(dir.path, this.dbName);
// ตรงนี้จะเอา dbPath ไปใช้กับ SQFLite กับ NoSQL ก็ตามสบายครับผม
}
เริ่มต้นเรียนรู้ Google Flutter กับโค้ชพลได้ที่
คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter
เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง
สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373