【iOS】次世代データベースRealmを使ってみよう!

IMG_0061

こんにちは、iOS担当の鶴本です。

今回は次世代データベースRealmについて書いてみようと思います。

 

Realmとは

「CoreData」や「SQLife」に変わるデータベースと言われています。

Realmは他の主要なデータベース比べ比較的高速です。

またiOSだけでなく、Androidもサポートしており似たようなビジネスロジックを書くだけで利用できるため移植性も高い等といった他のデータベースにはないメリットがあります。

Realmを使用するには

まずはソースをダウンロードしましょう。

https://realm.io/jp/docs/swift/latest/

必要条件、インストール方法等々に関しても上記のURLに詳しく記載されていますので参照してください。

Realmのモデルクラス

まずRealmを使用するにはデータを保存するモデルクラスを定義する必要があります。モデルクラスはSwiftで書きます。
また対応しているデータ型はBool,Int8,Int16,Int32,Int64,Double,Float,String,NSDate,NSDataです。
そしてモデルクラスにはプライマリーキーを定義する必要があります。例として製品を表すモデルクラスを定義してみました。

import Foundation
import RealmSwift

class Product: Object {
    
    // 製品ID
    dynamic var strProductID : String = ""
    
    // 名前
    dynamic var strName : String = ""
    
    // 価格
    dynamic var strPrice : String = ""
    
    // MARK: プライマリーキーを返す
    override static func primaryKey() -> String? {
        return "strProductID"
    }
}

モデルクラスはObjectクラスを継承します。

プライマリーキーを設定するには、primaryKeyメソッドをオーバーライドして、キーにしたいメンバの文字列を返します。

 

オブジェクトの追加、更新、削除

モデルクラスのオブジェクトのRealmへの追加、更新、削除はトランザクション内部で行う必要があります。以下のように書きます。

トランザクション

let realm = try! Realm()
try! realm.write({
    // 追加、更新、削除を行う
})

追加、更新、削除は以下のように書きます。

追加

try! realm.write {
  // 新たに製品を追加する
  realm.add(productObject)
}

更新

try! realm.write {
  // 製品の名前を更新する
  productObject.strName = "iPhone"
}

削除

try! realm.write {
  // 製品を削除する
  realm.delete(productObject)
}

便利ですねーたった これだけでデータの操作が行えます。

 

終わりに

他にもRealmに対し通知を送信できたり、プライマリーキーによる検索処理も行えるなど機能豊富です。今後も是非使っていきたいですね。

以上です。

鶴本 賢太朗
システム開発事業部のiOSの開発担当。
Swift,Objective-Cを用いての開発がメイン。

Egg Device Application

東京品川のスマホアプリ開発会社です。
一般アプリ、業務用アプリからVRまで開発可能。

ライター一覧

求人情報

スマホアプリ開発の
相談を受け付けています

メールでのご相談

お電話でのご相談
TEL 03-5422-7524
平日10:00~18:00