Shiny.Net.Http: Mobil Uygulamalar için Arka Plan Dosya Transferi
Shiny.Net.Http, iOS, Android ve diğer platformlarda arka plan yükleme ve indirme işlerini uygulama askıya alınsa ya da kapansa bile sürdüren bir kütüphane. Kuyruk kalıcı, yeniden deneme ve duraklatma destekli. Mobil ekipler için uygulanabilir bir alternatif sunuyor.
Kilit noktalar
- AddHttpTransfers<T>() ile servisleri kaydedip bir HttpTransferDelegate tanımlayarak tamamlanma ve yeniden deneme davranışını yönetin
- Kuyruk kalıcıdır; uygulama öldürülse bile transfer devam eder
- Ağ yokken transferler PausedByNoNetwork durumuna geçer; UseMeteredConnection = false ile büyük dosyalar mobil veriye taşınmaz
- OnAuthorizationFailed ile token yenileyip transferi kaybetmeden yeniden kuyruğa alabilirsiniz
- HttpTransferMonitor.Transfers koleksiyonu INotifyPropertyChanged nesneleri verir; doğrudan XAML'e bağlanabilir
- AddTransferProgress ile iOS Live Activity ve Android bildirimlerinde ilerleme gösterilebilir
Mobil uygulamalarda dosya yükleme, kullanıcı uygulamadan çıktığında HttpClient bağlantısının kesilmesi nedeniyle sık sık yarıda kalır. Shiny.Net.Http, bu sorunu transferi platformun arka plan mekanizmasına devrederek çözmeyi amaçlıyor. Kütüphane 2016'da Xamarin eklentisi olarak başladı ve bugün MAUI, Windows, Linux, macOS ve Blazor WebAssembly üzerinde çalışıyor.
API'nin temel kullanımı AddHttpTransfers ile servis kaydı, bir HttpTransferRequest kuyruğa eklenmesi ve HttpTransferDelegate ile tamamlanma ve yeniden deneme davranışının tanımlanmasından ibaret. Kuyruk yeniden başlatmalarda korunuyor, ağ yokken PausedByNoNetwork durumuna geçiyor, indirmeler Range isteğiyle devam edebiliyor ve tus ile devam ettirilebilir yüklemeler destekleniyor. İlerleme bilgisi için HttpTransferMonitor bağlamaya uygun bir koleksiyon sunuyor, iOS Live Activity ve Android bildirimi entegrasyonu ise AddTransferProgress ile geliyor. Ayrıntılar ve örnekler için orijinal yazıya bakmakta fayda var.
Gerçek dünyada kullanımı
- Saha denetim uygulamasında zayıf bağlantıda fotoğraf ve imzalı PDF dosyalarının sonradan yüklenmesi
- Teslimat uygulamasında kanıt görsellerinin araç içinden arka planda gönderilmesi
- Yapay zeka modeli veya çevrimdışı harita paketi gibi büyük dosyaların ilk çalıştırmada indirilmesi
Neden önemli
Mobil uygulamada dosya transferi için elle retry döngüsü yazmak yerine, platformun arka plan yeteneklerini kullanan bu kütüphane işi büyük ölçüde hazır sunuyor. Özellikle MAUI ekipleri için API'nin ve kuyruk davranışının bilinmesi, yanlış beklentilerle üretime çıkmayı önler.
Benzer haberler
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce
- NebulaGraph'a .NET'ten idempotent toplu yükleme: VID ile çoğaltma sorunuDEV Community: #csharp3 gün önce
- C# olayları ve delegate'ler: sözleşme, abonelik ve bildirimNick Cosentino (Dev Leader)3 gün önce