Android 用の Titanium でアプリケーションを作成しています。1 つの JS ファイルに多くのコードが含まれています。コードを複数のファイルに分割してそれらを含めるためのphpのincludeのような機能があるかどうかを知りたいです。
ありがとう
Android 用の Titanium でアプリケーションを作成しています。1 つの JS ファイルに多くのコードが含まれています。コードを複数のファイルに分割してそれらを含めるためのphpのincludeのような機能があるかどうかを知りたいです。
ありがとう
CommonJS / RequireJSアプローチ、特にrequire
コマンドを使用します。これは、Titaniumで大規模なシステムを処理するための(強く)推奨される方法であり、Titaniumに固有のJavaScriptモジュール化を処理するための多くのベストプラクティスとともに、Webサイトで十分に文書化されています。これに関するTitaniumのドキュメントは次のとおりです。
たとえば、ある種の「ビュー」をカプセル化するモジュールを作成するには、次のMyCustomView.js
コンテンツで名前が付けられたファイルにモジュールを配置します。
// MyCustomView.js
function MyCustomView(message) {
var self = Ti.UI.createView({
backgroundColor : 'red'
});
var label = Ti.UI.createLabel({
text : message,
top : 15,
.... // Other initialization
});
// ... Other initialization for your custom view, event listeners etc.
return self;
}
module.exports = MyCustomView;
これで、このモジュールを別のクラスで簡単に使用できるようになりました。これを/Resources
フォルダーに入れ、モジュールを内部にロードapp.js
してメインウィンドウに追加するとします。
// app.js
var MyCustomView = require('MyCustomView');
var myView = new MyCustomView('A message!');
Titanium.UI.currentWindow.add(myView);
このアプローチを使用して、カスタムビュー、再利用可能なコードのライブラリ、およびその他の必要なものを作成できます。もう1つの一般的なことは、多くの異なるヘルパー関数を持つUtilityクラスを持つことです。
// Utility.js
exports.cleanString = function(string) {
// Replace evil characters
var ret = string.replace(/[|&;$%@"<>()+,]/g, "");
// replace double single quotes
return ret.replace(/"/g, "''");
}
このメソッドは、次のように簡単に使用できます。
// app.js
var Utility = require('Utility.js');
Ti.API.info(Utility.cleanString('He##o W&orld$'));
私が使用するもう1つの一般的な方法は、ロードされる各モジュールが独自の機能コンテキストであるため、シングルトンパターンを実装することです。したがって、必要に応じて、値を永続化できます。
// ManagerSingleton.js
var SpriteManager = {
count : 0
};
exports.addSprite = function() {
SpriteManager.count++;
}
exports.removeSprite = function() {
SpriteManager.count--;
}
ユーティリティとほぼ同じ方法でロードして使用します。
// app.js
var ManagerSingleton = require('ManagerSingleton');
ManagerSingleton.addSprite();
これは、グローバル変数を使用する代わりに、より洗練されたソリューションのようなものです。これらの方法は決して完璧ではありませんが、多くの時間とフラストレーションを節約し、すべてのサイズとタイプのアプリのTitaniumコードに深み、優雅さ、読みやすさを追加しました。
Javascript の世界には 2 つの支配的なモジュール システムがあります。1 つは CommonJS で、2 番目は AMD です。どちらが最適で、どのような目的で使用されるかについては、多くの議論があります。CommonJS はサーバー側の JS に広く使用されていますが、AMD は主にブラウザー JS に使用されています。
RequireJS ( requirejs.org ) は、最も人気のある AMD システムのようです。
JS モジュール システムの詳細については、http: //addyosmani.com/writing-modular-js/を参照してください。