私は中型のAppceleratorTitaniumアプリに取り組んでいます。Ti.UIオブジェクトを拡張したいのですが、これが安全かどうか疑問に思っています。
やりたいこと Ti.UIツリーの一部としてUI関連のヘルパー関数とオブジェクトをいくつか保存します。
簡単な例は次のとおりです。
Ti.UI.COLORS = {
RED: '#213234',
BLUE: '#ABDCEF'
}
私の大きな懸念は、これが安全でないか、将来を見据えていない可能性があることです。
なぜそれをやりたいのか私 はTitaniumのJSSで悪い経験をしました、そして私は現在CSS.jsファイルで私のファイルを保存して取得しています。このファイルには、スタイリングを容易にするいくつかの関数とオブジェクト(上記の色の例など)がバンドルされており、オブジェクトとして保存されているスタイルクラスの非常に長いリストと組み合わされています。クラスはヘルパー関数を利用します。
そのようです:
//Provide helper functions
COLORS = { RED: 'etc' };
IOS_ANDROID = function(iosValue,androidValue){
if (Device.isIOS) {
return iosValue
} else {
return androidValue
};
//Provide the styles as exports object (using commonJS)
exports.styles = {
winHome: {
backgroundColor: COLORS.RED
},
winProducts: {
navBarHidden: IOS_ANDROID(true,false),
}
}
私のアプリが成長したので、このスタイルオブジェクトのサイズは煩わしくなりつつあります。スタイルをいくつかの.jsファイルに分割し、includesとrequiresを使用してそれら(および必要な関数)を結合しようとしています。これで、「css-Home.js」、「css-Products.js」などができました。
これはある程度機能しますが、現在、すべてのcss-.jsファイルにヘルパー関数を再インクルード/要求する必要があります。これはぎこちなく感じます。私は、require()のみを使用し、include()を実行しないというCommonJSのプラクティスを厳密にしようとしています。ただし、require()を使用してヘルパー関数を追加すると、次のようになります...
var cssHelpers = require('css-helpers.js')
...次に、すべてのヘルパーにその変数のプレフィックスを付ける必要があります...
exports.styles = {
winHome: {
backgroundColor: cssHelpers.COLORS.RED,
},
}
そのため、アプリの初期化中にこれらの基本的なものをTi.UIに入れたいと思います。次に、どこでもスタイルヘルパー関数を使用できるようにします。