如何在Appcelerator Titanium项目中组织JS文件
我最近开始使用Appcelerator的Titanium创buildiPhone应用程序。 由于应用程序基本上都是JS,所以我需要一些关于如何组织这个项目的build议。
为应用程序中的每个视图创build长程序文件变得非常容易。 有没有一种方法可以将MVC或某种结构合并到项目中?
谢谢,我很感激。 -Tilo
titanium本身本质上是MVC,因为你的app.js文件是主要的控制器,你创build的每个视图都是视图,并且你将模型数据传递给(或设置)视图。
在Titanium中,可以使用一些很好的内置机制来分解应用程序:
-
Titanium.include – Titanium.include允许您将一个或多个JS文件包含在C
#include
编译器指令中。 你可以把普通的函数和JS类放在这个文件中,然后把它们包含在你想要导入和可用的地方。 -
Titanium.UI.createWindow – 你可以创build一个新的视图作为新的窗口传递的一个属性到另一个JS上下文,这将创build一个新的JS子上下文,并允许你保持自己的variables空间(但仍然给你可以访问你的父母)。
此外,在Titanium中,您可以创build文件夹,使您能够以适合您和您的应用程序的方式在逻辑上组织您的应用程序。
编辑:今天,Titanium.Include方法已被弃用。 正如在文档中提到的,我们应该创build一个CommonJS模块并使用require()
语句。
有关此声明的更多信息: 要求
有关模块的更多信息: 模块
由于我没有find一个适合titanium移动项目的MVC解决scheme,我提出了以下的方法。 对于小型应用程序,这可能过度devise,但可能有助于维护日益增长的应用程序。
文件夹结构:
/Resources /model /view /controller /ui /iphone /android app.js app.jss
为了分离视图,模型和控制器需要命名空间,所以我们在我们的主控制器app.js中定义它:
var app = { view: {}, controller: {}, model: {}, ui: {} }
在文件夹中,我们为每个组件放置单个JavaScript文件。 为此,我们可以使用一个轻量级的JavaScript OOP库,比如MooTools或Prototype,或者定义简单的JS函数作为我们的对象。 如果你也想从父类inheritance,一个库肯定是有道理的。
例子:
# 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();
现在,MVC方法会假设控制器“控制”视图的状态,并将数据从模型传递到视图中。 该视图仅由UI元素和样式属性组成。 在UI中进行的任何操作都会触发一个事件,告诉控制器执行所需的操作。
但是,当然,MVC的确切定义可能会根据您的个人喜好而有所不同);
这也可能有助于:如何组织titanium移动项目的基本结构: https : //github.com/krawaller/Struct
请允许我更新这个问题,因为大部分回复都被取代了。 在2012年第四季度,Appcelerator发布了合金MVC(testing版)框架以及最新的IDE和SDK版本Titanium Studio 3.0和SDK 3.0。 合金与Studio完全集成,所以在15分钟内就可以轻松获得基本的应用程序。 合金引入了重要的文件夹重构: / app文件夹现在是所有开发代码所在的地方。
/ Resources文件夹,其中代码用于驻留,现在是/ build文件夹的更新等效。 在每个版本中,编译的代码将覆盖/ Resources 。
我创build了一个关于创buildAlloy项目的简短入门指南(截屏)。 您可以通过我的保pipe箱文件夹查看它。
创build合金项目
看起来Appcelerator在市场上做了他们自己的Appcelerator MVC ,我还没有评估过。
更多信息: http : //johnkalberer.com/2011/09/29/appcelerator-mvc-example/