2012-01-08 11 views
25

कोई भी निर्भरता इंजेक्शन की सुविधा के लिए आईओएस के लिए एक अच्छा आईओसी ढांचा सुझा सकता है?आईओएस के लिए अनुशंसित आईओसी ढांचा?

मुझे अब तक केवल एक ही मिला है Objection Framework जो जाहिर है गुइस के समान है (जो दुर्भाग्य से मेरे लिए अपरिचित है)। क्या यह आईओएस के लिए एक आम विकल्प है और क्या ऐसे प्रतिस्पर्धी ढांचे हैं जो जांच के लायक हैं?

+0

इसे एक उत्तर दिया। मुझे कल्पना है कि मेरा जवाब समय पर जानकारी है, इसलिए भविष्य में स्वीकृति को बदलने के लिए स्वतंत्र महसूस करें जब अधिक ढांचे उपलब्ध हों। –

उत्तर

15

... क्या वहां प्रतिस्पर्धी ढांचे हैं जो जांच के लायक हैं?

Objection डि पुस्तकालय मैं iOS के लिए गूगल पर मिल सकता है है, तो आप इसके साथ अटक सकता है अगर आप पहले से बने पुस्तकालय चाहते हैं।

DI विशेष रूप से उपयोग करने के लिए एक ढांचे की आवश्यकता नहीं है। यदि आपका ऐप छोटा है, तो आप एप्लिकेशन रूट पर अपने सभी उदाहरण आसानी से बना सकते हैं और हाथ से इंजेक्ट कर सकते हैं।

यदि आपको इससे अधिक की आवश्यकता है, और मौजूदा ढांचे आपके लिए इसे काट नहीं रहे हैं, तो आप अपना स्वयं का सेवा लोकेटर रोल कर सकते हैं, फिर इसके ऊपर एक डी कंटेनर बना सकते हैं।

आप किसी अन्य प्लेटफ़ॉर्म से मौजूदा छोटे ढांचे को भी पोर्ट कर सकते हैं। .NET पर कई "छोटे" हैं, उदाहरण के लिए - Ninject और SimpleInjector

क्या यह आईओएस के लिए एक आम विकल्प है ...?

ऐसा लगता है कि यह एक बहुत ही छोटी परियोजना है क्योंकि केवल एक लेखक/योगदानकर्ता सूचीबद्ध है। दायर कई मुद्दे नहीं हैं। हालांकि आईओएस बाजार काफी बड़ा है। इसलिए मैं सोच रहा हूं कि सभी आईओएस डेवलपर्स का केवल एक छोटा सा हिस्सा इस पुस्तकालय का उपयोग करता है।

लेकिन यह एक बुरी बात नहीं है। ऐसा लगता है कि created, used, and supported by a small company है। इसमें fairly steady updates for the past year है।

इसी तरह के खुले स्रोत परियोजनाओं के साथ मेरा अचूक अनुभव: मुझे हमेशा नई सुविधाएं हमेशा नहीं मिलती हैं, और मैं अक्सर वह हूं जो बग ढूंढने को समाप्त करता है। लेकिन मुझे मौजूदा फीचर सेट पर बहुत जल्दी समर्थन मिलता है, और मैंने भेजे गए ई-मेल का समर्थन करने के लिए बहुत ध्यान दिया जाता है। YMMV।

+2

आपत्ति के बारे में आपके अवलोकन सटीक और निष्पक्ष हैं। मैं परियोजना में सबसे बड़ा योगदानकर्ता दूर और दूर हूं - जिसका अर्थ है कि मैं आमतौर पर उन सुविधाओं को जोड़ता हूं जिन्हें मुझे चाहिए या बनाने के लिए प्रेरित हूं। मैं बहुत जल्दी बग का जवाब देता हूं। हालांकि, मैं कुछ समय के लिए फीचर अनुरोधों पर चबाता हूं क्योंकि मैं यह सुनिश्चित करना चाहता हूं कि आपत्ति की पहचान हानि न हो और यह "फूला हुआ" न हो। अपेक्षाकृत लोकप्रिय अनुप्रयोगों में आपत्ति का उपयोग किया गया है। इसके साथ जुड़े क्रैश लॉग और प्रदर्शन परीक्षणों के आधार पर मैंने यह किया है कि यह क्रैश या प्रदर्शन बाधा का कारण नहीं रहा है। – justice

+2

एक आखिरी बात। आपत्ति का बहुत अच्छी तरह से परीक्षण किया जाता है: https://github.com/atomicobject/objection/tree/master/Specs – justice

+0

@justice: क्या आपके पास उपयोग किए जाने वाले अनुप्रयोगों की एक सूची है? यह लाइब्रेरी के विज्ञापन के लिए लोगों को उन लोगों के बारे में बताने में मदद कर सकता है (निश्चित रूप से - उन्हें यहां सूचीबद्ध करना कोशेर नहीं होगा)। शायद अनुमति प्राप्त करने की आवश्यकता होगी। लेकिन प्रशंसापत्र सवालों के जवाब देने में मदद करते हैं जैसे "यह पुस्तकालय कितना लोकप्रिय है?" और नए उपयोगकर्ताओं को आकर्षित करने में मदद करता है। –

12

ठीक है, मुझे आशा है कि तुम मुझे एक छोटे से प्लग यहाँ माफ कर, लेकिन मैं सिर्फ ऑब्जेक्टिव-सी के लिए अपने खुद के डि ढांचे जारी किया: सिरिंज

https://github.com/tomekc/Syringe

यह साधारण और उद्देश्य पर हल्के है, मेरे प्राथमिक लक्ष्य इसे जितना संभव हो उतना घुसपैठ नहीं करना था। मेरे पास एक मजबूत जावा पृष्ठभूमि है, इसलिए मैंने इसे Google Guice और Spring के बाद डिज़ाइन किया है।

+2

+1। यदि आप लोगों को डीआई में पेश करने के लिए एक अच्छे तरीके से कूदना चाहते हैं (क्योंकि यह उद्देश्य-सी दुनिया में काफी अनजान अवधारणा है), [एन इंजेक्ट के "प्रारंभ करना" विकी पेज पर एक नज़र डालें] (https: // github .com/Ninject/Ninject/wiki/आरंभ करने संबंधी)।NInject विशेषता-आधारित इंजेक्शन के बजाय कन्स्ट्रक्टर इंजेक्शन पर केंद्रित है, लेकिन जिस तरह से उनके ट्यूटोरियल डीआई अवधारणाओं का निर्माण करते हैं, वे अच्छी तरह से काम करते हैं। –

+0

प्यार! जैसे ही मैं आपत्ति के बारे में था, मैं इसे पूरा करता हूं कि आप कैसे पूर्णता को स्वचालित करते हैं। यद्यपि आपत्ति अभी भी थोड़ा अधिक लचीलापन प्रदान करता है। गुणों के बारे में क्या? क्या आप सिरिंज विकसित करना चाहते हैं? – Texas

+0

मैं वर्तमान में इसे अपनी छोटी निजी परियोजनाओं में उपयोग करता हूं, और मैं उपयोगकर्ताओं से कुछ प्रतिक्रिया सुनने के लिए खुला हूं। –

21

आंधी

Typhoon-website सूचियों प्रमुख विशेषताएं। एक त्वरित सारांश:

  • गैर-आक्रामक। कोई मैक्रोज़ या एक्सएमएल आवश्यक है। कॉन्फ़िगरेशन Objective-C or Swift API का उपयोग करके किया जाता है जो उद्देश्य-सी रनटाइम का लाभ उठाता है।

  • लाइटवेट। कोड की केवल 2500 लाइनें। इसमें बहुत कम पदचिह्न है, इसलिए सीपीयू और मेमोरी बाधित उपकरणों के लिए उपयुक्त है। प्रदर्शन के लिए ट्यून किया गया।

  • समान बेस-क्लास या प्रोटोकॉल के एकाधिक कॉन्फ़िगरेशन को आसान बनाता है।

  • कोई जादू तार - आईडीई रीफैक्टरिंग, कोड-पूर्णता और संकलन-समय की जांच का समर्थन करता है।

  • दृश्य नियंत्रकों और स्टोरीबोर्ड एकीकरण के इंजेक्शन का समर्थन करता है।

  • प्रारंभिक और संपत्ति इंजेक्शन, साथ ही जीवन चक्र प्रबंधन दोनों का समर्थन करता है।

  • शक्तिशाली मेमोरी प्रबंधन सुविधाएं। सिंगलटन के मेमोरी ओवरहेड के बिना पूर्व-कॉन्फ़िगर किए गए ऑब्जेक्ट प्रदान करता है।

  • परिपत्र निर्भरताओं के लिए उत्कृष्ट समर्थन।

  • युद्ध-परीक्षण - सभी प्रकार के ऐपस्टोर-फीचर्ड ऐप्स में उपयोग किया जाता है।

  • एक अंतरराष्ट्रीय स्तर पर वितरित कोर टीम (हम भी StackOverflow पर नजर रखने के), तो आपके प्रश्नों से किसी के लिए समर्थन कभी नहीं दूर हैं :)

एपीआई डॉक्स और नमूना एप्लिकेशन

+3

वास्तविक समझ के साथ एकमात्र विकल्प क्या DI है। धन्यवाद जैस्पर! –

+1

@ जैस्पर ब्लूज़ मैंने इस और अन्य डी ढांचे में देखा। मुझे अभी भी दस्तावेज़ के माध्यम से पढ़ने के बाद भी हाथ से ऐसा करने का उपयोग करने का लाभ नहीं मिलता है। इस या किसी भी ढांचे का उपयोग इतना भारी लगता है और यह बिना लागत के है। क्या आप सलाह दे सकते हैं? – Boon

+0

@Boon StackExchange के लिए एक अच्छा सवाल की तरह लगता है। –

संबंधित मुद्दे