دیتابیس Realm یک سیستم مدیریت دیتابیس object-oriented است که برای توسعه دهندگان اپلیکیشن های موبایل و دسکتاپ که توسط تیم MongoDB طراحی شده است. این دیتابیس بر روی دستگاه کاربر اجرا می شود و به همین دلیل به آن دیتابیس امبد شده (embedded database) نیز گفته می شود.

برای شروع ابتدا با دستور زیر پکیج مورد نیاز را به پروژه فلاتر اضافه میکنیم.

flutter pub add realm
dart run realm install






بعد از اضافه کردن پکیج های مورد نیاز کلاس مدل خود را میسازیم.
در این مثال یک کلاس دانشجو در اختیار داریم که عملیات crud را روی انجام میدیم.
یک فایل به نام student ایجاد میکنیم.


در این کلاس با @RealmModel() مشخص کرده ایم که از این کلاس برای ذخیره سازی اطلاعات استفاده خواهیم کرد.
با کمک @PrimaryKey() نیز کلید اصلی پایگاه داده را مشخص میکنیم کدام فیلد باشد.
در ابتدای این فایل عبارت part ‘student.g.dart’; را نیز باید قرار دهید, این تکه در ادامه کدهای مورد نیاز کلاس را ایجاد میکند.
با اجرای دستور زیر در ترمینال کدهایی که برای ذخیره اطلاعات این کلاس در دیتابیس نیاز ساخته میشود.
dart run realm generate


برای اینکه کدهای بخش دیتابیس به شکل تمیز نوشته شوند یک کلاس جدا به نام StudentDatabase ایجاد میکنیم و تمام متدهای مورد نیاز برای انجام عملیات CRUD را در آن قرار میدهیم.
کدهای کلاس به شکل زیر میباشد.



در این کلاس یک نمونه از کلاس Realm میسازیم که برای پارامتر ورودی از آبجکت config که مشخص کننده کلاس مدل است استفاده میکنیم.
در ادامه چهار متد میسازیم که هر کدام عملیات CRUD را انجام میدهند.
برای ذخیره سازی اطلاعات از دستور realm.write استفاده میکنیم, اگر مقدار update را برابر true قرار دهید در صورت وجود رکورد آن را آپدیت میکند.
برای دریافت لیست کامل رکوردهای یک کلاس از دستور realm.objects().toList() میتوانید استفاده کنید.

منبع: آموزش فلاتر