Bu proje https://antalya.shopdutyfree.com/en/brandboutique/brand/all/ sayfasından başlayarak alt sayfalardaki verileri web scraping yöntemiyle çekerek hem uygulamanın içerisinde göstermeyi hemde veritabanı kaydı tutmayı sağlayacak şekilde geliştirilmiştir.
- Jsoup : Web sayfasından verilerin çekilmesi için kullanıldı.
- Picasso : Ürün görsellerinin url üzerinden yüklenmesi için kullanıldı.
- kotlinx.coroutines : Alt görevler oluşturmak amacıyla kullanıldı.
- internet erişim kontrolü yapılarak uygulamanın sorunsuz çalışabilir durumda olması sağlanır.
- Herhangi bir internet erişimi bulunamazsa uygulama sonlandırılır.
- Tüm markaların isim ve ürün sayfası linkleri çekilir.
- Marka isimleri alfabetik olarak kullanıcıya sunulur.
- İncelemek istenilen markaya tıklanarak ürünler kısmına geçilir.
- Geri tuşuna 2 kere basılması durumunda uygulamadan çıkılmaktadır.
- Uygulama çalışırken tek sefere mahsus olmak üzere sitedeki ürün bilgilerini çekmektedir. Elde edilen veriler hem arayüzde gösterilmekte hemde aynı sayfaya tekrar girilmesi durumunda hız ve kolaylık sağlaması amacıyla veritabanına kaydedilmektedir.
- İlgili markaya ait tüm ürünler kaydırmalı liste halinde kullanıcıya sunulur.
- Ürünlerin adı,güncel fiyatı,indirim yapılmış ise önceki fiyatı,detaylı bilgileri ve buton aracılığıyla görüntülenen açıklamaları yer almaktadır.
brandList = ApiDutyFree(this).getAllBrandList()
- this : istek yapılan activity context'ini alır.
- brandList : ArrayList<BrandModel>() gönderir.
- Önceki kullanımdan kalan veritabanı temizlenir.
- tüm markaların isim ve ürünler sayfası linklerini websitesinde çekerek ArrayList halinde gönderir.
- ilgili verileri veritabanına kaydedilmekte olup tekrar kullanılmamaktadır.
productList = ApiDutyFree(this).getAllProductList()
- this : istek yapılan activity context'ini alır.
- productList : ArrayList<ProductModel>() gönderir.
- ilgili markanın adı veritabanında kontrol edilir.
- Herhangi bir sonuç elde edilirse arayüze yüklenmesi için ArrayList haline getirilip gönderilir.
- Eğer ürünler sayfasına ilkkez girilmiş ise ürünlerin bilgileri websitesinde çekilir hem veritabanına kaydedilir hemde ArrayList halinde gönderilir.
- İlk seferinde üründe siteden çekildiği için birkaç saniye gecikme olabilmektedir.Daha sonraki girişlerde veriler veritabanından alındığı için gecikmesiz olarak gösterilmektedir.