React Native के साथ 13 साल पुराने native app का रूपांतरण
(ridicorp.com)Ridibooks ने native app से React Native में रूपांतरण की प्रक्रिया के दौरान जो अनुभव किए, उनकी कहानी
- React Native चुनने के कारण
-
पहले कंटेंट की खोज और भुगतान वेब पर किया जाता था और app को viewer की तरह इस्तेमाल किया जाता था, लेकिन यह तय किया गया कि app में भी खोज और भुगतान फीचर जोड़े जाएंगे। तेज़ बदलावों का जवाब देने और तय समयसीमा के भीतर लक्ष्य हासिल करने के लिए cross-platform development संभव करने वाली तकनीक अपनाने का निर्णय लिया गया
-
Flutter / React Native के बीच विचार करते समय, React Native का community थोड़ा अधिक स्थिर और सक्रिय लगा, इसलिए React Native चुना गया
- native-आधारित बनाम React Native-आधारित
-
इस बात पर विचार हुआ कि native app पर React Native चढ़ाया जाए या उल्टा React Native के ऊपर native को रखा जाए
-
native के ऊपर React Native रखने पर स्क्रीन के हिसाब से endpoint बदल जाते हैं और app lifecycle management जटिल हो जाता है
-
React Native के ऊपर native रखने पर मौजूदा native code को React Native के साथ compatible बनाने के लिए एक बार संशोधित करना पड़ता है। भविष्य में इसे पूरी तरह React Native में फिर से लिखना भी होगा
-
चूँकि ज़्यादातर फीचर्स को अंततः React Native में ले जाना ही था, इसलिए React Native के ऊपर native रखने की दिशा में जाने का निर्णय लिया गया
- native स्क्रीन का पुन: उपयोग
- तय समयसीमा के भीतर बदलावों का तेज़ी से जवाब देने के लिए यह निर्णय लिया गया कि नई स्क्रीनें React Native में लिखी जाएँगी और पुरानी स्क्रीनें native ही रहेंगी (native स्क्रीनें धीरे-धीरे React Native में बदली जाएँगी)
- native code का पुन: उपयोग
-
Ridibooks ने 13 साल तक maintenance करते हुए native में जो गहराई और परिपक्वता बनाई थी, क्या उसे React Native में उतारा जा सकता है? मौजूदा native app में Swift और Kotlin इस्तेमाल हो रहे थे, इसलिए यह सत्यापित किया गया कि क्या इन्हें React Native में भी उसी तरह इस्तेमाल किया जा सकता है
-
bridge बनाकर इन्हें पहले की तरह इस्तेमाल करना संभव हुआ
- लागू करने की प्रक्रिया में कठिनाइयाँ
-
bundle size और memory usage बढ़ गया
-
bundle size अनुमानित स्तर पर था, लेकिन memory की स्थिति बहुत खराब थी। optimization पर काफी ध्यान देना पड़ा
-
third-party libraries पर भरोसा करना मुश्किल था
-
native और front, दोनों में से किसी को भी नज़रअंदाज़ नहीं किया जा सकता। native developers को front-end development और front-end developers को native development समझना होगा। दोनों के बीच आदान-प्रदान ही सफलता की कुंजी है
- React Native इसलिए अच्छा है
-
उच्च उत्पादकता
-
सहयोग के लिए अनुकूल platform
React Native की बदौलत तय समयसीमा के भीतर product roadmap हासिल किया गया, साथ ही तेज़ बदलावों का जवाब देने वाला माहौल और उत्पादकता भी मिली। आगे चलकर native क्षेत्र को पूरी तरह React Native में बदलने की योजना है। हालांकि, viewer में 13 साल की संचित विशेषज्ञता है, इसलिए उसे बनाए रखते हुए सर्वोत्तम user experience प्रदान किया जाएगा.
11 टिप्पणियां
पता नहीं आपने कभी Google Trends पर keyword search करके देखा है या नहीं, लेकिन RN ecosystem लगभग खत्म होने की कगार पर है। इसके उलट Flutter विस्फोटक रूप से बढ़ रहा है। संदर्भ के लिए, मैं एक native developer हूँ.
यूज़र के नज़रिए से डेस्कटॉप ऐप की परफ़ॉर्मेंस पिछले वर्ज़न की तुलना में कम लगती है। पहले पेज बदलते समय कोई डिले महसूस नहीं होता था, लेकिन आजकल यह लगातार अटकता सा रहता है.
काश डेस्कटॉप वर्ज़न में इसे थोड़ा highlight कर देते... समझ नहीं आ रहा कि क्या यह copyright issue वगैरह की वजह से नहीं हो पा रहा है, हूँ.
मोबाइल ऐप्स ही नहीं, डेस्कटॉप ऐप्स पर भी प्लीज़ थोड़ा ध्यान दें.. T_T
RidiBooks डेस्कटॉप ऐप को लंबे समय से इस्तेमाल करने वाले की नज़र से देखें तो अफसोस होता है कि यह फैसला कहीं पूरी तरह सिर्फ मोबाइल को ध्यान में रखकर तो नहीं लिया गया। सिर्फ मैं ही नहीं, डेस्कटॉप ऐप इस्तेमाल करने वाले हर कोई लगातार bugs से परेशान है... (पुराने Qt-आधारित ऐप से भी ज़्यादा गंभीर)
आसपास से desktop app की समस्याओं पर बहुत शिकायतें सच में सुनी हैं..
मैं खुद सीधे डेवलपमेंट नहीं करता, लेकिन जिन कम्युनिटीज़ से मैं जुड़ा हूँ वहाँ Flutter की काफी तारीफ़ देखी, तो मैंने हमारी कंपनी के ऐप डेवलपर से इस बारे में बात की। उन्हें React ज़्यादा पसंद है। उनका कहना था कि इसका ecosystem और hiring market बेहतर है। इस बारे में दूसरे लोगों की राय भी सुनना चाहूँगा।
Native बहुत तेज़ी से आगे बढ़ रहा है, इसलिए असली सवाल यही होगा कि क्या RN उसकी रफ़्तार के साथ चल पाता है
इस सवाल के बारे में Flutter तुलनात्मक रूप से कैसा रहेगा?
वैसे Android तो ठीक रहेगा, लेकिन iOS के साथ कदम मिला पाएगा या नहीं, यह कहना मुश्किल है.
मेरा मानना है कि integration से पैदा होने वाली entropy की लागत को नज़रअंदाज़ नहीं करना चाहिए.
React Native से 2~3 साल पहले डेवलप करके लॉन्च किया था...
व्यक्तिगत रूप से मुझे लगा कि इसके फायदे से ज़्यादा नुकसान हैं..
https://m.blog.naver.com/PostView.naver/…
तब से मेरी दिलचस्पी काफ़ी कम हो गई थी... लेकिन इसकी लोकप्रियता अब भी बनी हुई है.