अंतिम Google I / O में, जोस एलिसरेका और यिजिट बॉयर ने हमें बताया कि हमें डेटा लाने के लिए अब LiveData का उपयोग नहीं करना चाहिए। अब हमें एक-शॉट वाले भ्रूणों के लिए निलंबित कार्यों का उपयोग करना चाहिए और डेटा स्ट्रीम बनाने के लिए कोटलिन के फ्लो का उपयोग करना चाहिए। मैं इस बात से सहमत हूं कि एक-शॉट प्राप्त करने या अन्य CRUD संचालन, जैसे डालने के लिए, आदि के लिए कोराउटाइन महान हैं, लेकिन ऐसे मामलों में जहां मुझे डेटा स्ट्रीम की आवश्यकता होती है, मुझे समझ नहीं आता कि मुझे क्या फ़ायदा होता है। मुझे ऐसा लगता है कि LiveData वही कर रही है।
प्रवाह के साथ उदाहरण:
ViewModel
val items = repository.fetchItems().asLiveData()
कोष
fun fetchItems() = itemDao.getItems()
दाव
@Query("SELECT * FROM item")
fun getItems(): Flow<List<Item>>
LiveData के साथ उदाहरण:
ViewModel
val items = repository.fetchItems()
कोष
fun fetchItems() = itemDao.getItems()
दाव
@Query("SELECT * FROM item")
fun getItems(): LiveData<List<Item>>
मैं कोरटाइन और फ्लो का उपयोग करने वाले प्रोजेक्ट्स के कुछ उदाहरणों को भी देखना चाहूंगा। मुझे केवल एक Google का ToDo नमूना मिला जहाँ coroutines का उपयोग एक-शॉट प्राप्त करने के लिए किया जाता है और फिर मैन्युअल रूप से डेटा को बदलने पर वापस ले जाता है।