スマフォアプリのモバイルバックエンドの開発の必要はあるのか?

More than 1 year has passed since last update.


はじめに

こんにちは、こんばんは。スマートテック・ベンチャーズ 11日目担当の @nnsnodnb です。2日連続私ですが読んでくだされば嬉しいです:muscle:

今日は私が個人開発したモバイルバックエンドとFirebaseなどのmBaaSを比較しながらモバイルバックエンドの開発は必要なのか 個人開発アプリ , 企業開発アプリ の観点で私自身が感じたことをポエムっぽく書いていきます。

これからの開発で少しでも参考になることがあれば幸いです。


モバイルバックエンドについて

今回のモバイルバックエンドについては、mBaaSのようなプッシュ通知ができたりするもののことを前提として話していきます。


mBaaS一例

などなど。

他にもたくさんあるかと思いますが、私がパッと思いつくのはこのぐらいです。何かいい感じのサービスがあればコメント等で教えてくださると幸いです!


自作モバイルバックエンド

https://apps.nnsnodnb.moe

機能的にはまだまだ未完成(?)ですが、プッシュ通知及びユーザ管理ができています。HTTPS対応しているのでATSは万全です!

たまにSSL証明書の更新を忘れて うわあああああ!!! ってなるときがあるんですが基本的に大丈夫です...(震え

スクリーンショット 2016-12-11 1.47.12.png

ちなみにSSL判定は上記画像!

https://github.com/nnsnodnb/django-mbaas

何か機能追加してくれ! 」っていうのがもしあればIssue等立てていただければと思います:sushi:

ちなみに Python2 + Django + Nginx(gunicorn) + MySQL での運用になっています。


既存モバイルバックエンド


メリット


  • SDKなどがすでに用意されているものがたくさんあるので導入等のコストがとても低い

  • 大手サービスなのでドキュメントが豊富

  • アプリ開発に重点を置いて開発ができる→コアな部分に集中できる

他にもあるでしょうか。ちょっと思いつかないです。ポエムなのでこのぐらいで


デメリット


  • 拡張ができない

  • 課金やAPI制限などがありサービスを誰でもフルで使えるわけではない


自作モバイルバックエンド


メリット


  • 自分で自在に拡張して機能を追加できる

  • アプリ特有の機能をサービスを提供できる


デメリット


  • 導入に時間がかかる

  • サーバ開発班とアプリ開発班との連携が重要

  • インフラ整備(負荷対策等)

まぁあんまり書くと「 なんで自分開発したんだろう... 」ってなっちゃうのでこの程度にとどめておきます。


結局どうなのか


個人開発アプリ

ゴリッゴリのAPIサーバ等と連携したモバイルバックエンドサービスが必要でない限り既存のモバイルバックエンドサービスを使うのがベター可と思います。


企業開発アプリ


  • API開発等が必要になる

  • エンドさんが操作することが条件(コンテンツの出し分け等)

私が感じたのは上記条件に当たる場合はモバイルバックエンドの開発はするといいのかな?と思いました。あくまでも個人的な見解です。

もう一度いいます。「 あくまでも個人的な見解です


インフラのお話

既存のモバイルバックエンドだと心配する必要はないですが、自作モバイルバックエンドだとちょっと考慮する必要がでますよね。

AWSを例にして言うと、


  • ELB <-> EC2インスタンスを複数立ち上げて高負荷に対応

  • S3 <-> EC2の通信速度の考慮

  • RDS <-> EC2 の通信速度・RDSの計算速度考慮

  • 踏み台サーバを用意してセキュリティ強化

等いろいろ見積もらなくてはいけないですね。

言っていくとキリがないので次で最後ですが、Androidのことはちょっとわからないのですが、iOSだとATS対策をしっかりとしないといけないというのが個人開発等には一番のネックなのかな?と思いました。

本職がインフラエンジニアではないし、AWSスペシャリストではないので(Route53とかいろんなもの使うんでしょう)、上記が正しいのかわかりませんが、参考程度です。


さいごに

個人的には工数はかさむんですが、個人開発のときもモバイルバックエンドを作ることで無制限利用や自分の使いたい機能だけをつぎ込んだサービスを自分だけで使えるっていうのが結構嬉しいところなので、どんどん開発していいきたい派です。ただコアな部分のみに重点を置くアプリならどんどん既存のものを採用していくべきだと思いました。

モバイルバックエンドを自作するならFirebaseの機能を使いつつ、Nifty Cloud Mobile Backendの機能も使うみたいな

A x B -> C 」であるならばが 「 C - (A + B) > 0 」 になるようにすると更にいいのかなと思いました。

サービスなんて基本的に真似して良くしていくっていうじゃないですか?

はい。ということで本記事のポエムは終了です。

最後まで読んでくださりありがとうございました!

明日は、 @hirofumi_05 さんです!とてもありがたい記事になっていると思います!お楽しみに:muscle::muscle: