javascript - कैसे एक Appcelerator टाइटेनियम परियोजना में JS फ़ाइलों को व्यवस्थित करने के लिए




iphone titanium (4)

मैंने हाल ही में Appcelerator's Titanium का उपयोग करके iPhone एप्लिकेशन बनाना शुरू किया है। चूंकि आवेदन अनिवार्य रूप से सभी जेएस है, मुझे इस परियोजना को व्यवस्थित करने के तरीके के बारे में कुछ सलाह की आवश्यकता थी।

एप्लिकेशन में प्रत्येक दृश्य के लिए लंबी प्रक्रियात्मक फ़ाइलें बनाना बहुत आसान हो रहा है। क्या कोई तरीका है जो मैं एमवीसी, या परियोजना के लिए कुछ संरचना को शामिल कर सकता हूं?

धन्यवाद मैं इसकी प्रशंसा करता हूँ। -Tilo


ऐसा लगता है कि मार्केटप्लेस में मैंने अपना मूल्यांकन अभी तक नहीं किया है, Appcelerator ने अपना खुद का Appcelerator MVC बनाया है।

अधिक जानकारी: http://johnkalberer.com/2011/09/29/appcelerator-mvc-example/


जैसा कि मुझे एक टाइटेनियम मोबाइल परियोजना के लिए उचित एमवीसी समाधान नहीं मिल रहा था, मैं निम्नलिखित दृष्टिकोण के साथ आया। छोटे ऐप्स के लिए यह ओवर-इंजीनियर हो सकता है लेकिन बढ़ते अनुप्रयोगों को बनाए रखने में मदद कर सकता है।

फ़ोल्डर संरचना:

/Resources
  /model
  /view
  /controller
  /ui
  /iphone
  /android
  app.js
  app.jss

विचारों, मॉडलों और नियंत्रकों को अलग करने के लिए एक नाम स्थान की आवश्यकता होती है, इसलिए हम इसे app.js में परिभाषित करते हैं, जो कि एक मुख्य तरीका है:

var app = {
  view: {},
  controller: {},
  model: {},
  ui: {}
}

फ़ोल्डर्स के भीतर हम प्रत्येक घटक के लिए एकल जावास्क्रिप्ट फाइल रखते हैं। इसके लिए हम या तो एक हल्के जावास्क्रिप्ट OOP लाइब्रेरी का उपयोग कर सकते हैं, जैसे कि MooTools या प्रोटोटाइप या हमारी वस्तुओं के रूप में सरल JS फ़ंक्शन को परिभाषित करना। यदि आप भी मूल वर्गों से विरासत में लेना चाहते हैं, तो एक पुस्तकालय निश्चित रूप से समझ में आता है।

उदाहरण:

# Resources/controller/MyController.js
app.controller.MyController = function() {
   return {
      getView: function() {
         return new app.view.MyView().getView();
      }
   }
}

# Resources/view/MyView.js
app.view.MyView = function() {
   return {
      getView: function() {
         return Ti.UI.createWindow({...});
      }
   }
}

# Resources/view/MyModel.js
app.model.MyModel = function() {
   return {
      some: "data",
      foo: "bar"
   }
}

उसके बाद हम app.js फ़ाइल में Ti.include () के साथ सभी आवश्यक मॉडल / दृश्य / नियंत्रक कक्षाएं शामिल कर सकते हैं और हमारे नाम स्थान के साथ घटकों का संदर्भ दे सकते हैं:

Ti.include("controller/MyController.js");
Ti.include("view/MyView.js");
var myController = new app.controller.MyController();
var myView = myController.getView();
myView.open();

एमवीसी दृष्टिकोण अब मान लेगा कि नियंत्रक दृश्य की स्थिति को "नियंत्रित" करता है और मॉडल से दृश्य में डेटा पास करता है। दृश्य में स्टाइल के लिए केवल UI तत्व और गुण होते हैं। UI में की गई कोई भी कार्रवाई किसी घटना को रोकती है, जो नियंत्रक को वांछित कार्रवाई करने के लिए कहती है।

लेकिन निश्चित रूप से, एमवीसी की सटीक परिभाषा आपके व्यक्तिगत स्वाद के अनुसार भिन्न हो सकती है;)


मुझे इस सवाल को अपडेट करने की अनुमति दें क्योंकि अधिकांश प्रतिक्रियाएं अपदस्थ हैं। Q4 2012 में, Appcelerator ने नवीनतम IDE और SDK रिलीज़, टाइटेनियम स्टूडियो 3.0 और SDK 3.0 के साथ मिश्र धातु MVC (बीटा) फ्रेमवर्क जारी किया। मिश्र धातु पूरी तरह से स्टूडियो के साथ एकीकृत है, इसलिए 15 मिनट से कम समय में एक मूल ऐप प्राप्त करना काफी आसान है। मिश्र धातु एक महत्वपूर्ण फ़ोल्डर पुनर्गठन का परिचय देता है: / एप्लिकेशन फ़ोल्डर अब वह है जहां सभी विकास कोड रहते हैं।

/ रिसोर्स फ़ोल्डर, जहाँ कोड का उपयोग किया जाता था, अब / बिल्ड फ़ोल्डर के अपडेटेड समतुल्य है। संकलित कोड / संसाधन प्रत्येक बिल्ड पर अधिलेखित है।

मैंने एक मिश्र धातु परियोजना बनाने पर एक लघु परिचयात्मक प्राइमर (स्क्रैंकेस्ट) बनाया। आप इसे मेरे ड्रॉपबॉक्स फ़ोल्डर के माध्यम से देख सकते हैं।

अलॉय प्रोजेक्ट बनाएं


यह भी मदद कर सकता है: टाइटेनियम मोबाइल परियोजना को व्यवस्थित करने का एक बुनियादी ढांचा: https://github.com/krawaller/Struct






appcelerator