RubyMotionのプロジェクトでアプリの設定画面を作る
主に以下のサンプルを参考に。基本的な考え方はObjective-Cでやるときと変わらない。
mordaroso/rubymotion-settings · GitHub
resources以下にSettings.bundleを置けばiOSの設定アプリに自作のアプリの設定画面が追加される。Settings.bundleの詳細については情報がいくらでもあるので省略。
アプリ内での設定や取得、初期化などは以下のようにして行う。詳細についてはNSUserDefaultsでググるといろいろ出てくるので基本的な操作のみ。
値の設定
NSUserDefaults.standardUserDefaults["key_a"] = "A"
ハッシュと同様に操作できる。
数値などもそのまま設定できるのはなかなか素晴らしい。
値の取得
NSUserDefaults.standardUserDefaults["kay_a"]
こちらもstringForKeyといった冗長なメソッドなしで簡単に使える。(冗長なメソッドも使える)
値の初期化
NSUserDefaults.standardUserDefaults.registerDefaults({"key_b" => 'HOGEHOGE'})
registerDefaultsは通常の値の設定とは違い、すでにkey_bに値が設定されている場合は何もしない。
ちなみにNSUserDefaultsはSettings.bundleに含まれない値も扱える。
ショートカットを作る
app_delegate.rbの頭に以下のように書くだけでコードを簡潔にできる。
Settings = NSUserDefaults.standardUserDefaults
以下のような感じ。
Settings["key_a"] = "A" Settings["key_a"] Settings.registerDefaults({"key_b" => 'HOGEHOGE'})
そのうち定番のライブラリが出てくるんだと思うけど、今のところはオレオレで色々やっている。
BubbleWrapやrubymotion-sugarcubeなどのコードを眺めてよさげだなーと思ったものを拝借したりして。