BLOGワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。Objective-C今回のエンジニアブログを担当する村田です。今回はモバイル向けデータベースとして今後熱くなりそうな「Realm」を触ってみたいと思います。Realmとは?SQLiteやCoreDataと同じモバイル向けのデータベースです。エンジン部分はC++で実装されております。Licenseの元、オープンソースとして公開Realmは現在β版としてリリースされており、バージョン1.0に向けて、機能追加・バグの修正などが行われております。β版ということでプロダクトに使う際は、APIが頻繁に変わるものだと心して使う必要がありそうです。Cocoa」に触れてみます。今回の検証環境は以下のとおりです。1.1のみなので、無難にObjective-Cで実装します。インストールRealmのインストール方法は、4つあります。FrameworkCarthage今回は、CocoaPodsでインストールします。"Realm"のみです。モデルの作成RealmはSQLを直接叩くのではなく、O/Rマッパーのようにオブジェクトを操作します。モデルは、RLMObjectクラスを継承して作成します。Fruitモデルを作成します。Realmを組み込んだプロジェクトをビルドすると、ファイル新規作成に「Realm」が現れるようになります。こちらを使うと便利です。Pluginを使うと更に便利のようですが、現在、一時的に使用できないようです。作成したのがこちらになります。扱う値は、ヘッダーファイルの@interface内(4行目のところ)に@propertyで追加します。strong,など)は無視されるので不要です。Realmで扱える型はこちらです。boolNSDateNSDataRLMObjectのサブクラス(一対多のリレーションシップに使用)RLMArray(XはRLMObjectのサブクラス、多対多のリレーションシップに使用)NSDataまで扱えるので、一通りのものが格納できますね。Fruitモデルに、ID(fid)、名前(name)、値段(price)を追加します。今回は、IDを主キーとします。primaryKey]メソッドを追加します。最初からコメントアウトされているメソッドは、以下の用途に用います。defaultPropertyValues]メソッドデフォルト値を設定することができます。戻り値となるNSDictionary型は、キーにプロパティ名の文字列、バリューにはデフォルト値を指定します。ignoredProperties]メソッド保存しないプロパティを指定することができます。beginWriteTransaction]でトランザクションを開始してから操作します。commitWriteTransaction]でコミットします。SQL文のトランザクションと同じですね。モデルは普通にallocで生成し、initメソッドを呼び出し初期化します。定義されているので、普通に設定します。defaultRealm]を使う方法です。defaultRealmメソッドを使うと/Documents/default.realmというパスのRealmファイルが作成され、オブジェクトが格納されます。realmWithPath]メソッドを用います。createOrUpdateInRealm:withObject:]を使います。主キーと一致するレコードが無い場合は作成され、ある場合は更新します。deleteObject:]を使います。削除したいオブジェクトを渡します。allObjects]です。対象モデルのオブジェクトを全て取得します。SQL文に例えるとWHERE句がない状態です。操作しているときしか使えませんです。allObjectsInRealm:]を使います。これらの方法だと絞り込みができないので不便です。SQL文のWHERE句を使いたいですよね。objectsInRealm:where:]を使います。このままだとエスケープ処理が大変なのでバインド機構を使いたくなります。RealmではNSPredicateクラスを使うことができます。まとめ基本的な構文を一通り試してみました。導入も簡単でObjective-Cとは相性が良さそうに感じました。CocoaPodsでインストールするとありませんが、公式サイトからダウンロードするとRealmファイル専用のブラウザが付いております。このようなアイコンのアプリです(ちゃっかりβ版のマークも)。ブラウザが標準で付いているのは嬉しいですね!Realmのサイトは日本語に対応しております。ドキュメントも親切に日本語対応されている点も嬉しいですね。暗号化にも標準で対応しているようなので、今後が楽しみです。Lambdaをスケジュール化!今回のエンジニアブログを担当する村田です。今回のエンジニアブログを担当する藤岡です。intro入門あけましておめでとうございます、エンジニアの成田です。本年...2014-08-15SwiftでSQLiteラッパーライブラリのFMDBを使ってみよう今回のエンジニアブログを担当する村田です。前回は、NSUserde...2014-04-28Facebookが公開した言語「Hack」の動作環境を構築こんにちは、サーバー担当の山内です。採用情報ワンダープラネットではモバイルゲーム開発者を募集しております。(S編)C/C++でネットワークプログラミングをやってみよう(2)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。