Computer >> कंप्यूटर >  >> प्रणाली >> Android

2019 में Android ऐप कैसे विकसित करें:'नए' Android को अपनाना

या बिटोत्सव '19 ऐप कैसे हकीकत बन गया

पृष्ठभूमि:Pantheon '17

लगभग दो साल पहले, सितंबर 2017 में, एक दोस्त, अशांक अंशुमन ने मुझे हमारे संस्थान के तकनीकी उत्सव के लिए एक ऐप पर काम करने के लिए राजी किया। हमने लगभग दो सप्ताह तक काम किया, दिन और रात, इसे उत्सव के लिए समय पर रिलीज के लिए तैयार किया। हालाँकि हम थक गए थे, यह एक अद्भुत एहसास था, उत्पादन में कुछ 'बाहर' प्राप्त करना, जिसका लोग वास्तव में उपयोग करते थे! इसने अपने उद्देश्य को पूरी तरह से पूरा किया, जिससे आयोजकों को प्रतिभागियों को आसानी से सब कुछ बताने में मदद मिली।

पेंथियन '17 - Google Play पर ऐप्लिकेशन
युवाओं को अपने तकनीकी कौशल का प्रदर्शन करने के लिए एक राष्ट्रीय मंच प्रदान करने के अपने प्रयास में; प्रदर्शित हो रहा है... play.google.com

इसे लगभग 120 समीक्षाओं के साथ 4.9 का दर्जा दिया गया था, जिसे Google के बॉट्स ने किसी कारण से हटा दिया था, लेकिन यह एक और समय की कहानी है। हमें ऐप के स्रोत को साझा करने के लिए कुछ अनुरोध प्राप्त हुए, लेकिन हमने कई कारणों से मना कर दिया - लेकिन ज्यादातर इसलिए कि हम कोड से संतुष्ट नहीं थे, विशेष रूप से भागों को अंत के करीब पहुंचा दिया। हमारे पास इतना समय और अनुभव नहीं था कि हम इतना अच्छा कोड लिख सकें कि लोग उनसे सीख सकें और/या उनका उपयोग कर सकें।

यहां हम फिर से जाते हैं! ?

नवंबर 2018 के लिए फास्ट फॉरवर्ड:अंकित अग्रवाल (वह वह 'फेस्ट मैन' है) ने मुझे बिटोत्सव, हमारे वार्षिक सामाजिक-सांस्कृतिक उत्सव के लिए टीम में शामिल होने के लिए कहा, जिसके लिए मैं सहमत हूं, क्योंकि मैं एंड्रॉइड पर फिर से जाने के लिए कोई बहाना ढूंढ रहा था। इस बार मैंने अशंक को ऐप पर काम करने के लिए मना लिया

हमने दिसंबर में बहुत कुछ नहीं किया, लेकिन मैंने आर्किटेक्चर कंपोनेंट्स, एंड्रॉइडएक्स, जेटपैक इत्यादि जैसी चीजों पर पढ़ना शुरू कर दिया। मैं पिछले कुछ महीनों में कोटलिन से भी परिचित हो रहा था, जिसमें कुछ कोर्स महत्वपूर्ण थे:एक दो-भाग स्वेतलाना इसाकोवा और एंड्री ब्रेस्लाव (जिसे उन्होंने कोटलिनकॉन्फ़ 2018 में पेश किया) द्वारा एक और केवल हादी हरीरी और एक और हालिया एक द्वारा पाठ्यक्रम। इस प्रकार कोटलिन ऐप के लिए स्पष्ट पसंद था।

कोटलिन प्रोग्रामिंग का परिचय
कोटलिन 1.0 फरवरी 2016 में जारी किया गया था, और उस समय से इसे दुनिया भर के डेवलपर्स द्वारा अपनाया गया है... shop.oreily.com
जावा डेवलपर्स के लिए कोटलिन | कौरसेरा
जेटब्रेन से जावा डेवलपर्स के लिए कोटलिन। कोटलिन प्रोग्रामिंग भाषा एक आधुनिक भाषा है जो आपको अधिक… www.coursera.org

निर्णय ?

जनवरी का पहला भाग भी बहुत अधिक कोड लिखे जाने के साथ बीत गया, क्योंकि मैं व्यस्त था और 16 जनवरी तक कॉलेज नहीं पहुँच सका। हालाँकि, हमने कुछ बड़े निर्णय लिए:

  • कोटलिन का विशेष रूप से उपयोग करें
  • सुविधा-आधारित पैकेजिंग का उपयोग करें
  • AndroidX के साथ Jetpack आर्किटेक्चर घटकों का उपयोग करें
  • एपीआई 21 को न्यूनतम एपीआई के रूप में उपयोग करें (22 एक बेहतर विकल्प हो सकता था)
  • Android Studio कैनरी का उपयोग करें
  • Git Flow और SemVer का उपयोग करें
  • उत्सव के बाद इसे सार्वजनिक करने के लिए पर्याप्त कोड लिखें?
2019 में Android ऐप कैसे विकसित करें: नए  Android को अपनाना
AndroidX के साथ जेटपैक

तो मूल रूप से, 2017 में ऐप विकसित करने के सभी अनुभव से 2019 में ब्लीडिंग एज तक एक हार्ड रीसेट। यह वास्तव में रोमांचक था, लेकिन एक बड़ी चुनौती भी थी।

कोड कोड कोड! ?

हमने तय किया कि अशंक ऐप के बैकएंड (DB और नेटवर्किंग, FCM के साथ नोटिफिकेशन, बैकग्राउंड प्रोसेसिंग) का ध्यान रखेंगे और मैं फ्रंटएंड और इंटीग्रेशन का ध्यान रखूंगा, ठीक वैसे ही जैसे हमने Pantheon '17 के लिए किया था। आरंभ करते समय और जैसे-जैसे हमने काम किया, वैसे-वैसे कई संसाधन काम आए, लेकिन Google द्वारा पेश किए गए ये बेहतरीन कोडलैब अब तक के सर्वश्रेष्ठ थे:

  • एक दृश्य वाला कमरा - कोटलिन (व्यूमॉडल, लाइवडाटा और कोरआउट के साथ कमरा)
  • अपने Android ऐप में Kotlin Coroutines का उपयोग करना
  • डेटा बाइंडिंग कोडलैब
  • नेविगेशन कोडलैब:(नेविगेशन आर्किटेक्चर घटक)
  • कार्य प्रबंधक के साथ पृष्ठभूमि कार्य
Google Codelabs
Google Developers Codelabs एक निर्देशित, ट्यूटोरियल, व्यावहारिक कोडिंग अनुभव प्रदान करता है। अधिकांश कोडलैब आपको आगे बढ़ाएंगे… codelabs.developers.google.com

साथ ही, Google द्वारा Sunflower और Google IO 18 ऐप्स संदर्भ के उद्देश्य के लिए आदर्श कोडबेस थे। एंड्रॉइड देव समिट ऐप भी संदर्भ के लिए एक अच्छा स्रोत होता, क्या मुझे इसके बारे में पहले पता था!

googlesamples/android-sunflower
एंड्रॉइड जेटपैक के साथ एंड्रॉइड डेवलपमेंट की सर्वोत्तम प्रथाओं को दर्शाने वाला एक बागवानी ऐप। - googlesamples/android-sunflower github.com

इनके साथ हमारे शस्त्रागार में, हमने कोडिंग शुरू की। मैंने नए नेविगेशन आर्किटेक्चर घटक का उपयोग करने का निर्णय लिया है एकल-गतिविधि ऐप आर्किटेक्चर लागू करने के लिए . अशांक ने रूम और एफसीएम से शुरुआत की। मैं कोइन . का उपयोग करने के बारे में भी सोच रहा था आईओसी के लिए , लेकिन इतना निश्चित नहीं था।

संयोग से, जो बिर्च ने उसी समय के आसपास कास्टर.आईओ पर एक कोइन कोर्स लॉन्च किया (पेशेवरों द्वारा छोटे पाठ्यक्रम, प्रत्येक लॉन्च पर एक सप्ताह के लिए मुफ्त!), और इसके साथ जाने का फैसला किया। वहाँ कोई पछतावा नहीं! गंभीरता से, Android समर्थन अद्भुत है और दस्तावेज़ीकरण शानदार है ❤️

कोइन
इस पाठ्यक्रम में, हम एक पूरी तरह कार्यात्मक निर्माण करके कोइन नामक एक निर्भरता इंजेक्शन ढांचे के बारे में सीखेंगे… Caster.io

नेविगेशन और कोइन सेटअप के साथ, मैंने UI के साथ शुरुआत की, निर्णय लिया कि मटेरियल डिज़ाइन घटकों का उपयोग करें विशेष रूप से UI के लिए जिसके लिए दिशानिर्देश और दस्तावेज़ काम आया। साथ ही, मेरे पास था डेटा बाइंडिंग का उपयोग करने के लिए क्योंकि मुझे इससे प्यार है! इस बीच, अशंक ने वर्कमैनेजर, . को लागू किया जिसे हमने Firebase जॉब डिस्पैचर के बजाय उपयोग करने . का निर्णय लिया है , पूरा जेटपैक जा रहा है!

पहली चीज जो मैंने विकसित की वह थी शेड्यूल यूआई, जिसने मुझे आर्किटेक्चर घटकों के साथ सहज होने में मदद की। इसके साथ, मैं पंजीकरण-प्रवाह यूआई पर चला गया, शायद ऐप का सबसे जटिल हिस्सा, जिसमें लाइव-मान्य रूपों के साथ तीन चरणों को लागू करने के लिए लाइवडाटा और नेविगेशन का उन्नत उपयोग दिखाया गया है (अपने स्वयं के ब्लॉग पोस्ट के लायक, आ रहा है) जल्द ही?!)। इसने मुझे इन घटकों में बहुत अधिक आत्मविश्वास दिया, और यह वहां से एक आसान सवारी थी। हमने नियोजित सुविधाओं को पूरा किया, कुछ गठजोड़ की खोज की, कुछ बगों को ठीक किया।

लॉन्च करें?

लागू की गई प्रमुख विशेषताओं के साथ, हमने कुछ UI ब्रश-अप किए, कुछ अंतिम TODO को पूरा किया, और लॉन्च के लिए तैयार थे! एक अंतिम चरण के रूप में, मैंने कुछ ऐसा जोड़ा जिसकी मैं हमेशा से योजना बना रहा था:

प्रत्येक कॉन्फ़िगरेशन परिवर्तन पर एक अलग रंग विषय! यह उत्सव की थीम की तारीफ करने के लिए किया गया था:"एशिया के रंग"

ऐप 11 फरवरी 2019 को प्ले स्टोर पर लाइव था! ??

बिटोत्सव '19 - Google Play पर ऐप्लिकेशन
बिड़ला इंस्टीट्यूट ऑफ टेक्नोलॉजी का 29वां संस्करण, मेसरा का वार्षिक सामाजिक-सांस्कृतिक उत्सव बिटोत्सव '19 शुरू होने वाला है... play.google.com
2019 में Android ऐप कैसे विकसित करें: नए  Android को अपनाना
बिटोत्सव '19 ऐप

फिक्स और अपडेट

हमने घंटों के भीतर (एकमात्र!) दो बगों का सामना किया, जिन्हें हमने तुरंत ठीक कर दिया। पहला डीएओ विधियों से संबंधित था जिसे suspend marked के रूप में चिह्नित किया जा रहा था , लेकिन मुझे अभी भी 100% यकीन नहीं है कि वास्तव में ऐसा क्यों हो रहा था? दूसरा क्रमांकन विफल होने के कारण आक्षेप के कारण हुआ था, और इसे आसानी से Keep a के साथ ठीक किया गया था संकेतन।

फिर मैंने अगले अपडेट पर काम करना शुरू किया, जिसमें मैंने फीड में लीडरबोर्ड और फेस्ट के लिए नाइट इवेंट्स को शेड्यूल में जोड़ा, साथ ही कुछ अन्य बदलाव भी किए। कुछ और छोटी सुविधाओं को जोड़ने के बाद तीसरे अपडेट में।

उत्सव अच्छा रहा, और ऐप का उपयोग 1000 से अधिक प्रतिभागियों ने किया!

हमारे मित्र सुशांत गुप्ता द्वारा सर्वर में गलत डीबी प्रविष्टि के कारण हमें एक छोटी सी समस्या का सामना करना पड़ा, जो बाद में उसी पर एक नाटकीय ब्लॉग पोस्ट लिखने के लिए आगे बढ़ा।

DDoS का बिटोत्सव '19 वेबसाइट पर हमला
यह तकनीकी लेखन नहीं है। यह एक कहानी है जिसे मैं साझा करना चाहता हूं जो कई वेब और ऐप के लिए एक सबक हो सकता है… cs.sonudoo.com

उत्सव के बाद, हमने एक अंतिम अपडेट जारी किया, जिसमें ईवेंट विवरण, फ़ीड आदि को ऐप के हिस्से के रूप में JSONs के रूप में संग्रहीत किया गया और गोपनीयता कारणों से आयोजकों के संपर्क नंबरों को संशोधित किया गया।

सार्वजनिक रूप से जाना!

यह कोड खोलने का समय था! इस बार, हमने समझने योग्य कोड लिखने का ध्यान रखा था, और यह दुनिया के लिए तैयार था। मैंने एक स्लीक README तैयार किया, और रिपॉजिटरी के इतिहास से संपर्क नंबरों को हटाने के लिए, हमने अद्भुत BFG रेपो क्लीनर टूल का उपयोग किया।

बिटोत्सव '19 ऐप का कोड अब सार्वजनिक हो गया है, जिसे कोई भी समीक्षा कर सकता है, संदर्भित कर सकता है, सीख सकता है या उपयोग कर सकता है! इसे देखें और एक छोड़ना न भूलें? ?

aksh1618/बिटोत्सव-19
बिटोत्सव '19 के लिए आधिकारिक ऐप। GitHub पर एक अकाउंट बनाकर aksh1618/Bitotsav-19 के विकास में योगदान करें। github.com

चुनौतियां ?

विकास के दौरान हमें कुछ चुनौतियों का सामना करना पड़ा:

  • समय सीमाएं: हमारे सामने जो मुख्य चुनौती थी, वह थी बहुत ही सीमित समय के लिए बहुत नई अवधारणाओं को सीखने और सैकड़ों लोगों द्वारा उपयोग किए जाने वाले ऐप को बनाने के लिए उनका उपयोग करना। इस समय की कमी के कारण लगातार घंटों का समय लगा, जिससे तनाव और थकान होने लगी, लेकिन हम इसे पूरा करने और वितरित करने में सक्षम थे!
  • कोरटाइन्स के साथ वर्कमैनेजर: चीजों के तकनीकी पक्ष पर, हमने WorkManager और Coroutines के साथ कुछ छोटी चुनौतियों का सामना किया, लेकिन हम उन्हें दूर करने में सक्षम थे। विकास जारी रहने पर संपूर्ण Android SDK में coroutines के लिए बेहतर समर्थन की आशा है?.
  • एपीआई 21: हमने पुराने संस्करणों पर काम करने के लिए सब कुछ अनुकूलित करने से बचने के लिए न्यूनतम एपीआई 21 को चुना, क्योंकि अधिकांश एंड्रॉइड डिवाइस वैसे भी एपीआई 21 और उससे ऊपर के हैं। लेकिन आश्चर्यजनक रूप से, कुछ चीजों ने एपीआई 21 पर काम करने से इनकार कर दिया, खासकर पृष्ठभूमि देखें। यह वास्तव में निराशाजनक था, मुझे लगता है कि हमने न्यूनतम एपीआई 22 के रूप में सेट किया था, और भी अधिक जब हमें पता चला कि ऐप केवल दो एपीआई 21 उपकरणों पर स्थापित किया गया था:जिन पर हमने परीक्षण किया था?।
  • उपकरणों की कमी: एक और चुनौती जिसका हमें सामना करना पड़ा, वह थी परीक्षण करने के लिए पर्याप्त उपकरण नहीं होना। पंथियन '17 के दौरान, हमारे पास ~ 200 लोगों के साथ एक छात्रावास था, और इस प्रकार परीक्षण करना आसान था। इस बार ज्यादातर लोग इंटर्नशिप के लिए गए थे, इसलिए हमारे पास कोड पर भरोसा करने के भरोसे रह गया था!
  • कोई कोड समीक्षक नहीं: हमने जो कुछ इस्तेमाल किया वह हमारे लिए नया था, और हमने यह सुनिश्चित करने की पूरी कोशिश की कि हम सब कुछ ठीक कर रहे हैं। लेकिन एक समीक्षक का होना बहुत मददगार होता। अब भी, अगर आपको लगता है कि आप ऐप के कोड की त्वरित समीक्षा कर सकते हैं, तो हम बहुत आभारी होंगे!
  • सर्वनाश: हमें इसका भी सामना करना पड़ा ' DDoS ’मुद्दा, ऊपर से लिंक सुशांत का ब्लॉग पोस्ट पढ़ें, आपको इसका पछतावा नहीं होगा!

टेकअवे

  • कोटलिन + जेटपैक =❤️ : मुख्य बात यह थी कि एंड्रॉइड डेवलपमेंट एक लंबा सफर तय कर चुका है और कोटलिन और जेटपैक के साथ, यह निश्चित रूप से बहुत अधिक मजेदार और पूरी तरह से आनंददायक है! गंभीरता से, कई ऑर्गेस्मिक थे कोडिंग प्रक्रिया के दौरान क्षण!
  • कुछ भी असंभव नहीं है: थोड़े क्लिच लेकिन सच है:अगर आपके पास कड़ी मेहनत करने की इच्छा है, तो आप कुछ भी कर सकते हैं, चाहे कितना भी मुश्किल हो। ज़रूर, तनावपूर्ण चरण होंगे, लेकिन इसके माध्यम से शक्ति प्राप्त करते रहें। बस खुद पर विश्वास करो!

पछतावा?

  • कोई झटपट ऐप / ऐप बंडल नहीं :हम सीधे इस एक से चूक गए। इसके बारे में सोचा ही नहीं। आह ठीक है, शायद अगली बार।
  • कोई परीक्षण नहीं :मुझे पता है, यह एक बड़ा है! उचित परीक्षण होने से हमें बहुत मदद मिल सकती थी, लेकिन समय की कमी के कारण, हमने 'बाद के' समय तक परीक्षण नहीं लिखने का फैसला किया, जो अभी तक नहीं आया है?.

TL;DR. ?

2019 के ऐप से शुरू हो रहा है?

Kotlin &Coroutines का इस्तेमाल करें

  • कोटलिन सीखें और इसका विशेष रूप से उपयोग करें!
  • Android के साथ coroutines का उपयोग करना सीखें।

AndroidX के साथ Jetpack घटकों का उपयोग करें

  • एकल-गतिविधि आर्किटेक्चर के लिए नेविगेशन घटक का उपयोग करना सीखें।
  • यूआई के लिए जीवनचक्र घटकों और दृढ़ता के लिए कक्ष का उपयोग करना सीखें।
  • खुद पर एक एहसान करें और डेटा बाइंडिंग का उपयोग करें!
  • पृष्ठभूमि प्रसंस्करण के लिए WorkManager का उपयोग करना सीखें।

सामग्री घटकों का उपयोग करें

  • सामग्री घटक दिशानिर्देश
  • सामग्री घटक Android डॉक्स

परीक्षा लिखें!

खैर हम नहीं कर सके लेकिन आपको निश्चित रूप से करना चाहिए! परीक्षण न छोड़ें।

सोर्स कोड देखें

.. ऐसे ऐप्स जो ये काम करते हैं:सनफ्लावर ऐप, आईओ ऐप, देव समिट ऐप या, ज़ाहिर है, बिटोत्सव '19 ऐप! (भी, एक तारा छोड़ें?)

अप टू डेट रहें

अद्यतित रहने के लिए ब्लॉग और न्यूज़लेटर्स की सदस्यता लें! शुरू करने के लिए यहां कुछ हैं:Android Weekly, ProAndroidDev, AndroidPub, Kotlin Weekly। अभिभूत? हुयेन ट्यू डाओ की यह शानदार बातचीत देखें:

पानी की तरह बनें:Android के साथ बने रहें
यदि आप 360 AnDev से बातचीत का आनंद लेते हैं, तो कृपया Patreon के माध्यम से सम्मेलन का समर्थन करें! मोबाइल में काम करने का एक स्थिरांक है… academy.realm.io

खैर, हम वहाँ जाते हैं। यह Android विकास के लिए बहुत अच्छा समय है, इसलिए अपने नए ऐप के साथ शुरुआत करें, और इसे करते समय मज़े करना न भूलें!

अगर आपने कुछ सीखा है तो कमेंट करें। रचनात्मक आलोचना का स्वागत है?

मुझे ट्विटर पर पकड़ो? , लिंक्डइन ? या गिटहब ??

अगली बार तक ??


  1. Play Store पर Android ऐप बंडल को स्वचालित रूप से कैसे अपलोड करें

    इस लेख में, मैं यह समझाने जा रहा हूं कि Play Store के बीटा ट्रैक पर Android ऐप बंडल (.aab फ़ाइल) को स्वचालित रूप से कैसे अपलोड किया जाए। हम Android Studio और AWS को क्लाउड इंफ्रास्ट्रक्चर प्रदाता के रूप में उपयोग करेंगे। ऐप बंडल अपलोड करने के बाद, हम एक स्लैक नोटिफिकेशन ट्रिगर करेंगे। यह कई कारणों

  1. ऐप के 2019 संस्करण में टिकटॉक पर लाइव कैसे जाएं?

    टिक टोक (जिसे पहले Musical.ly के नाम से जाना जाता था) दुनिया भर में इंटरनेट सनसनी बन गया है। यह सब डब-स्मैश वीडियो और लिप सिंक के साथ शुरू हुआ, लेकिन अब, आश्चर्यजनक रूप से, टिक टोक को एक प्रमुख कंटेंट क्रिएटर ऐप माना जाता है। हालाँकि उस मामले पर मेरी व्यक्तिगत राय थोड़ी अलग है, फिर भी, टिक टोक को दु

  1. एंड्रॉइड ऐप के लिए आउटलुक में ईमेल कैसे सेट करें

    आउटलुक दशकों से सबसे लोकप्रिय ईमेल प्रबंधन समाधानों में से एक रहा है और दुनिया भर में कई व्यक्तियों और व्यवसायों द्वारा इसका उपयोग किया जाता है। हालांकि यह प्राथमिक उपकरण हो सकता है जिसका उपयोग आप अपने कंप्यूटर पर ईमेल तक पहुंचने के लिए करते हैं, यह आपके स्मार्टफोन के बारे में बात करते समय निश्चित र