Bloc Google tarafından da tavsiye edilen flutter state yönetim modülüdür. Bu yazıda bloc kullanmanız gerekmeyecek uygulama parçaları için uygulayabileceğiniz Bloc Cubit mantığından bahsedeceğim.
İçeriğin daha gerçekçi olması için https://dog.ceo/dog-api/ üzerinden Dio modülü yardımıyla get istekleri atacak, gelen veriyi https://javiercbk.github.io/json_to_dart/ kullanarak kolayca modele çevirecek ve basit uygulamamızda kullanacağız.
Bu uygulama için https://javiercbk.github.io/json_to_dart/ çok yararlı olmasa da daha karmaşık modellerde kullanmanızı tavsiye ederim.
Öncelikle vs code da bulunan Flutter Bloc un geliştiricisi Felix tarafından eklenen https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc eklentiyi kurmanızı tavsiye ederim.
Bu eklenti size tek tıkla Bloc veya Cubit oluşturabilmenizi sağlar.
Daha sonra lib e sağ tıklayıp Cubit: New Cubit i seçelim,
Daha sonra açılan pencereye cubitin adını yazalım.
Öncelikle state dosyasını açıp uygulamamızda olacak stateleri belirlememiz gerekiyor.
Buraya ihtiyacımız olacak State leri abstract state mizden extend ederek oluşturalım.
Daha sonra https://dog.ceo/api/breeds/image/random adresinden gelen jsonu https://javiercbk.github.io/json_to_dart/ yardımı ile data model class ına gönüştürelim.
Daha sonra Dio yardımı ile verileri alacağımız basit bi data servisi oluşturalım.
Oluşturduğumuz servis https://dog.ceo/api/breeds/image/random üzerinden aldığımız jsonu önceden oluşturduğumuz DogModel classından veri olarak gönderme işlemi yapacak.
Şimdi servisimizi, statelerimimzi ve modelimizi oluşturduk. Cubit sayfasını oluşturmaya başlayabililiriz.
Basit cubit mantığında genellikle sayfa bi fonksiyon yardımı ile yüklenilir. Sayfamızın hangi statede olmasını istediğimize göre stateler emit edilerek ekrana haber verilir.
Son olarak uygulamamıza basit bir görünüş yaparak cubit i kullanabiliriz.
projenin tamamı : https://github.com/bthnkucuk/basic_cubit_app_logic