Flutter Isar kullanımı

Flutter Isar kullanımı konusuna değineceğim bu yazıda, Isar’ın avantajları nelerdir, neler yapabilir gibi soruları da yanıtlayacağım. Isar, Hivedb.dev‘in yaratıcısı tarafından yazılmış bir NoSQL database. Multiplatform çalışabilen Isar, kullanıcılarına CRUD operasyonları, query yazma gibi özellikler sunuyor. Watchers ile veri değişimlerini izleyebileceğiniz Isar’da, aynı zamanda bir Inspector eklentisi de bulunuyor. Inspector ile kaydettiğiniz verileri görüntüleyebileceğiniz, debug edebileceğiniz bir arayüz sunuyor.

Flutter Isar kullanımı – Giriş

Öncelikle Quickstart Guide kısmında yer alan aşamaları uygulayarak Isar’ı dependency olarak uygulamaya ekleyebilirsiniz. Pub.dev linkleri sırasıyla: Isar, Isar_flutter_libs, Isar_generator. Gerekli dependencies’i uygulamaya ekledikten sonra örnek sınıfımızı contact.dart dosyası içerisinde oluşturalım.

isar annotate a class
Annotate a Class

Dilerseniz ID kısmına autoIncrement özelliği de ekleyebilirsiniz. Öbür türlü ID’ye otomatik olarak Isar’ın belirlediği bir ID atanır.

  int id = Isar.autoIncrement;

Daha sonrasında flutter pub run build_runner build komutunu çalıştıralım.

Bu komutun çalışması bittikten sonra contact.dart içerisine şunu eklemelisiniz:

part 'contact.g.dart';

Isar’ı singleton obje olarak kullanmanız gerekmekte fakat tutorial yazısı olduğu için stateful widget içerisinde oluşturup, fonksiyonlar ile işimi görmeye çalıştım şu an için.

flutter isar kullanımı
Create an Instance

Isar’ın sanırım son sürümünde Inspector özelliği çalışmıyor bu nedenle false olarak yazdım. Yukarıdaki initIsar fonksiyonunu initState içerisinde çağırdım. Path_provider ile uygulamanın kapalı yolunu aldım ve bunu dir isimli değişkene attım. Daha sonrasında bir Isar instance’ı oluşturdum. Bu instance içerisinde de Contact isimli sınıfımızın Schema’sı bulunmakta. ContactShema, contact.g.dart isimli dosya ile yaratılmış bir Schema’dır. Oluşturduğumuz sınıfları Isar’ın anlayacağı biçime çeviren bir yönerge gibi düşünün. 🙂


Isar – CRUD operasyonları

Isar ile write operasyonu yapmak çok kolay. Oluşturacağınız Contact objesini, Isar instance’ı içerisine put etmeniz gerekmekte.

isar crud write
CRUD – Write

Veritabanında yer alan verileri okumak istiyorsanız o da kolay!

isar crud read
CRUD – Read

Diyelim veritabanında yer alan verilerin bir kısmını silmek istiyorsunuz. Bu hiç de zor değil. NoSQL yapısı sunan Isar ile filtreleme işlemleri yaparak istediğiniz veriyi ayıklayabilirsiniz. Bu verileri işleyebilir veya silme, güncelleme gibi işlemler yapabilirsiniz.

crud delete
CRUD – Delete

Daha önce “Zahid Tekbaş”, “John Doe” şeklinde 3’er adet Contact objesi oluşturmuştum ve bu objelerin John Doe olanlarını silmek için nameContains fonksiyonunu kullandım. Contains fonksiyonu generic bir fonksiyon olduğundan, sınıfınızda oraya firstName yazmış olsaydınız eğer, firstNameContains olacaktı fonksiyonun ismi.

Sonuç

Hive hayranı olan bir Flutter geliştiricisi olarak, Isar beni tatmin eden bir çözüm oldu. Hive ile lokal veri yönetimi konusunu çözerken, Isar ile karmaşık verilerin cache’lenmesi için yöntemler geliştirebileceğim artık. Hive ile bunu yapmak oldukça zorlayıcıydı.

Bu yazıyla beraber Flutter Isar kullanımı konusunu incelemiş olduk. Isar’ı kullanmak isteyen fakat karmaşık geldiğini düşünerek çekinen geliştiriciler için ufak bir giriş yazısı olmuş oldu. Bir sonraki uygulamamda Isar’ı tam kapasite kullandığımda, daha detaylı bir inceleme yazısı ve tutorial ile karşınıza çıkmış olacağım. O zamana dek hoşça kalın. 🙂


Okuyucuya Not

Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz. Github’ta örnek olarak yaptığım projelere göz atmak isterseniz de bu linki kullanabilirsiniz. Umarım bu ziyaretinizle size bir şeyler katabilmişimdir.

Sağlıcakla kalın!