Flutter Background Servis
-
Selam Müridler,
Flutterda arkaplanda periyodik olarak metodumu tetikleyen Workmanager package kullanıyorum. Fakat bazen metod tetiklenmiyor ya da açılan isolate de bir sorun oluyor. Bunu nasıl debug ortamında monitör edebilirim. Platform android. Workmanager i javada monitör etmek mümkün ama iş flutter pluginlerine kalınca noriycem bilemedim. Şu Background işlerini flutterda en sağlıklı hangi plugin yapıyor o konuda da tavsiyelere ihtiyacım var. Amacım uygulama arka planda ve kapalı görünümdeyken 5dk da bir yazdığım metodu tetiklemek. Metotta da http den veri alıp db ye kaydediyor yeni veri varsa lokal notification basıyor.
-
WorkManager in intervali minimum 15 dakika ayarlanabiliyor diye biliyorum.
Bunun için foreground servisi yazman gerekebilir.
Alttaki arkadaş bilale anlatır gibi anlatmış işini görebilir.
https://robertohuertas.com/2019/06/29/android_foreground_services/
-
Andorid device lar onu default olarak 15dk ya çekiyor fakat yine de bazen bir kere çalışıyor bir daha tetiklenmiyor. Ne bileyim uygulamayi ana ekrandan yana kaydirdigimda arka planda çalışması lazimken kapanıyor. Kısaca doğru düzgün çalışmıyor. Workmanager i loglayabilsem nerede çalışıyor, ne kadar çalışıyor anlayacağım. Ayrıca simülatör de çalışırken manifest ayarlarını yaptığım canlıda (redmi note 4.x) çalışmıyor.
-
Android işletim sisteminde arka planda çalışsın izni vermediğin hiçbir uygulamada workermanager çalışmaz..
Sen workerManager ile Flutter alakasız sen native android yazacaksın. Uygulama ayakta iken flutter ile haberleşebilirsin bunu da ChannelMethod ile yaparsın..
Bu arada el terminali tarzı bir şey yapıyorsan. Bir tane ForegroundService yaz. Daha sonra bu servisde istediğin methodu Handler(timer miydi neydi Handler sınıfıydı galiba hatırlamıyorum UI güncellerken kullanıyorudk biz. Animasyonlarda yani) ile 5 dk da bir çağır...
Ben böyle yapıyorum ForegroundService de bir Socket çalışıyor. Socketten data gelince Flutter'a ChannelMethod ile dinliyorum.
Bu ChannelMethod da bir Wrapper'a bağlı bu wrapper de en üst kapsayıcı Bloc.
Örneğin bir bir mesaj geldi diyelim. En üst kapsayıcı Bloc'a Channel aracılığıyla veriyi gönderiyorum. Daha sonra Widgetda da Sink methodu ile okuyorum.
Zaten Proje ayakta değilse ChannelMethod sana bir response dönüyor. Flutter Engine doesn't work diye bir hata dönüyor. (Bu uygulamayı crash etmiyor).
VS VS VS VS....
O değil de memlekette Flutter'cı doldu. O kadar dedik dedik kimse geçmedi şimdi herkes Flutter yazar olmuş :PPP Lafım sana değil bu arada.
LinkedIn de fanboy RN ci tayfa vardı :D hepsi Flutter yazıyor şimdi.
-
Flutterı iki senedir kurcalıyorum hocam etrafımdaki çocuklara çok dedim yürüyün flutter güzel bir yere gelecek diye (: Bence nihai ürün çıkarılabilecek kıvama geldi flutter. Ayrıca hocam sen React native de kullandığından state yönetimi ve MVVM için naçizane önerim stacked package kullanman. React hook mantığı. Mvvm ve test için mocked uyumu da çok iyi. filledstacks.com da dokümanları var. Kullanıyorum, mutluyum. Kodlar pırıl pırıl.
Konuya gelecek olursak, benim uygulama arka planda çalışıyor, sadece https te yeni bir veri varsa yeni veriniz var diye notification basıyor ve notificationa tıkladığında takip ettiği sayfaya yönlendiriyor. Böylece son kullanıcı yeni veri girişi var mı diye https sayfasını manuel olarak takip etmekten kurtuluyor. Ama gel gelelim henüz background kısmı olmadı. Bahsettiğin channel işine girmem gerektiğini düşünmüyorum. Workmanager plugini bu işi yapıyor çünkü. Muhtemelen bir yerde hata yapıyorum hocam.
Edit// telefonum tüm background kısıtlamalarıni, notification kısıtlamalarıni ayarlardan kaldırıyorum. Ona rağmen olmuyor.
Edit2// Mehmet hocam dediğini şimdi anlıyorum. Bahsettiğim native deki Workmanager değil. Flutter plugini olan Workmanager. Link:https://pub.dev/packages/workmanager
-
Kütüphane güzelmiş... WorkerManager ile Flutter messaging pack'e istek atıyor :)) Güzelmiş bak bu kullanırım bunu :P
-
Backend ile ilgili değil ancak bugün Adobe XD ile hazırlanan arayüzü Flutter ile APK haline getiren bir eklentiye denk geldim.
İlgilenen olursa aşağıdaki video baya faydalı.
-
gitlab github paylas baktırayım
-
arkada socket çalıştırmak, socketten data geldikce web request cikartmak
uygulama durdurulursa otomatik başlatmak
bunlar mümkün mü acaba?
-
end bunu yazdı
arkada socket çalıştırmak, socketten data geldikce web request cikartmak
uygulama durdurulursa otomatik başlatmak
bunlar mümkün mü acaba?
evet
-
MhmdAlmz bunu yazdıend bunu yazdı
arkada socket çalıştırmak, socketten data geldikce web request cikartmak
uygulama durdurulursa otomatik başlatmak
bunlar mümkün mü acaba?
evet
örnek appler bırakabilir misin buraya?