新しいチタニウムアプリを開始しています。ベストプラクティスを使用しています。私はCommonJSだけでなく、一般的なTitaniumプラットフォームも初めてです。CommonJSを使用してチタニウムのプロジェクト構造をお勧めします
残念ながら、newer recommended best practiceの代わりにTi.include("/lib/module")
のチタンサラウンド用サンプルアプリケーションのすべてがrequire("/lib/module")
であるようです。
私が心配しているのは、CommonJSを使用した場合のメモリ消費に必要なことです。 CommonJS Modules in Titanium documentationからは、モジュールがキャッシュされると書かれていますが、スコープから外れてもメモリ内にこれらのすべての機能が突然存在するモジュールにアクセスすると、そのことを意味しませんか?
私は私のメインのアプリは、次のように緩やかに構造化され、単一のダッシュボード形式のビューを持っている。ここから次のような構造
/ctrl # Model/UI controllers
/lib # libraries (common + 3rd party)
/ui # UI forms
/model # DAL objects for data store
で新しいアプリを開始しました:
(function() {
var getMenuItem = require("/ui/main").getMenuItem;
var win = Titanium.UI.createWindow({
title:'Main',
backgroundColor:'#fff'
});
var nav = Ti.UI.iPhone.createNavigationGroup({
window:win
});
var sect;
var data = [];
sect = Ti.UI.createTableViewSection();
data.push(sect);
sect.add(getMenuItem("Customers",
require("/ctrl/account").createCustMainWindow));
sect.add(getMenuItem("Schedules",
require("/ctrl/schedule").createScheduleMainWindow));
sect.add(getMenuItem("Settings"));
var menu = Titanium.UI.createTableView({
style: Ti.UI.iPhone.TableViewStyle.GROUPED,
data:data
});
win.add(menu);
menu.addEventListener('click',function(e) {
if (e.rowData.createWindow) {
var win = e.rowData.createWindow(nav);
nav.open(win);
}
});
var navWindow = Titanium.UI.createWindow();
navWindow.add(nav);
navWindow.open();
})();
上の任意のガイダンスを正しいプロジェクト構造が高く評価されています。
それは完璧です、プロジェクトの構造は私が後にしたものです。 –