post Image
Swiftで日記アプリを作ろう 〜その2 Realm導入編〜

前回の記事はこちら

前回、カレンダーを表示させてみました。
今度は、日付ごとに日記を入力できるようにしてみましょう。

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を導入

Window→Package Managerを起動します。
image

package Managerが表示されない場合は、Xcodeを再起動してみてください。

Package ManagerからインストールするプラグインはRealmPluginです。

Package Managerの検索窓で「Realm」と検索すれば出てきますので、インストールしておきましょう。
右側の「INSTALL」ボタンをクリックするとインストールがはじまります。

image

※Realm Browserというプラグインが便利だったのですが、現在はダウンロードはできるものの使用できなくなっているようです。

(STEP.3) CocoaPodsをつかってRealmを導入

Podfileを編集してRealmSwiftを導入します。

Podfile
# 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を保存したら忘れずに

Terminal
pod install

も行っておきましょう。
image

(STEP.4)Xcodeを開き、Command+Bでビルド

ここでXcodeを開き、ビルドエラーが出ないかどうか再度確認しておきましょう。

Xcodeを開いたとき、以下のような画面が出た場合は「常に許可」を選択して進めます。
image

(STEP.5) 【追記】AlcatrazをXcode 8に導入すると動作が重くなる(場合がある)

STEP.1 で導入したAlcatrazですが、Xcode 8に導入すると動作が重くなりすぐ固まる場合があります。筆者のMacbook Pro 13インチ Retinaディスプレイモデル (Late 2016)では、すぐに固まりました。
今回はRealm Pluginを導入するためだけに使ったので、不要な場合は「Alcatraz」と「update_xcode_plugins」を削除しておきましょう。

terminal
rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz

update_xcode_plugins --restore

次回へ続く

次回はRealm活用編


『 Swift 』Article List