mahdidavoodi7/react-native-continued-task
Background tasks that keep running after your app is backgrounded, for React Native and Expo. Wraps iOS 26 BGContinuedProcessingTask (Live Activity) and Android WorkManager foreground services behind one typed API. Swift + Kotlin via Nitro Modules.
Hızlı değerlendirme
Özet
react-native-continued-task, React Native ve Expo uygulamalarında kullanıcı tarafından başlatılan uzun işleri uygulama arka plana geçtikten sonra sürdürmek için iOS ve Android API’lerini ortak bir typed API altında sunar.
Profiline uyum
iOS ve Android uygulamaları için uzun süren arka plan işleri sunuyor, ancak profilde bu tür bir mobil özellik ihtiyacı yer almıyor.
Neden yükseliyor
iOS 26’daki yeni BGContinuedProcessingTask API’sine erken destek sunması ve bunu Android ile ortak bir React Native/Expo API’sinde toplaması güncel bir entegrasyon ihtiyacına hitap ediyor. README 13/13 gerçek cihaz testinden söz ediyor; ancak repo verisi 26 günlük yaş, 226 yıldız ve son 28 günde 20 commit gösterirken katkı tek yazardan geliyor, dolayısıyla benimseme ve bakım kanıtı henüz sınırlı.
Problem
Uygulama arka plana alındığında büyük export, upload veya batch encode gibi kullanıcı başlatmış olduğu işlerin kesilmesi ve platformların bu işler için farklı native API, izin ve ilerleme arayüzleri gerektirmesi.
Çözüm
iOS 26’daki BGContinuedProcessingTask ve sistemin sunduğu Live Activity’yi, Android’de WorkManager foreground service ve notification ile birleştirir. Swift ve Kotlin native modüllerini Nitro Modules üzerinden TypeScript API’sine bağlar; Expo config plugin gerekli platform yapılandırmalarını ekler.
Yenilik
Temel yaklaşım yeni bir background execution mekanizması değil; iOS 26’nın yeni API’sini Android WorkManager ile birleştiren platforma özgü bir sarmalayıcı. Değer önerisi, platform farklarını ve hata/durdurma durumlarını ortak typed API ile ele alması.
Teknolojiler
- React Native
- Expo
- TypeScript
- Nitro Modules
- Swift
- Kotlin
- BGContinuedProcessingTask
- Live Activity
- WorkManager
- CoroutineWorker
Riskler
- Son 28 gündeki 20 commit’in tamamı tek yazardan geldiği için bakımın sürekliliği ve bağımsız katkı düzeyi henüz belirsiz.
- iOS tarafı iOS 26+ gerektiriyor; desteklenmeyen sürümler için uygulamanın alternatif akış sağlaması gerekebilir.
- Bu API genel amaçlı arka plan kodu çalıştırma aracı değil; iki platformda da işin kullanıcı tarafından başlatılması ve ilerlemenin raporlanması gibi runtime kısıtları var.
- Android ve iOS iptal/durdurma nedenlerini aynı şekilde bildirmiyor; örneğin README’ye göre iOS kullanıcı iptalini expired olarak iletiyor.
- Nitro Modules gerektiriyor ve Expo Go’da çalışmıyor; dev build ve native yapılandırma gerekiyor.
Detaylı değerlendirme
Bu repo için detaylı değerlendirme henüz yapılmadı. Analiz, Ayarlar'daki uyum profilini hesaba katarak "bu işime yarar mı" sorusunu cevaplıyor. Bir kez çalışır; günlük koşular buna dokunmaz. Saatlik sınır var — bir kaynaktan en fazla 3 analiz.