विषयसूची:
- जो सिम्पसन (@kennydude) - Boid
- क्रिस्टोफ़ वर्सीक्स - BeTrains - एसएनसीबी बेल्जियम; HoloEverywhere
- मैथ्यू रनो - जैपोस
- जोश बर्टन - jememote
एंड्रॉइड विभिन्न उपकरणों पर चलता है, जिसका अर्थ है कि यह कई प्रकार के स्क्रीन आकार और संकल्पों पर भी चलता है। बहुत से लोग इसे "विखंडन" कहते हैं। इस तथ्य पर कभी ध्यान न दें कि वे अपने डेस्कटॉप पर वर्षों से उसी तरह से डिजाइन और विकसित किए गए उत्पादों का उपयोग कर रहे हैं। जाहिर है अगर सब कुछ ठीक वैसा ही न हो तो उसे "विखंडन" लेबल मिल जाता है।
जब आप विभिन्न आकारों और घनत्वों के साथ स्क्रीन का उपयोग करते हैं, तो आने वाली समस्याओं से निपटने के विभिन्न तरीके हैं। Apple के पास iPhone बनाम iPad के लिए डिज़ाइन किए गए ऐप्स के लिए अलग-अलग लिस्टिंग है। Microsoft अपने बड़े स्क्रीन उपकरणों के लिए एक नया इको-सिस्टम बनाता है। एंड्रॉइड डेवलपर्स के लिए अलग-अलग स्क्रीन के लिए एक ही ऐप को अलग तरीके से काम करने का एक तरीका प्रदान करता है। प्रत्येक विधि के बारे में अच्छा और बुरा है, लेकिन हम यहां Android पर ध्यान केंद्रित करने जा रहे हैं।
एंड्रॉइड में, एप्लिकेशन विभिन्न आकार के स्क्रीन के साथ-साथ रिज़ॉल्यूशन के लिए लेआउट को समायोजित कर सकते हैं। यह सभी में बनाया गया है, लेकिन कुछ चीजें हैं जिन्हें डेवलपर्स को अपने कोड में घोषित करने की आवश्यकता है ताकि ऐप अच्छा दिख सके। ध्यान रखने वाली बात यह है कि स्क्रीन का आकार और घनत्व किस प्रकार ऐप का रूप बदल देगा। Droid डीएनए में मोटोरोला XOOM टैबलेट की तुलना में एक उच्च-रिज़ॉल्यूशन स्क्रीन है, लेकिन हम फोन के आकार की स्क्रीन पर ऐप्स के लिए टैबलेट लेआउट नहीं देखना चाहते हैं।
एक डेवलपर को ऐसी परिसंपत्तियां (छवियां) प्रदान करने की आवश्यकता होती है जो उच्च रिज़ॉल्यूशन (कभी भी अत्यधिक उच्च रिज़ॉल्यूशन को ध्यान में न रखें) पर तेज देखने के लिए पर्याप्त गुणवत्ता वाले हों, और उनके लेआउट को डिज़ाइन करते समय घनत्व स्वतंत्र पिक्सेल इकाइयों का उपयोग करना सुनिश्चित करें। यह वही है जो गैलेक्सी एस 2 जैसी कम घनत्व वाली स्क्रीन पर बटन और अन्य नियंत्रण जैसी चीजों को रखता है, या डीएनए जैसे उच्च घनत्व स्क्रीन पर वास्तव में छोटा होने से।
यह जटिल लगता है, लेकिन ऐप को कोड करते समय इस सामग्री का अधिकांश हिस्सा आपके लिए किया जाता है। सभी डेवलपर को सही घोषणा करने की आवश्यकता है, और किसी भी आकार (भौतिक और संकल्प दोनों) या लेआउट का समर्थन करने के लिए सही संपत्ति प्रदान करना है। यहां तक कि Google+ ऐप जैसे कई लेआउट ऐप प्रत्येक बोधगम्य स्क्रीन को कवर करने के लिए समान कोड का उपयोग करते हैं।
हम यहां डेवलपर्स को जज करने की कोशिश नहीं कर रहे हैं। ऐप्स लिखना कठिन है। एंड्रॉइड डेवलपर्स जिंजरब्रेड की रिहाई के बाद से यह सब प्रचार कर रहे हैं, लेकिन यह कितना व्यावहारिक है? हमने इसके बारे में कुछ डेवलपर्स से पूछा, देखें कि ब्रेक के बाद उन्हें क्या कहना था।
अधिक: Google की Android डेवलपर साइट।
हमने कुछ मुट्ठी भर डेवलपर्स (दोनों बड़े और छोटे) से इस विषय पर कुछ बुनियादी सवाल पूछे।
- दिशानिर्देशों का पालन करना कितना मुश्किल है?
- यह कागज पर आसान लगता है, लेकिन क्या आपके द्वारा देखे गए या Google द्वारा कवर किए गए कुछ विशेष मुद्दे हैं?
- यह विकास के समय और लागतों को कैसे प्रभावित करता है, अगर सभी पर?
- आप जिस विषय को साझा करना चाहते हैं, उसके बारे में और कुछ?
मैंने प्रश्नों को यथासंभव तटस्थ बनाने की कोशिश की ताकि हम इसमें कुछ पूर्वाग्रह न रखें। संदेह होने पर, आप उन लोगों से पूछते हैं जो जानते हैं, है ना? मैंने प्रोग्रामिंग का अपना उचित हिस्सा किया है, लेकिन जावा में कोडिंग और एंड्रॉइड ऐप्स का निर्माण सी या मशीन कोड, या पर्ल में कोड लिखने से बहुत अलग है। ऐसी बारीकियाँ हैं जो मुझे समझ में नहीं आती हैं, भले ही मुझे ऐप बनाने के सामान्य तरीके मिलें।
मैं समझता हूं कि आप में से बहुत से लोग मेरे जैसे हैं और Android ऐप्स बनाने की पेचीदगियों को नहीं जानते हैं। हम केवल देखते हैं कि एंड्रॉइड डेवलपर्स क्या कहते हैं, और वे इसे आसान बनाते हैं। उनके लिए, यह शायद है - वे 2007 से जमीन से इस सामान को लिख रहे हैं। आइए देखें कि जो लोग उनका पालन करने में सक्षम हैं उन्हें क्या कहना है।
जो सिम्पसन (@kennydude) - Boid
जो टीम Boid का सदस्य है, और अपने दम पर आवेदन भी प्रकाशित करता है। वह (और उनकी टीम के बाकी सदस्य) एंड्रॉइड के लिए एक जुनून के साथ स्वतंत्र डेवलपर्स का एक बड़ा उदाहरण हैं जिन्होंने कुछ अद्भुत अनुप्रयोगों को क्रैंक किया है।
दिशानिर्देशों का पालन करना काफी कठिन है, खासकर यदि आप एक दुबला ऐप चाहते हैं, लेकिन लोग बैक-संगतता चाहते हैं। सबसे कष्टप्रद चीजों में से एक यह देख रहा है कि d.android.com/design पर क्या कुछ दिखता है लेकिन वास्तव में ऐसा कैसे करना है इस पर कुछ भी नहीं।
जब आप शारीरिक रूप से ट्विटर के कारण GCM का उपयोग नहीं कर सकते हैं, और आप Ptr का उपयोग नहीं करना चाहते हैं तो एक कमजोर बिंदु ताज़ा है। इसके अलावा, Google के ऐप्स अपने दिशानिर्देश बनाते हैं। उदाहरण के लिए स्लाइड-इन फलक को लें, Google+ इसे YouTube की तुलना में अलग करता है (हालांकि मुझे पता है कि समर्थन पुस्तकालय इसे उम्मीद से निपटाने जा रहा है)।
इसके अलावा, आप एक बिंदु पर जा सकते हैं और कुछ पर कोई प्रलेखन नहीं है (उदाहरण के लिए EdgeEffect)।
मैं एक छात्र हूं, इसलिए कुछ लागतें हैं जो मैं इसे नहीं देखता, और हाँ इसमें समय लगता है, लेकिन आपके उपयोगकर्ता आपसे प्यार करेंगे। असल में, लाइव शो (ADiA, ऐप क्लिनिक, ऑफिस ऑवर्स) एक (दुर्भाग्य से) हैं, हालांकि वे Google के ऐप्स के बारे में प्रतिक्रिया नहीं दे सकते।
Boid जल्द ही ओपन-सोर्स (yay!) जाने वाला है, और आप Google Play में ही एप्लिकेशन पा सकते हैं। आपको जोए के सभी ऐप्स (वहां कुछ गहने हैं) भी यहीं मिलेंगे।
क्रिस्टोफ़ वर्सीक्स - BeTrains - एसएनसीबी बेल्जियम; HoloEverywhere
क्रिस्टोफ़ ने कई एंड्रॉइड एप्लिकेशन बनाए हैं, जिनमें BeTrains - SNB Belguim - एक भव्य लेआउट वाला ऐप है, जो दिखाता है कि एक अच्छी तरह से निर्मित एप्लिकेशन के साथ क्या किया जा सकता है। जबकि अमेरिका में अधिकांश इसका इस्तेमाल कभी नहीं करेंगे (यह बेल्जियम की रेल के लिए एक ट्रेन शेड्यूल ऐप है) यह स्थापित करने के लायक है कि यह कितना अच्छा है। पश्चिमी यूरोप के लोग निश्चित रूप से इस बारे में जानते हैं।
इसके अलावा, उन्होंने एक पुस्तकालय, जहां अन्य डेवलपर्स Android 2.1 और उच्चतर के लिए Holo शैली अनुप्रयोगों के निर्माण के लिए उपयोग कर सकते हैं, HoloEverywhere का सह-विकास किया है। कई फोन अभी भी जिंजरब्रेड चलाने के साथ, यह डेवलपर्स के लिए एक वास्तविक उपचार है जो अपने ऐप को चालू रखना चाहते हैं।
यह बिल्कुल मुश्किल नहीं है। गंभीरता से। मुश्किल हिस्सा तब आता है जब ग्राहक उन दिशानिर्देशों से दूर होने के लिए कहता है!
मुझे एक ग्राहक याद है जो मुझे स्क्रीन के नीचे टैब, हर जगह iPhone बटन, iPhone- शैली टॉगल करना चाहता था और इस परियोजना को हासिल करना वास्तव में कठिन था और मैंने वास्तव में इस पर बहुत समय और पैसा खो दिया।
मुझे उस पर बहुत गुस्सा आया जब उसने ये सारी बेवकूफी भरी बातें पूछीं, और उसने सोचा कि मैं एक आलसी डेवलपर हूं।
मेरा अब उनके साथ बहुत संपर्क है और हम पूरी तरह से उनके ऐप को फिर से लिख रहे हैं, इन सभी बेकार सुविधाओं को हटाकर एक "शुद्ध" एंड्रॉइड ऐप बनाकर भयानक कोड बनाएं। ग्राहकों और कंपनियों को बस उन दिशा-निर्देशों के बारे में पता होना चाहिए, मेरा दृढ़ विश्वास है।
ActionBarSherlock, HoloEverywhere (मेरा निर्माण), UnifiedPreferences और SlidingMenu जैसी लाइब्रेरी वास्तव में कोड का एक भयानक उपयोगकर्ता अनुभव की कुछ पंक्तियों में उपयोग करना और प्रदान करना आसान है।
समय और लागत, जैसा कि मैंने कहा कि Google दिशानिर्देशों का पालन करके कम से कम किया जाता है। टुकड़े और लेआउट फ़ोल्डर वास्तव में उपयोग करना आसान है (और पुन: उपयोग करने के लिए और अधिक महत्वपूर्ण): एक टैबलेट ऐप केवल फोन लेआउट से कोड के टुकड़े को पकड़ो और कुछ भी फिर से लिखना नहीं चाहिए। फोन ऐप में छोटे-छोटे बदलाव तुरंत टैबलेट ऐप में दिखाई देते हैं, क्योंकि उसी फ्रेगमेंट का इस्तेमाल किया जाता है।
कुछ अद्भुत परियोजनाएं समुदाय द्वारा बनाई जाती हैं, हमेशा Google द्वारा नहीं। कुछ लोग, जो Google+ पर बहुत सक्रिय हैं, जैसे रोमन नुरिक (Google), रेटो मीयर (Google) जुहानी लेहटिमैकी, जेक व्हार्टन, टेलर लिंग,.. (मैं महत्वपूर्ण लोगों को भूलने से हमेशा डरता हूं) बहुत शिक्षाप्रद हैं। डेवलपर्स को केवल यह जानने की जरूरत है कि कहां देखना है और एंड्रॉइड डेवलपमेंट उनके लिए आसान होगा!
आप Google Play पर BeTrains पा सकते हैं, और आप Android विकास में रुचि रखते हैं, तो आप HoloEverywhere पर एक नज़र रखना चाहते हैं।
मैथ्यू रनो - जैपोस
हमने जिन छोटे स्वतंत्र डेवलपर्स के साथ बात की, उनमें से कुछ के विपरीत, हमने मैथ्यू से जैपोस में भी सुना। ज़प्पोस एक वेब रिटेल कॉर्पोरेशन है और संभावना है कि उनकी वेबसाइट और साथ ही उनके अनुप्रयोगों पर डिज़ाइन के लिए एक समर्पित बजट हो। यह भी एक कंपनी है जिसे मैं नियमित रूप से खरीदता हूं, लेकिन इसका कोई असर नहीं हुआ और मैथ्यू इस बात से अनभिज्ञ था कि जब वह स्वेच्छा से था तब मैं लगातार ग्राहक हूं।
ज़ापोस में, चूंकि हम एक खुदरा विक्रेता हैं, इसलिए हमें अपने ब्रांड के लिए सबसे पहले और सबसे आगे रहना होगा। निराला, मज़ेदार और दीवार से थोड़ा हटकर। उस ने कहा, हम दोनों एंड्रॉइड डिजाइन दिशानिर्देशों में मजबूत विश्वासियों हैं - और यूआई में जो कुछ भी हम करते हैं, उन नियमों की भावना से लिया जाता है। एक साल पहले, हमारा ऐप ज्यादातर iOS पोर्ट था, जहां से यह दिखता था और काम करता था। आज, यह (मुझे लगता है) Android में आप क्या कर सकते हैं का एक रत्न है। जब भी संभव हो हम दिशानिर्देशों का पालन करते हैं - और हमारे डिजाइनर उनसे शुरुआती बिंदु के रूप में काम करते हैं।
डिज़ाइन दिशा-निर्देश सभी नहीं हैं और सभी समाप्त होते हैं - अंत में वे बस एंड्रॉइड ऐप के डिज़ाइन के साथ धक्का देने की कोशिश करते हैं ताकि वे लगातार सुसंगत रहें। हमने पाया है कि हमारे द्वारा उपयोग की जाने वाली अधिकांश "नई" ओपन सोर्स लाइब्रेरीज़ दिशा-निर्देशों (स्लाइडिंग मेन्यू, क्राउटिंग) के हिस्से के रूप में समाप्त हो गई हैं।
दिशानिर्देश कभी भी पकड़ में नहीं आने चाहिए। कुछ चीजें - समग्र नेविगेशन - लगातार होना चाहिए ताकि आपका ऐप "बस काम करे।" बाकी सब कुछ - दिशानिर्देशों पर शुरू करें और अपने डिजाइन के साथ चलाएं। हम चाहते हैं कि हमारा ऐप हमारा एपीपी हो - इसलिए हम बेसलाइन होलो थीम नहीं कर सकते।
इस साल हमने मूल रूप से टुकड़ों के साथ काम करने के लिए अपने ऐप को फिर से लिखना शुरू कर दिया है। पिछले 6 महीनों में हमने 7 "टैबलेट समर्थन को जोड़ने के लिए कड़ी मेहनत की है, और वर्तमान में हम 10" समर्थन पर काम कर रहे हैं। उपकरणों पर परीक्षण करना सबसे मुश्किल काम है, लेकिन हमारे पास एक बड़ी क्यूए टीम है जो इसके साथ मदद करती है। हमारे पास अगस्त या उसके बाद से हमारे ऐप पर 2 लोग पूर्णकालिक काम कर रहे हैं, इससे पहले यह 1 पूर्णकालिक व्यक्ति था।
नीचे की रेखा है, मुझे लगता है, एंड्रॉइड डिज़ाइन दिशानिर्देश हमारी प्रक्रिया को कारगर बनाने में मदद करते हैं - और इस तरह लागत को कम करते हैं। आइए इसका सामना करते हैं, आईओएस के अधिकांश डिज़ाइनर - इसलिए design.android.com जैसे शानदार संसाधन होने के कारण उन्हें एंड्रॉइड इकोसिस्टम में किकस्टार्ट करने में मदद मिलती है।
मैं कह सकता हूं कि जैपोस के डिजाइन विकल्प अच्छी तरह से काम करते हैं, और मेरी पत्नी के पास कपड़े, पर्स और जूते से भरा एक कोठरी है जो मेरे दावे को मजबूत करता है। Google Play से उनके Android एप्लिकेशन देखें।
जोश बर्टन - jememote
जोश ने एंड्रॉइड के लिए कई छोटे अनुप्रयोगों को अधिकृत किया है, और उसका jRemote एप्लिकेशन (यह लोकप्रिय jDownloader पीसी प्रोग्राम के लिए एक नियंत्रक है) एक ऐसा ऐप बनाने के लिए लेआउट का उपयोग करने का एक आदर्श उदाहरण है जो फोन और टैबलेट दोनों पर बहुत अच्छा लगता है। यह डिवाइस स्क्रीन के उपयोग को अधिकतम करता है, और आपको वह जानकारी देता है जिसकी आप तलाश कर रहे हैं कि आप इसकी अपेक्षा कैसे करेंगे।
जब तक आप उन्हें जाने से रोकते हैं, तब तक डिजाइन दिशानिर्देशों का पालन करना बहुत ही सीधा है। एक संपूर्ण ऐप विकसित करना और फिर अंत में वापस जाना और टुकड़े / टैबलेट लेआउट आदि को लागू करने की कोशिश करना समय, प्रयास और हताशा की बर्बादी है। लेकिन अगर आप अपने ऐप की योजना बनाते हैं, तो शुरू से ही टुकड़ों का उपयोग करके विकास करें, और सभी सही डीपीआई बाल्टी के लिए अपने संसाधनों का निर्माण करें, यह एक हवा को विकसित करता है, और आपको वास्तव में दिशानिर्देशों के बारे में सोचने में अधिक समय बिताने की आवश्यकता नहीं है। और यदि आप अटक जाते हैं, तो डिज़ाइन डॉक्स केवल एक क्लिक दूर हैं। वे एक महान संसाधन हैं।
यह वास्तव में मुझे निराश करता है कि इतने सारे उपकरणों में टैबलेट लेआउट नहीं हैं। यदि आपका ऐप टुकड़ों का उपयोग करके बनाया गया है, तो एक टैबलेट लेआउट जोड़ना 30 मिनट में किया जा सकता है। ईमानदारी से, यह इतना आसान है।
मुझे लगता है कि बहुत सारे डेवलपर्स के लिए, उनके पास परीक्षण करने के लिए टैबलेट डिवाइस नहीं हैं, और एमुलेटर का उपयोग करना एक दर्द हो सकता है। लेकिन अभी जारी किए गए नए ADT टूल इसे बहुत आसान बनाते हैं। लेआउट एडिटर में मल्टी कॉन्फिगरेशन व्यू का मतलब है कि आप देख सकते हैं कि आपका लेआउट 5-6 अलग-अलग स्क्रीन साइज़ में एक साथ कैसा दिखता है। और उसका उपवास। बेशक आपको अंततः एक एमुलेटर / डिवाइस पर परीक्षण करने की आवश्यकता होगी, लेकिन यह निश्चित रूप से वर्कफ़्लो को गति देगा।
jDownloader आपके डेस्कटॉप पर उपयोग करने के लिए एक आसान प्रोग्राम है, और jRemote इसे नियंत्रित करने के लिए एक अद्भुत तरीका है। यदि और कुछ नहीं है, तो इसे Google Play से डाउनलोड करें और एक नज़र डालें कि कैसे एक ही समय में एक ऐप सरल और सुंदर हो सकता है।
हमने बहुत से अन्य डेवलपर्स से सुना, जो बहुत ही समान बातें कहते हैं। हम इन सभी को सूचीबद्ध करने के लिए सिर्फ कमरे से बाहर हैं। इस सब का सार यह है कि यदि आप आगे की योजना बनाते हैं, तो Android डेवलपर दिशानिर्देश वास्तव में अधिकांश मामलों के लिए काम करते हैं। हम इसे सुनकर खुश हैं, और शानदार ऐप का आनंद लेते रहेंगे और कड़ी मेहनत करने वाले डेवलपर्स का समर्थन करेंगे।