Merhaba,ben Hozan.Bu kütüphaneyi online sipariş sistemleri için geliştirilecek uygulamaların yazımında kolaylık sağlanması için yazdım.
- Uygulama içinde ürün ve fotoğraf ismi recyclerviewde gösterilebilir.
- Sqlite kaydedilme işlemi room kütüphanesi ile yapılmıştır.
- Room kütüphanesi ile yapılan işlemler Rxjava2 kullanılarak yapılmıştır.
- İşlemler asekron yapıldığı için kullanıcı arayüzüne zarar vermemektedir.
Note: Bu dosyanın ortalama okunma süresi 8 dakika kütüphanenin yüklenmesi 3 dakika sürecektir.
build.gradle (Module:.app) dosyasında dependencies altına
implementation 'com.github.hozanBaydu:online-order:1.9.1'
kodunu yapıştırmanız gerekiyor.
settings.gradle dosyasında dependencyResolutionManagement altına
maven { url 'https://www.jitpack.io' }
kodunu yapıştırdıktan sonra kütüphane artık kullanıma hazır.2.adım mevcut 24/10/2022 tarihli androidstudio sürümü için geçerli olup,ileride gelecek güncellemeler ile bu adımın değişme olasılığı bulunmaktadır.Güncelleme olması durumunda lütfen gerekli araştırmayı yapıp güncel durumu öğrenin.
Kütüphane eklendikten sora yapılacak ilk adım RxRoom sınıfından bir obje oluşturmaktır. Ardından kütüphane ile birlikte gelecek olan modelimiz için bir değişken oluşturmak.
val elma=OnlineOrdersFoodsModel("elma","ekşi", R.drawable.thumb)
val cilek=OnlineOrdersFoodsModel("çilek","tatlı", R.drawable.apple)
Modelimize uygun bir değişken oluşturduktan sonra artık veri tabanına bunu kaydedebiliriz.
val rxRoom=RxRoom()
rxRoom.onlineOrderinsert(context = applicationContext,elma)
rxRoom.onlineOrderinsert(context = applicationContext,cilek)
Bu fonksiyon sayesinde modellerimiz sqlite veri tabanına kaydedilmiş oldu.
rxRoom.onlineOrderdeleteAll(applicationContext)
İstenen Context girildiği zaman onlineOrderdeleteAll fonksiyonu ile birlikte veriler güvenli bir şekilde silinebilmektedir.
Verilerin çekilip gösterilmesi işlemi OnlineOrderGetSqlite sınıfı ile mümkündür. Bu sınıf bir Context ve içinde verilerin gösterileceği bir recyclerview istemektedir. Verilerin gösterilmesini istediğiniz aktivitede bir recyclerview üretmeniz yeterli olacaktır.
Note: Aadapter veya recycler_row oluşturmanıza gerek yoktur.Kütüphane bunları barındırmaktadır.
val showRecyclerview=OnlineOrderGetSqlite(context = applicationContext,recyclerview)
Yukarıdaki kodlar,sınıfi çağırıp recyclerviewin tanımlanması için yazılmıştır.
showRecyclerview.onlineOrdergetAll()
Ardından onlineOrdergetAll() fonksiyonu sayesinde recyclerviewde veriler gösterilir.
class OnlineOrderGetSqlite(val context: Context,val view: RecyclerView) {
private var compositeDisposable= CompositeDisposable()
private lateinit var dp:OnlineOrderFoodsDataBase
private lateinit var foodDao:OnlineOrderFoodsDao
fun onlineOrdergetAll(){
dp= Room.databaseBuilder(context,OnlineOrderFoodsDataBase::class.java,"OnlineOrdersFoodsModel").build()
foodDao=dp.OnlineOrderFoodsDao()
compositeDisposable.add(
foodDao.getAll()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::handleResponse)
)
}
fun handleResponse (list: MutableList<OnlineOrdersFoodsModel>){
view.layoutManager= LinearLayoutManager(context)
val foodsAdapter= OnlineOrderFoodsAdapter(list)
view.adapter=foodsAdapter
}
}
Yukarıdaki kütüphane kodları veriler alındıktan sonra recyclerviewde handleresponse fonksiyonu ile nasıl gösterildiğini anlatmaktadır.Görüldüğü üzere LinearLayoutManager için context burada verilmeyip kullanıcı sınıfı çağırınca kullanıcıdan istenmektedir.Kullanıcı kütüphaneyi aktivite dışında bir yerde recyclerview oluşturmak için çağırabilir. .
Uygulamayı yazan:Hozan BAYDU
Tarih:20.08.2022
İletişim:hozan.baydu3447@gmail.com