क्रिप्टोफ़ोलियो ऐप सीरीज़ — परिचय
ब्लॉग पोस्ट की इस श्रृंखला में आपका स्वागत है जहां मैं एक आधुनिक Android ऐप बनाऊंगा। मैं वर्ष 2018-2019 में उपलब्ध सर्वोत्तम उपकरणों और प्रथाओं का उपयोग करूंगा। मैं ऐसा इसलिए कर रहा हूं क्योंकि मैं Android की दुनिया के सभी सबसे चर्चित विषयों को कवर करना चाहता हूं और आपको पढ़ाकर उनमें ज्ञान प्राप्त करना चाहता हूं।
यदि आप इस श्रृंखला का पालन करते हैं, तो आप सीखेंगे कि ऐप को स्क्रैच से कैसे विकसित किया जाए। इस श्रृंखला के प्रत्येक ब्लॉग पोस्ट में कुछ विशिष्ट विकास विषय शामिल होंगे जिनके बारे में मैं बात करना चाहता हूं। मैं एक अच्छी गुणवत्ता वाला ऐप बनाने और विकास प्रक्रिया को समझाने की पूरी कोशिश करूंगा। श्रृंखला की यह पहली ब्लॉग पोस्ट एक परियोजना का रोडमैप है जो हम करने जा रहे हैं।
श्रृंखला सामग्री
- परिचय:2018–2019 में एक आधुनिक Android ऐप बनाने का रोडमैप (आप यहां हैं)
- भाग 1:ठोस सिद्धांतों का परिचय
- भाग 2:अपना Android ऐप कैसे बनाना शुरू करें:मॉकअप, UI और XML लेआउट बनाना
- भाग 3:उस आर्किटेक्चर के बारे में सब कुछ:विभिन्न आर्किटेक्चर पैटर्न की खोज करना और उन्हें अपने ऐप में कैसे उपयोग करना है
- भाग 4:डैगर 2 के साथ अपने ऐप में डिपेंडेंसी इंजेक्शन कैसे लागू करें
- भाग 5:Retrofit, OkHttp, Gson, Glide और Coroutines का उपयोग करके RESTful Web Services को हैंडल करें
ऐप:"क्रिप्टोफोलियो" (पहले "माई क्रिप्टो कॉइन्स") आइडिया
पहले तो सभी Android विकास प्रवृत्तियों को प्रदर्शित करने की योजना के बारे में सोचना कठिन था, लेकिन अंत में, मुझे वह मिल गया जो मुझे पसंद आया। यह मेरे विशाल रुचि क्षेत्र - ब्लॉकचेन और क्रिप्टोकरेंसी से संबंधित है। मैंने एक ऐप बनाने का फैसला किया है जिसमें आपका क्रिप्टोकुरेंसी पोर्टफोलियो होगा और आपको बताएगा कि वे कितने फ़ैट मनी में परिवर्तित होने लायक हैं।
यूजर के लिए अहम बात यह है कि यह ऐप 100% विश्वास सुनिश्चित करने वाला है। इसके लिए किसी लॉगिन/पंजीकरण प्रक्रिया की आवश्यकता नहीं होगी। यह सर्वर पर भेजकर उपयोगकर्ताओं का डेटा एकत्र नहीं करेगा। मुझे लगता है कि स्वामित्व वाले पैसे के बारे में ऑनलाइन जानकारी साझा करने में कोई भी सहज महसूस नहीं करेगा।
क्रिप्टोक्यूरेंसी निवेश के बारे में उपयोगकर्ताओं द्वारा प्रदान किया गया डेटा केवल एक स्थानीय डेटाबेस के अंदर संग्रहीत किया जाएगा जो एक एंड्रॉइड डिवाइस के अंदर रखा जाता है। हालांकि, फिएट मनी में परिवर्तित पोर्टफोलियो के मूल्य को जानने के लिए, ऐप नवीनतम रूपांतरण दर प्राप्त करने के लिए इंटरनेट का उपयोग करने जा रहा है।
तो जैसा कि आप प्रशिक्षण उद्देश्यों के लिए देखते हैं, यह ऐप विचार बहुत अच्छा है। डेटा के साथ काम करने के लिए अलग-अलग तरीकों को आजमाना आपको तकनीकी रूप से चुनौती दे रहा है। आधुनिक ऐप्स बनाने के लिए यह सबसे महत्वपूर्ण कौशलों में से एक है। लोगों के लिए पैसे का विषय बहुत संवेदनशील है। और भी अधिक विश्वास सुनिश्चित करने के लिए, मैं इस ब्लॉग पोस्ट श्रृंखला को बनाकर और प्रोजेक्ट कोड उपलब्ध कराकर इस ऐप को खुले तौर पर विकसित करूंगा ताकि हर कोई देख सके कि छिपाने के लिए कुछ भी नहीं है।
हम किसका उपयोग करने जा रहे हैं?
सबसे पहले, इस ऐप को बनाने के लिए, हमें वर्तमान समय में विभिन्न क्रिप्टोकरेंसी की कीमतों के बारे में जानना होगा। यह डेटा इंटरनेट से प्रदान किया जाएगा क्योंकि यह लगातार बदल रहा है।
डेटा API:
CoinMarketCap — क्रिप्टोक्यूरेंसी बाजार का अवलोकन प्राप्त करने के लिए सबसे लोकप्रिय वेबसाइटों में से एक। यह वेबसाइट एक मुफ्त एपीआई प्रदान करती है जिसका उपयोग कोई भी कर सकता है और यह डेटा सेवा प्रदाता के रूप में हमारे लिए पूरी तरह फिट बैठता है।
इसके बाद, मैंने एंड्रॉइड की दुनिया में अपनी सबसे महत्वपूर्ण ट्रेंडिंग चीजों की एक सूची बनाई जो इस परियोजना के लिए उपयुक्त हैं और इसका उपयोग किया जाना चाहिए।
प्रोग्रामिंग भाषा:
कोटलिन — Android पर एक आधिकारिक भाषा। यह अभिव्यंजक, संक्षिप्त और शक्तिशाली है। सबसे अच्छी बात यह है कि यह मौजूदा Android भाषाओं और रनटाइम के साथ इंटरऑपरेबल है।
यह नया भाषा परिचय 2017 में Android के लिए सबसे चर्चित विषयों में से एक था। इसमें हमारे ऐप को लिखना होगा। मैं अपने पिछले ब्लॉग पोस्ट में कोटलिन और इसकी विशेषताओं के बारे में भी बात करता हूं "एंड्रॉइड कैलकुलेटर ऐप बनाकर कोटलिन सीखें"।
एकीकृत विकास परिवेश (IDE):
Android Studio — Android के लिए आधिकारिक IDE। यह हर प्रकार के Android डिवाइस पर ऐप्स बनाने के लिए सबसे तेज़ टूल प्रदान करता है। देशी ऐप्स विकसित करने के लिए इससे बेहतर कोई विकल्प नहीं है। बिना किसी प्रश्न के IDE के लिए यह हमारी मुख्य पसंद है।
प्रोजेक्ट बिल्ड मैनेजमेंट सिस्टम:
ग्रैडल - ग्रूवी और कोटलिन पर आधारित एक उन्नत सामान्य प्रयोजन निर्माण प्रबंधन प्रणाली है। यह निर्भरता या अन्य पुस्तकालयों के स्वचालित डाउनलोड और कॉन्फ़िगरेशन का समर्थन करता है। यह Google द्वारा अनुशंसित निर्माण प्रणाली है। यह एंड्रॉइड स्टूडियो के अंदर अच्छी तरह से एकीकृत है इसलिए हम इसका उपयोग करेंगे।
आर्किटेक्चर:
Android आर्किटेक्चर कंपोनेंट्स — पुस्तकालयों का एक संग्रह जो आपको मजबूत, परीक्षण योग्य और रखरखाव योग्य ऐप्स डिज़ाइन करने में मदद करता है।
मॉडल-व्यू-व्यूमॉडल (एमवीवीएम) - एक वास्तुशिल्प पैटर्न। अवधारणा डेटा प्रस्तुति तर्क को स्पष्ट अंतर के लिए एक विशेष वर्ग में ले जाकर व्यावसायिक तर्क से अलग करना है। Android टीम इस पैटर्न को डिफ़ॉल्ट विकल्प के रूप में आगे बढ़ा रही है। साथ ही, यह MVC और लोकप्रिय MVP पैटर्न का एक विकल्प है।
मैं इस श्रृंखला में इस पैटर्न की पसंद, अन्य आर्किटेक्चर विकल्पों और सामान्य रूप से हमारे कोड को अच्छी तरह से व्यवस्थित करने के तरीके के बारे में अलग से बात करूंगा। यदि हम आसानी से बनाए रखने योग्य ठोस परियोजना बनाना चाहते हैं तो यह आवश्यक है।
Coroutines — एक समवर्ती डिज़ाइन पैटर्न जिसका उपयोग आप Android पर अतुल्यकालिक रूप से निष्पादित कोड को सरल बनाने के लिए कर सकते हैं।
डेटा दृढ़ता:
SQLite डेटाबेस - यह एक ओपन सोर्स SQL डेटाबेस है जो डेटा को किसी डिवाइस पर टेक्स्ट फ़ाइल में लगातार संग्रहीत करता है। Android अंतर्निहित SQLite डेटाबेस कार्यान्वयन के साथ आता है। SQLite सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है।
साझा प्राथमिकताएं - एप्लिकेशन प्राथमिकताओं को संग्रहीत और पुनर्प्राप्त करने के लिए एंड्रॉइड एसडीके से एक एपीआई। SharedPreferences लगातार संग्रहीत डेटा मानों के सेट हैं। यह आपको कुंजी मान जोड़े के रूप में डेटा को सहेजने और पुनर्प्राप्त करने की अनुमति देता है।
पुस्तकालय:
एंड्रॉयड जेटपैक घटक:
AppCompat - यह समर्थन पुस्तकालयों का एक सेट है जिसका उपयोग उन ऐप्स को बनाने के लिए किया जा सकता है जिन्हें नए संस्करणों के साथ विकसित किया गया था, पुराने संस्करणों के साथ काम करते हैं।
एंड्रॉइड केटीएक्स - एंड्रॉइड ऐप डेवलपमेंट के लिए कोटलिन एक्सटेंशन का एक सेट। एंड्रॉइड केटीएक्स का लक्ष्य एक्सटेंशन फ़ंक्शंस/प्रॉपर्टीज, लैम्बडास, नामित पैरामीटर्स और पैरामीटर डिफॉल्ट्स जैसी भाषा की विशेषताओं का लाभ उठाकर कोटलिन के साथ एंड्रॉइड डेवलपमेंट को अधिक संक्षिप्त, सुखद और मुहावरेदार बनाना है।
डेटा बाइंडिंग — एक सपोर्ट लाइब्रेरी है जो आपको प्रोग्राम के बजाय डिक्लेरेटिव फ़ॉर्मेट का उपयोग करके अपने ऐप में डेटा स्रोतों के लिए अपने लेआउट में UI घटकों को बाँधने की अनुमति देती है।
जीवनचक्र — आपकी गतिविधि और खंड जीवनचक्र के प्रबंधन के लिए।
LiveData — एक अवलोकन योग्य डेटा धारक वर्ग है जिसे सामान्य Android जीवनचक्र चुनौतियों को हल करने और ऐप्स को अधिक रखरखाव योग्य और परीक्षण योग्य बनाने में मदद करने के लिए डिज़ाइन किया गया था।
कक्ष — यह SQLite पर एक अमूर्त परत प्रदान करता है ताकि SQLite की पूर्ण शक्ति का उपयोग करते हुए आसान डेटाबेस पहुँच की अनुमति दी जा सके।
ViewModel - जीवनचक्र के प्रति सचेत तरीके से UI से संबंधित डेटा को संग्रहीत और प्रबंधित करने के लिए डिज़ाइन किया गया है। ViewModel वर्ग डेटा को स्क्रीन रोटेशन जैसे कॉन्फ़िगरेशन परिवर्तनों से बचने की अनुमति देता है।
अन्य:
ConstraintLayout - लचीले और कुशल लेआउट के निर्माण के लिए। लेआउट संपादक लेआउट के भीतर UI तत्व की स्थिति निर्धारित करने के लिए बाधाओं का उपयोग करता है। एक बाधा किसी अन्य दृश्य, पैरेंट लेआउट, या एक अदृश्य दिशानिर्देश के कनेक्शन या संरेखण का प्रतिनिधित्व करती है।
CardView — वह तत्व जो एक ड्रॉप शैडो (ऊंचाई) और कोने की त्रिज्या के साथ कार्ड तरीके से जानकारी का प्रतिनिधित्व करता है जो पूरे प्लेटफॉर्म पर एक जैसा दिखता है।
RecyclerView - ListView का एक लचीला और कुशल संस्करण। यह दृश्यों के बड़े डेटा सेट को प्रस्तुत करने के लिए एक कंटेनर है जिसे पुनर्नवीनीकरण किया जा सकता है और बहुत कुशलता से स्क्रॉल किया जा सकता है।
तृतीय पक्ष:
डैगर 2 — यह जावा और एंड्रॉइड दोनों के लिए पूरी तरह से स्थिर, संकलन-समय पर निर्भरता इंजेक्शन ढांचा है।
रेट्रोफिट 2 - एंड्रॉइड और जावा के लिए एक ओपन सोर्स टाइप-सेफ HTTP क्लाइंट। रेट्रोफिट के साथ, हम एक एपीआई दस्तावेज़ की तरह एक सरल, अभिव्यंजक इंटरफ़ेस के माध्यम से आसानी से HTTP कनेक्शन बना सकते हैं।
OkHttp — एक खुला स्रोत आधुनिक, तेज़ और कुशल HTTP क्लाइंट जो HTTP/2 और SPDY का समर्थन करता है।
Gson — एक ओपन सोर्स जावा लाइब्रेरी, जो JSON से और उसके लिए जावा ऑब्जेक्ट को क्रमानुसार और अक्रमांकन करती है।
ग्लाइड - एंड्रॉइड के लिए एक तेज और कुशल छवि लोडिंग लाइब्रेरी चिकनी स्क्रॉलिंग पर केंद्रित है। ग्लाइड उपयोग में आसान एपीआई, एक प्रदर्शनकारी और एक्स्टेंसिबल संसाधन डिकोडिंग पाइपलाइन और स्वचालित संसाधन पूलिंग प्रदान करता है।
नया प्रोजेक्ट कॉन्फ़िगर करना
हम इस प्रोजेक्ट को स्क्रैच से बनाएंगे। इसलिए मैं एंड्रॉइड स्टूडियो लॉन्च करूंगा, एक नया प्रोजेक्ट बनाऊंगा, इसे "माई क्रिप्टो कॉइन्स" नाम दूंगा और "बेसिक एक्टिविटी" का चयन करूंगा। इस बिंदु पर, चर्चा करने के लिए कुछ खास नहीं है। हमारा लक्ष्य एक नई, स्वच्छ शुरुआत करना है और अतिरिक्त सुविधाओं (जैसे, तत्काल ऐप समर्थन) को जोड़कर हमारे दिमाग में किसी भी जटिलता से बचना है। विकास प्रक्रिया के दौरान हम चाहें तो बाद में कुछ भी जोड़ सकते हैं।
शुरुआत के लिए आइए कोटलिन भाषा समर्थन और लक्ष्य एपीआई 23:एंड्रॉइड 6.0 (मार्शमैलो) शामिल करें।
मैं निम्न या उच्चतर API को लक्षित क्यों नहीं कर रहा हूँ? चलो सामना करते हैं। कुछ पुराने उपकरणों के लिए समर्थन में कटौती करना और विकास के दौरान किसी भी संगतता समस्या के बारे में चिंता न करना अच्छा है। साथ ही, मैं एक पुराने Nexus 7 (2013) टैबलेट का गर्वित स्वामी हूं, जो Android 6.0.1 चला रहा है। मैं इस पर अपने ऐप का लाइव परीक्षण करने की आशा करता हूं। ? तो इस व्यक्तिगत परियोजना के लिए जिसने मेरी न्यूनतम एसडीके पसंद को प्रभावित किया।
जैसा कि आपने देखा है, मैं आईडीई को खंड समर्थन और एक फ्लोटिंग एक्शन बटन के साथ स्वचालित रूप से उत्पन्न बुनियादी गतिविधि जोड़ने के लिए कहने जा रहा हूं। मुझे लगता है कि वह सब कुछ जो हमारे प्रोजेक्ट के लिए उपयोगी हो सकता है।
GitHub — संस्करण नियंत्रण के लिए सबसे लोकप्रिय वेब-आधारित होस्टिंग सेवा में से एक है। यह एक ओपन सोर्स प्रोजेक्ट है, और निश्चित रूप से, मैं इसका उपयोग करूंगा।
इस श्रृंखला के सभी ब्लॉग पोस्ट में अलग-अलग शाखाओं और नवीनतम स्रोत कोड संस्करण के लिए मास्टर शाखा के रूप में इसके कमिट होंगे। यहां आपके लिए रिपोजिटरी का लिंक दिया गया है।
GitHub पर स्रोत कोड देखें
शुरुआत के लिए यही है। यदि आपके कोई प्रश्न, सुझाव, टिप्पणी करने के लिए हैं, तो कृपया टिप्पणियों में ऐसा करने के लिए स्वतंत्र महसूस करें। और अब एक साथ सीखते हैं! अगला भाग 2 है… ?
आशी! पढ़ने के लिए धन्यवाद! मैंने मूल रूप से इस पोस्ट को अपने ब्लॉग www.baruckis.com के लिए 12 फरवरी, 2018 को प्रकाशित किया था।