開発者であればDRYルールはよく知っているはずです。DRYはDon't Repeat Yourselfの略で、同じコードを二度書かないという原則です。重複するような処理は関数やクラスにまとめていったり、さらにコードを書かないで済むフレームワークを導入すべきという考えです。
同じ観点をプロジェクト単位ではなく、アプリ開発全般で考えてみましょう。アプリを作っていると、よく使う機能に出会うはずです。
サーバサイドが必要
多くのアプリではサーバサイドの仕組みが必要になります。それによって誰が使っているのかを判別したり、個人のデータを他人からの編集、削除といった操作から保護できるようになります。
スマートフォンが元々インターネットに接続できる携帯電話として生み出された経緯もあり、アプリにおいてもインターネットを使わないものは殆どないとさえ言えます。
認証
認証システムは非常によく作られる仕組みです。ID、パスワードでログインする仕組みはもちろん、FacebookやTwitterといったソーシャルサービスを使ったログインもよく使われます。また、メールアドレスの存在確認を行う処理であったり、パスワードリマインダーも必要です。
大抵のサーバサイドのシステムに存在するので、毎回同じようなシステムを作っているなと感じる人も多いでしょう。
データベース
認証が何のために存在するかと言えば、データを保存したり、逆に取得するためというケースが殆どです。アプリによってデータベースのテーブル名は異なりますが、テーブルを検索して取得したり、登録するという流れは同じはずです。
ストレージ
スマートフォンでは写真や動画を撮ることが多いので、それらをクラウドストレージに保存したいというニーズもよくあります。ファイルデータを受け取ってサーバ上に保存しますが、写真の高品質化に伴ってサイズが肥大化していることもあり、ストレージの容量に気を配る必要があるでしょう。そうしたサーバのメンテナンスもよくあることです。
プッシュ通知
アプリ独自の仕組みとしてプッシュ通知は常に開発されます。デバイストークンを保存する仕組みであったり、「いつ」「誰に」「どういった内容」で送信するかといった仕組みもよく作られます。クライアントごとに作らず一箇所にまとめてしまう方法もありますが、利用する証明書が異なったりするために多くの場合はシステム自体を分けてしまうようです。
また、プッシュ通知もメール送信と同じように大量配信については独自のノウハウも必要になります。
DRYのためのmBaaS
今挙げたような、アプリ開発あるあるな機能を作る前にmBaaSの導入をぜひ検討してください。mBaaSでは認証、データベース(ニフクラ mobile backendではデータストアと呼びます)、ストレージ(ファイルストアと呼びます)、プッシュ通知と言った基本的な機能はすべて提供しています。いずれも汎用的な仕組みになっていますので、アプリごとの特有の機能も吸収できるようになっています。不足している機能はスクリプトというmBaaS上で独自のコードを実行する機能によって補えるようになっています。
何よりmBaaSを用いることでサーバのメンテナンスも不要になります。ストレージ残量を気にすることもありませんし、データのスケーリングも自動的に行われます。ユーザ登録して、アプリケーションを登録するだけですぐにサーバの準備が完了します。同じことを何度もしたくない…そう思う開発者の方はぜひmBaaSを試してみてください。