2010-09-09 3 views
6

Je suis nouveau à appcelerators titanium et javascript et je suis intéressé par le codage d'une application iphone. J'ai reconnu qu'il y a un besoin de "nombreux" code pour créer l'interface utilisateur. ce n'est pas un problème jusqu'à présent, mais j'ai tendance à séparer judicieusement ce code de ma logique applicative. Quelles sont les meilleures pratiques?séparation de la logique et l'interface utilisateur en titane (javascript)

[mise à jour]tweetanium est un excellent exemple comment structurer une application mobile de titane

Répondre

4

ok, je viens de trouver une pratique cool.

i comprennent les con_file.js avec la logique d'application des view_file.js avec

Titanium.include('../controller/con_file.js'); 

maintenant je suis en mesure d'accéder à la structure de données de trou.

+2

Vous pouvez également essayer commonJS: https://wiki.appcelerator.org/display/guides/Mobile+Best+Practices – Julian

4

je vais avoir un essai:

j'ai tendance à utiliser le mvc-pattern pour développer mon application depuis la mise en oeuvre toutes les choses dans un seul fichier js est assez laid. J'ai donc décidé d'utiliser un fichier pour la vue et tout ce qui concerne le look-and-feel, un fichier pour la gestion de la base de données (le contrôleur), en particulier les instructions SQL et un fichier pour le abstract data type.

un court exemple:

vue: viewConcerningObject.js

Ti.include('object.js'); 

var win = Ti.UI.currentWindow; 
var myObject = new object(); 

var myObjectName = Ti.UI.createLabel({ 
    text:myObject.getName(); 
}); 

win.add(myObjectName); 

modèle: object.js

Ti.include('controllerConceringObject.js'); 

function object(){ 
    this.name = 'myInitialName'; 

    this.getName(){ 
     return this.name; 
    }; 

    this.setName(newName){ 
     this.name = newName; 
    }; 

    this.updateNameFromDb(){ 
     this.name = getNameFromDatabase(); 
    }; 

} 

contrôleur : controllerConcerningObject.js

function getNameFromDataBase(){ 
    var db = Ti.Database('objects'); 
    var sql = 'SELECT name FROM objects'; 
    var recordset = db.execute(sql); 
    var name = recordset.field(0); 
    recordset.close(); 
    db.close(); 
    return name; 
}; 

de sorte que la structure du dossier pourrait ressembler à ceci:

myProject: FolderView (viewConcerningObject.js), folderModel (theDatabase.db, object.js), folderController (controllerConcerningObject.js).

Questions connexes