我最近开始使用 Appcelerator 的 Titanium 创建 iPhone 应用程序。由于该应用程序本质上都是 JS,因此我需要一些关于如何组织该项目的建议。

为应用程序中的每个视图创建长程序文件变得非常容易。有没有办法可以将 MVC 或某些结构合并到项目中?

谢谢,我很感激。-蒂洛

有帮助吗?

解决方案

Titanium 本身本质上是 MVC,因为您的 app.js 文件是主控制器,您创建的每个视图都是视图,并且您根据视图传递(或设置)模型数据。

在 Titanium 中,您可以使用一些很好的内置机制来分解您的应用程序:

  1. 钛.包括 - Titanium.include 允许您包含一个或多个 JS 文件,就像 C 一样 #include 编译器指令。您可以将常用函数和 JS 类放入此文件中,然后将它们包含在您希望导入和可用的位置。

  2. Titanium.UI.createWindow - 您可以创建一个新视图作为新窗口的属性,将 URL 传递到另一个 JS 上下文,这将创建一个新的 JS 子上下文并允许您维护其自己的变量空间(但仍然允许您访问您的父)。

此外,在 Titanium 中,您可以创建文件夹,以便以适合您和您的应用程序的方式逻辑地组织您的应用程序。

编辑: 如今,Titanium.Include 方法已被弃用。正如文档中提到的,我们应该创建一个 CommonJS 模块并使用 require() 陈述。

有关此声明的更多信息: 要求

有关模块的更多信息: 模块

其他提示

当我没有找到一个钛移动项目适当的MVC溶液,我提出了以下的方法。对于小的应用程序,这可能是过度设计,但是可以帮助保持增长的应用领域。

文件夹结构:

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

有关分离需要一个命名空间的观点,模型和控制器,所以我们在app.js定义它,这是我们的主控制器:

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

在文件夹内我们把单一的JavaScript文件为每个组件。为此,我们既可以使用一个轻量级的JavaScript库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"
   }
}

这之后,我们可以包括与Ti.include()所有需要的模型/视图/控制器类中app.js文件并与我们的命名空间引用的组件:

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的确切定义可能会根据您的个人品味不同;)

这也可以帮助:一个基本的如何组织一个钛移动项目结构: https://github.com/krawaller/Struct

允许,因为大多数的答复是取代我更新了这个问题。 2012年第四季度,Appcelerator的发布的合金MVC(测试版)框架与最新的IDE和SDK发布,钛工作室3.0和SDK 3.0一起。合金是完全Studio集成,所以它是很容易得到一个基本的应用程序,在不到15分钟运行。合金引入了显著夹重组:现在的 /应用文件夹是其中所有的开发代码驻留。

/资源文件夹,其中用于驻留代码,现在更新的等效的 /构建文件夹。在编译的代码的 /资源在每个构建覆盖。

我创建上创建一个项目合金一个简短的介绍引物(截屏)。您可以通过我的Dropbox文件夹中查看。

创建合金计划

它看起来像Appcelerator的提出了自己的 Appcelerator的MVC 在我还没有评估了此尚未。

市场

更多信息: http://johnkalberer.com/2011/09/ 29 / Appcelerator的-MVC-示例/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top