Estoy comenzando una nueva aplicación de Titanium y quiero utilizar las mejores prácticas y evitar fugas de memoria desde el principio. Soy nuevo en CommonJS y en la plataforma Titanium en general.Recomiende una estructura de proyecto de titanio con CommonJS
Desafortunadamente, parece que todas las aplicaciones de muestra para titanio envolvente en Ti.include("/lib/module")
en lugar de newer recommended best practice de require("/lib/module")
.
Lo que me preocupa es el consumo de memoria del uso de CommonJS podría requerir. Desde el CommonJS Modules in Titanium documentation, indica que los módulos se almacenarán en la memoria caché, ¿no significaría esto que si alguna vez accedo a un módulo, todas esas funciones permanecen de repente en la memoria aunque se salgan del alcance?
he comenzado una nueva aplicación con la siguiente estructura
/ctrl # Model/UI controllers
/lib # libraries (common + 3rd party)
/ui # UI forms
/model # DAL objects for data store
Desde aquí mi aplicación principal tiene una vista única estilo tablero que está poco estructurada de la siguiente manera:
(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();
})();
Cualquier orientación sobre una estructura de proyecto correcta es muy apreciada.
Eso es perfecto, la estructura del proyecto es exactamente lo que estaba buscando. –