プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

SwiftでデータベースRealmのモデルを作成する。

この記事は2019年01月13日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. SwiftでデータベースRealmのモデルを作成する
    2-1. インストール
    2-2. モデルとは
    2-3. モデルの作成方法
  3. おわりに

詳細!Swift 4 iPhoneアプリ開発 入門ノート Swift 4+Xcode 9対応

詳細!Swift 4 iPhoneアプリ開発 入門ノート Swift 4+Xcode 9対応

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
PWEditorではデータベースにSwift版Realmライブラリを使用しています。
何回かに分けてRealmライブラリの使い方を紹介したいと思います。

今回はモデルの作成方法について紹介します。

目次へ

2. SwiftでデータベースRealmのモデルを作成する

2-1. インストール

Swift版Realmはライブラリとして提供されています。
PWEditorではCocoaPodsでインストールしています。

以下は端末を開き、アプリのプロジェクトフォルダで作業して下さい。

1. 最新のRealmをインストールするため、以下のコマンドを実行しCocoaPodsのSpecリポジトリを更新します。

pod repo update

2. プロジェクトフォルダに、以下のPodfileを作成します。

use_frameworks!  
pod 'RealmSwift'

3. 以下のコマンドを実行し、Realmライブラリをインストールします。

pod install

目次へ

2-2. モデルとは

Realmのモデルとは、データベースでいうとテーブルと考えられます。
Realmのモデルはクラスとして作成します。
アプリケーションはモデルを通して、Realmのデータベースにアクセスすることになります。

目次へ

2-3. モデルの作成方法

Realmのモデルはクラスとして、以下のように作成します。

  1. Objectクラスを継承するようにします。
  2. テーブルの項目は、クラスのプロパティとして"@objc dynamic var ~"で定義します。
  3. プライマリキーとなる項目はprimaryKeyメソッドをオーバーライドして、プライマリキーとなる項目の項目名を返却するようにします。
  4. プロパティに使用できるデータ型は以下の通りです。

    • Bool
    • Int、Int8、Int16、Int32、Int64
    • Double
    • Float
    • String
    • Date
    • Data

実装例

// モデルクラス
import RealmSwift

class PersonalInfo: Object {

    // ID
    @objc dynamic var id = 0 // プライマリーキー項目(項目名は任意です)
    
    // 名前
    @objc dynamic var name = ""
    
    // 年齢
    @objc dynamic var age = 0
    
    // 住所
    @objc dynamic var address = ""
    
    // Eメールアドレス
    @objc dynamic var email = ""

    /**
     プライマリキーのプロパティ名を返却します。
     
     - Returns: プライマリキーのプロパティ名
     */
    override static func primaryKey() -> String? {
        return "id"
    }
}

目次へ

3. おわりに

PWEditorでデータベースの導入を検討した時、最初はCoreDataを検討しました。
しかしCoreDataの情報はあまりなく、また使い方も独特なので導入を断念しました。

次に検討したのがRealmでした。
当時Realmも情報はあまりありませんでした。
しかし公式サイトのドキュメントを見ながら、PWEditorで必要な機能が実現できたため、利用することにしました。

知識・スキルの販売サイト【ココナラ】

詳細! Swift iPhoneアプリ開発入門ノート iOS12 + Xcode 10対応

詳細! Swift iPhoneアプリ開発入門ノート iOS12 + Xcode 10対応

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ