13152
最近、IOSアプリを制作し始めた初心者のものです。

作りたいアプリは、ユーザーが写真やテキストを記録できる日記アプリのようなものです。そこで、データベースにはRealmが良いと思ったので、使い方を勉強し始めました。

そして現在データベースにオブジェクトを追加、更新、削除などの基本的なことは理解した段階なのですが、今日ネットを見ていてParseなどのmBaaSというものの存在を知りました。

初心者考えですが、このParseなどのデータベースを使えば、Realmを勉強するよりも簡単にデータベースにデータを追加したりできるし、すばやく開発できるのではと思いました。

そこで質問なのですが、データベースなどをサーバーサイドにParseを使用するメリット、デメリット。逆に、Realmを学習するメリットやデメリットを教えてください。

ちなみに日記アプリは勉強のためではなく、しっかりと使ってもらえるように真剣に開発を頑張りたいと思っています。

データベースやサーバーサイドにどのようなものを使うべきか、アドバイスをお願いします。
CC BY-SA 3.0
2015-08-04T08:41:18.157
13022
2015-08-07T16:10:41.817
10791
question
ios parse.com realm データベース設計
IOSアプリのデータベースについて
Realmについてですが、某C社で使って大変だったという話を聞いたので、僕は使ってません。CoreDataを便利に使うライブラリ（Mantle,MagicRecordなど）もあるので、今はこちらを利用することを個人的にはおすすめします。  
とりあえずAppleが推奨しているものを使っておくとトラブルが少ないかと。

僕はやったことないのですが、某大規模サービスでもParseをDBとして使っている事例を知っているので、ParseをDBとして使っても良いと思います。

お節介かもですが、RealmやCoreDataはローカルのDB、Parseはリモートなのでそこは勘違いしないでください。
CC BY-SA 3.0
2015-08-07T11:17:16.320
13143
2015-08-07T11:17:16.320
3574
13022
answer
RealmやCoreDataは基本的にはローカルに（デバイス内）にデータを保存するものです。  
いっぽう、ParseはBaaS(Backend as a Service)という名の通り、基本的にはサーバ側にデータを保存するための仕組みです。

（CoreDataはiCloudを使った同期機能があり、同じユーザーの複数のデバイスで同じデータを同期することができます。ただあくまで「同期」機能なので、一般的なサーバ側にデータを保存するのとはちょっと異なりますのでここでは触れません。）

まず、日記アプリの要件で、データをローカルに保存するだけでいいのか、サーバサイドにデータを置きたいかのどちらかで変わります。

複数のデバイスで同じデータを扱いたかったり、アプリが消えてもデータが残るようにする場合は、サーバ側に保存する必要があります。

そうであるなら、なんらかのサーバ側で動く仕組みが必要になりますので、Parseなどを使うのは良い選択です。  
Parseはデータベースだけでなく、ユーザー登録の仕組みやログインの仕組みを提供しているので、日記データをユーザーごとに保存するなどは、一から作るよりもだいぶ簡単にできます。

そして、Parseは１年ほど前から、Local
Datastoreというローカルにもデータを保存することができる仕組みを提供しています。ですので、ローカルにデータを保存してオフラインでも使えるようにしつつ、サーバ側にもデータを保存するということもできるようになりました。

なので、サーバサイドが必要ならとりあえずParseだけで始めてみて、ローカルのパフォーマンスなどに問題があるなら、RealmやCoreDataを併用するというのがいいのではないでしょうか。

サーバサイドが必要なければ、Parseを使うのは大げさなので、RealmかCoreDataが標準的な選択肢になります。

CoreDataはかなり機能が豊富で複雑なので、始めはRealmのほうが簡単に使うことができると思います。  
あと、データ件数が多い場合は、たいていはRealmのほうが速く動作するので、パフォーマンスのためにいろいろ工夫しなくて済むのが楽です。
CC BY-SA 3.0
2015-08-07T16:10:41.817
13152
2015-08-07T16:10:41.817
5519
13022
answer