Flutter ile Cross-Platform Uygulamalarda State Management (Riverpod vs Bloc)
Mobil Uygulama Mimarilerinde Durum (State) Yönetimi Stratejileri
Flutter ile tek bir kod tabanından hem iOS hem de Android için native performansında uygulamalar çıkarabilmek harika. Ancak uygulama büyüdükçe "sepetimdeki ürün sayısını diğer ekrana nasıl yansıtacağım?" gibi sorunlarla karşılaşırsınız. İşte burada State Management (Durum Yönetimi) devreye girer.
Hangi Yöntemi Seçmeli?
Flutter ekosisteminde setState() komutunun yetersiz kaldığı büyük projelerde genellikle iki büyük araç karşı karşıya gelir:
BLoC (Business Logic Component): Reaktif programlama (RxDart ve Stream) temellerine dayanır. Kodunuzu UI (Kullanıcı Arayüzü) ve İş Mantığı olarak kesin çizgilerle ayırır. Event (olay) gönderirsiniz, State (durum) alırsınız. Kurumsal, büyük ölçekli ve çok fazla takım üyesi olan projelerde mimari standartlaştırması açısından en güvenli limandır ancak öğrenme eğrisi yüksektir (Boilerplate kod fazladır).
Riverpod: Provider paketinin yaratıcısı tarafından geliştirilen, daha modern, "Compile-time safe" (Hataları kodu yazarken yakalayan) bir çözümdür. BLoC kadar kuralcı değildir, çok daha az kodla (less boilerplate) aynı işlevselliği sağlar. Kendi içindeki AutoDispose mekanizmasıyla bellek sızıntılarını (Memory Leak) önler.
Eğer bir e-ticaret veya saha ekip takip uygulaması geliştiriyorsanız, API'den gelen veriyi ekrana basmak ve cachelemek için Riverpod'un FutureProvider mimarisi inanılmaz pratiklik sağlar. Siz projelerinize başlarken mimariyi nasıl kurguluyorsunuz?
Flutter'da Riverpod mimarisine geçtikten sonra BLoC'un yarattığı o boilerplate (fazla kod) yükünden kurtulduk. Kesinlikle çok daha pratik.
Cevap yazmak için giriş yapmalısınız.
Giriş Yap