[iOS]RealmをプロジェクトにインストールしてCreateしてみる

xcode

iOSアプリの開発でRealmをプロジェクトにインストールしてCreateするまでを紹介します。

ついでに、アプリ内で保存したデータベースを可視化する便利アプリも紹介していきます。

Realm導入の備忘録として参考にしてみてください。

そもそもRealmってなに?

Realmとは次世代モバイルデータベースと呼ばれるもので、CoreDataやSQLiteに代わるモバイルデータベースです。

実際に使ってみるとCoreDataよりも使いやすいと感じました。

https://realm.io

公式サイトにはドキュメントも豊富に揃っているので、導入のハードルも低いと思います。

Swiftをはじめ、Java、Objective-C、JavaScript、Xamarinで使用することができます。

[iOS]Realmをプロジェクトにインストールする

ここからが本題ですが、さっそくRealmをプロジェクトに反映していきます。

CocoaPodsを使ってプロジェクトにインストールすることで利用できます。

今回、テストでRealmProjectというプロジェクトを用意してみました。

ここからCocoapodsをアプリにインストールしていきます。いつもの流れです。

iOSアプリ開発でCocoapodsが使えるように環境を作る方法

cocoapodsをインストールする。エラーに会った時やインストール後の対応まとめ

 

ターミナルを開き、プロジェクトフォルダまで移動します。

次にpod init→open Podfileと入力しPodfileを開きます。

Podfileには画像のように pod ‘RealmSwift’を記載します。pod ‘Realm’と二つ記載する記事も見ますが、RealmSwiftだけでそちらもインストールされるので一つで問題ありません。

Podfileに記述した後は、保存をしてターミナルでpod installを入力します。全体的な流れはこんな感じ。

これでプロジェクトにRealmをインストールすることができました。

RealmでCreateしてみる

プロジェクトにRealmをインストールしたので、さっそくデータをCreateしてみます。

現在、開いているXcodeを閉じて白いファイルの方で開きます。

ここから実際にRealmを使ってデータベースに保存していくコードを書いていきますが、簡単なものを書いていきます。

「アプリが起動した時に所定のデータを保存する」という簡単なものを書いていきます。

まず、どういった内容のものをデータベースに保存するかというコードを書きます。

ここでは「氏名」「性別」「年齢」のデータベースを定義してみます。

新しくSwiftファイルを作成し、そこに記述します。ファイル名は「DataModel」とします。(何でもいいです)

Realmのお作法というか書き方があるので、下記にコード全体を掲載します。

import Foundation
import RealmSwift

class DataModel: Object {
   @objc dynamic var name: String = ""
   @objc dynamic var sex: String = ""
   @objc dynamic var age: Int = 0
}

Objectクラスを継承していますが、これはRealmでモデルオブジェクトを定義する時のクラスです。

String型やInt型の空の変数を用意していますが、先頭に@objc dynamicを付けます。

次にViewController.swiftに移動しアプリが読み込まれたらDataModelに値を入れそれをデータベースに保存するという流れを取ってみます。

import UIKit
import RealmSwift

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //Mikeさんの情報
        let data = DataModel()
        data.name = "Mike"
        data.sex = "man"
        data.age = 20
        
        //Mikeさん情報をデータベースに書き込み
        do {
            let realm = try Realm()
            try realm.write {
                realm.add(data)
            }
        } catch {
            print("Error writing realm \(error)")
        }
    }
}

do catchブロックで囲みます。tryも忘れずに。あ、import RealSwiftも忘れずに。

ここまで記述したらビルドしてみます。

うまく起動しましたが、本当にデータベースに保存されているのか(Createできたのか)分からないのでアプリを使ってデータベースの中身を覗いてみます。

RealmBrowserを使ってデータベースの中身を見る

データベースに保存されたか中身を確認してみます。

アプリストアを開き検索窓に「Realm」と入力してRealmBrowserというアプリをダウンロードします。

前後しますが、ファイルパスも把握しないといけないのでprint文でファイルパスも吐き出させます。

print(Realm.Configuration.defaultConfiguration.fileURL)
Optional(file:///Users/xxx/Library/Developer/CoreSimulator/Devices/ffsdssfsafafa/data/Containers/Data/Application/fdfaaA2-4DA0-AF7D-98/Documents/default.realm)

上記のようにオプショナル型でファイルパスが吐き出されますので、file:///をコピペします。

RealmBrowserを立ち上げOpen Realm Fileを選択します。

次の画面でcommand + shift + G のショートカットキーを押し先ほどコピペしたパスを入力します。

先頭が/Usersで始まるように削除してください。

目的のファイルを見つけることができたので開きます。

これでデータベースに保存したデータを確認することができました。



カテゴリー