15

पर कोको एप्लिकेशन आर्किटेक्चर मैं आईफोन पर लंबे समय तक काम करने के बाद मैक पर कोको विकास में वापस आ रहा हूं। मैक पर कोको के साथ मेरा पिछला अनुभव सिर्फ अजीब छोटे टूल्स रहा है। मैं कुछ गंभीर बनाने के लिए देख रहा हूँ।मैक ओएस एक्स

iPhoto (या मेल या चीजें या ....) जैसे आधुनिक कोको एप्लिकेशन को देखते हुए कई ऐप्स एकल-विंडो, स्रोत-सूची आधारित दृष्टिकोण का उपयोग करते हैं। मैं अपने सिर को उस चारों ओर लपेटने की कोशिश कर रहा हूं जितना मैं कर सकता हूं क्योंकि ऐसा लगता है कि यह एक अच्छा अनुभव प्रदान करता है। हालांकि, मुझे थोड़ा परेशानी हो रही है। अनुप्रयोग के

  • शुरू बिंदु एक AppDelegate वस्तु जो, शुरू करने के बाद, एक खिड़की बनाता है: यहाँ मैं कैसे लगता है कि यह देखना चाहिए, लेकिन मैं सोच रहा हूँ कि कैसे दूसरों को यह कर रहे हैं, और क्या वास्तव में सबसे अच्छा तरीका है [नियंत्रक?] एक निब से, इसके डेटा को स्थापित करने के साथ (कोरडाटा कहें)

  • विंडोकंट्रोलर एक विंडो लोड करता है जिसमें अनिवार्य रूप से इसमें केवल एक NSSplitView है।

  • स्प्लिटव्यू के बाईं तरफ एक एनएसटीबल व्यू या NSOutlineView है जो SourceList शैली के लिए सेट है।

  • तालिका दृश्य के किस आइटम का चयन करने के आधार पर दाएं तरफ ऐप की मुख्य सामग्री है।

मैंने कहीं ग्रहण करेंगे (कहाँ?) भिन्न-भिन्न दृश्य जो सही पक्ष में दिखाई देगा में से प्रत्येक के प्रबंध NSViewControllers हैं (लगता है कि कैसे iPhoto सभी तस्वीरें, घटनाक्रम, चेहरे, स्थल, इत्यादि है और मुझे लगता है वे सभी अलग-अलग निब में दिखाई दे सकते हैं ... क्या यह सही है?)।

उन दृश्य नियंत्रकों को शायद बाईं ओर स्रोत सूची के लिए बाध्य किया गया है .. यह कैसे काम करता है (स्रोत सूची को NSViewControllers के एनएसएआरएआर कंट्रोलर द्वारा समर्थित किया जा सकता है?)।

वैसे भी, ये मेरे विचार हैं, क्या मैं पूरी तरह से ऑफ-बेस हूं या ...? मैंने वेब के चारों ओर देखा है, इस पोस्ट को here मिला है, और मैंने कुछ ऐप्पल स्रोत कोड देखा है लेकिन मैं अपने सिर को इसके चारों ओर लपेट नहीं सकता। किसी भी मार्गदर्शन का स्वागत किया जाएगा।

उत्तर

6

अलग-अलग निब्स में विचारों को तोड़ना मुख्य रूप से अच्छा है यदि आप दूसरों के लिए कुछ विचारों को स्वैप करने जा रहे हैं, क्योंकि आप उन्हें आलसी लोड कर सकते हैं। और हाँ, एक आधुनिक अनुप्रयोग में, आप NSViewController, या शायद KTViewController KTUIKit से उपयोग करें (the posts she co-wrote about NSViewController देखें) होगा

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

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

+0

मैंने निश्चित रूप से इसे बहुत सारे विचार दिए हैं, और मुझे लगता है कि यह मेरी स्थिति के लिए अच्छा काम करता है। मुझे लगता है कि प्रत्येक अलग दृश्य अपने स्वयं के निबमित करने के लिए पर्याप्त होगा, लेकिन फिर मुझे यकीन नहीं है। आईफोन काम करते समय मैंने शायद ही कभी इंटरफेसबिल्डर का इस्तेमाल किया, हालांकि बाइंडिंग्स को इतनी अच्छी तरह से एकीकृत किया गया, मुझे लगता है कि यह समय है कि मैं इसे और अधिक उपयोग करना शुरू कर दूंगा। मैंने कैथी के लेख भी पढ़े हैं, लेकिन यह एक अलग दिशा में एक और टग है, इसलिए इस बात पर मेरा भ्रम है कि यह सब कैसे काम करना चाहिए। – jbrennan

+0

असली सवाल यह नहीं है कि विचार कितने अलग हैं, लेकिन आप उनके लिए क्या उपयोग कर रहे हैं-आप किस मॉडल ऑब्जेक्ट्स में डाल रहे हैं। यदि दो विचार विभिन्न प्रकार की चीजें दिखाते हैं, तो उन्हें अलग-अलग विचार होना चाहिए, प्रत्येक के अपने निब के साथ। –

+0

ठीक है, वे अलग-अलग निब्स होंगे क्योंकि वे विभिन्न प्रकार की चीजें दिखा रहे हैं। निब्स का स्विचिंग कैसे काम करेगा? जब मैं अपने सोर्सिलिस्ट में एक अलग पंक्ति का चयन करता हूं, तो यह कैसे एक नया निब लोड हो जाता है? (साथ ही, क्या यह एक नया व्यू कंट्रोलर लोड करना चाहिए, या सिर्फ दाईं ओर दृश्य को स्वैप करना चाहिए?) – jbrennan

4

तरह से महत्वपूर्ण व्यक्ति को विभाजित कर रहे हैं का एहसास दिलाने के लिए एक आसान तरीका सिर्फ iPhoto निर्देशिका में जाते हैं और शुरू खोलने महत्वपूर्ण व्यक्ति

आप वर्ग संरचना तुम कोशिश कर सकते में थोड़ा और पता लगाने के लिए चाहते हैं के लिए है F-Script

+0

मैंने पहले अपने कुछ निबों को देखा है, लेकिन उनमें से कई पुराने अनुप्रयोग हैं, जो एनएसवीव कंट्रोलर जैसी अच्छी चीजों से पहले लिखे गए हैं, इसलिए मैं सोच रहा हूं कि अवधारणात्मक रूप से, उन्हें आज की तकनीक के निर्माण के लिए सबसे अच्छा तरीका क्या है। – jbrennan

+0

@ कोबबल "निब्स खोलना शुरू करें" से आपका क्या मतलब है? जब मैं किसी एप्लिकेशन के पैकेज की सामग्री ब्राउज़ करता हूं और सचमुच उन्हें खोजक से खोलने का प्रयास करता हूं, तो इसका परिणाम होता है या यह बहुत अधिक नहीं दिखाता है। यह कहता है कि "संकलित निब्स खोला नहीं जा सकता", जब मैं पुराने (3.2) इंटरफ़ेस बिल्डर का उपयोग करता हूं, या वैकल्पिक रूप से बस एक्सकोड 4 में एक विशाल निब आइकन दिखाता हूं। – febeling

+0

@ यह अविश्वसनीय है कि यह जानकारी अब पुरानी है, लेकिन मेरे लिए एक्सकोड (4.2) iPhoto ('09) के लिए nibs खोल सकते हैं। – cobbal