前回、カレンダーを表示させてみました。
今度は、日付ごとに日記を入力できるようにしてみましょう。
iPhone上のメモリに値を保存しておくための2つの方法
一度アプリを閉じても値が保存される仕組みがiPhoneには用意されています。
1. UserDefaultsを利用する
iOS フレームワークには、UserDefaultsが用意されていて、簡単に値を保存したり読み込んだりすることができます。
- メリット:簡単に利用できる
- デメリット:keyが増えすぎると管理しづらい
2. CoreDataを利用する
CoreDataという仕組みがあり、大きな値になるとCoreDataを利用したほうが便利です。
- メリット:値の数が大きくなっても管理しやすい
- デメリット:初めて使用するには学習コストが高い
3. Realmを利用する
型の管理も簡単で、どの値が入っているかもGUIで確認することができる。(Realm Browser)
- メリット:フレームワークが用意されているので、複雑な処理はフレームワーク側で行う
- デメリット:CocoaPodsをつかって導入しなければならず、導入が大変。
Realmを導入してみよう
というわけで、今回はRealmを導入してみましょう。
今回は、XcodeプラグインやCocoaPodsを利用してなるべくコードを書かずにRealmを導入してみます。
(STEP.1) Xcodeプラグイン Alcatrazの導入
【Xcode 8対応版】Xcodeプラグイン Alcatrazを導入しように詳しくまとまっていますので、このページを参考にしながらAlcatrazを導入してください。
(STEP.2) Package ManagerからRealmPluginを導入
package Managerが表示されない場合は、Xcodeを再起動してみてください。
Package ManagerからインストールするプラグインはRealmPluginです。
Package Managerの検索窓で「Realm」と検索すれば出てきますので、インストールしておきましょう。
右側の「INSTALL」ボタンをクリックするとインストールがはじまります。
※Realm Browserというプラグインが便利だったのですが、現在はダウンロードはできるものの使用できなくなっているようです。
(STEP.3) CocoaPodsをつかってRealmを導入
Podfileを編集してRealmSwift
を導入します。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'DiarySampler' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'JBDatePicker'
#=== この行を追加 ===
pod 'RealmSwift'
#==================
# Pods for DiarySampler
target 'DiarySamplerTests' do
inherit! :search_paths
# Pods for testing
end
target 'DiarySamplerUITests' do
inherit! :search_paths
# Pods for testing
end
end
Podfileを保存したら忘れずに
pod install
(STEP.4)Xcodeを開き、Command+Bでビルド
ここでXcodeを開き、ビルドエラーが出ないかどうか再度確認しておきましょう。
Xcodeを開いたとき、以下のような画面が出た場合は「常に許可」を選択して進めます。
(STEP.5) 【追記】AlcatrazをXcode 8に導入すると動作が重くなる(場合がある)
STEP.1 で導入したAlcatrazですが、Xcode 8に導入すると動作が重くなりすぐ固まる場合があります。筆者のMacbook Pro 13インチ Retinaディスプレイモデル (Late 2016)では、すぐに固まりました。
今回はRealm Pluginを導入するためだけに使ったので、不要な場合は「Alcatraz」と「update_xcode_plugins」を削除しておきましょう。
rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz
update_xcode_plugins --restore
次回へ続く
次回はRealm活用編!