Titanium iPhoneの設定画面に設定項目を追加できるようにする。

ちょっとタイトルが意味分からないけど、iPhoneのホーム画面にある「設定」を選択するとアプリケーションごとの設定が出来る画面があると思う。これのこと。

しらばらく調べると、Titaniumのプロジェクト以下にmodules/iphone/Settings.bundleにRoot.plistというファイルを作ってそこに色々設定を行うことで、勝手に登録されるぽい。

KitchenSinkの以下の場所にサンプルがあった。
https://github.com/appcelerator/titanium_mobile/tree/master/demos/KitchenSink/modules/iphone/Settings.bundle

これは、iPhoneの設定ファイルらしいので、以下のURLとかで詳細を調べるとよい。
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Preferences/Preferences.html
http://knol.google.com/k/iphone-sdk-application-preferences

以下、Root.plistのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>StringsTable</key>
	<string>Root</string>
	<key>PreferenceSpecifiers</key>
	<array>
		<dict>
			<key>Type</key>
			<string>PSGroupSpecifier</string>
			<key>Title</key>
			<string>Hironemu Sample App</string>
		</dict>
		<dict>
			<key>Type</key>
			<string>PSTextFieldSpecifier</string>
			<key>Title</key>
			<string>Sample count label</string>
			<key>Key</key>
			<string>sample_count_preference</string>
			<key>DefaultValue</key>
			<string>20</string>
			<key>IsSecure</key>
			<false/>
			<key>KeyboardType</key>
			<string>NumberPad</string>
			<key>AutocapitalizationType</key>
			<string>None</string>
			<key>AutocorrectionType</key>
			<string>No</string>
		</dict>
	</array>
</dict>
</plist>

上記のサンプルでは、sample_count_preferenceというキーでデフォルト値20という数値を表示するようになっている。(設定画面に表示されるときの名前は、「Sample count label」となる)

この値を、アプリ側から取得するには例えば以下のようにする。

var count = Ti.App.Properties.getInt('sample_count_preference', 20);

最初、Root.plistでデフォルト値20と設定しているけど、最初この値はアプリ側では取れないらしい。なので、上記の例では第2引数でデフォルト値を設定している。

Ti.App.Propertiesの説明は以下のページが分かりやすい。
Google Code Archive - Long-term storage for Google Code Project Hosting.

と、こんな感じで簡単に設定画面に追加できて、値も簡単に取得できますよ、っと。