• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Baa sでお気楽アプリ開発
 

Baa sでお気楽アプリ開発

on

  • 2,212 views

OSC 2013 北海道で公演した内容です。

OSC 2013 北海道で公演した内容です。
BaaSを使ったアプリ開発として、ParseとMobile Backend Starterを比較しています。

Statistics

Views

Total Views
2,212
Views on SlideShare
979
Embed Views
1,233

Actions

Likes
2
Downloads
6
Comments
0

13 Embeds 1,233

http://fromnorth.blogspot.jp 1184
http://cloud.feedly.com 14
http://fromnorth.blogspot.com 11
http://fromnorth.blogspot.com.es 10
https://twitter.com 3
https://www.chatwork.com 3
http://fromnorth.blogspot.de 2
http://fromnorth.blogspot.tw 1
http://fromnorth.blogspot.ca 1
http://webcache.googleusercontent.com 1
http://feedly.com 1
http://fromnorth.blogspot.be 1
http://fromnorth.blogspot.mx 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Baa sでお気楽アプリ開発 Baa sでお気楽アプリ開発 Presentation Transcript

    • BaaSを使った
 お気楽アプリ開発 日本Androidの会北海道支部 まいむぞう / 大路裕介
    • 自己紹介 まいむぞう (本名 大路裕介) 札幌でAndroidやクラウド系開発をしている フリーランサーです。 日本Androidの会の北海道支部長やってます ずっとAndroidばかりやってるので、Android開発自体には 若干飽きてます。 最近はAR・コンピュータビジョン・電子工作・ウェアラブル コンピュータなどやってます。
    • 今日お伝えしたいこと BaaSって何? どこが便利なの? どうやって使うの?
    • クラウドの分類 •  クラウドにより提供される部分と、自社で構築する必要が ある部分をまとめると、以下のようになる 4 自社調達 アプリケーション 開発・実行環境 インフラ IaaS アプリケーション 開発・実行環境 インフラ PaaS アプリケーション 開発・実行環境 インフラ SaaS アプリケーション 開発・実行環境 インフラ ・自社ですべて構 築・所有 ・自由度が高いが、 構築に手間はかか る ・制限は多いがアプ リケーション開発に 専念できる ・必要なときに必要 な分だけ使える。コ ストも使った分だけ 一昨年ぐらいの AWSなど GAEなど
    • BaaSの登場 •  スマホ用アプリでは、、、 •  サーバに求められる機能は、どのアプリでも同じようなもの が多い •  スマホアプリ開発者はWeb系技術に慣れてない人も多い 5 自社調達 フロントエンド バックエンド 開発・実行環境 インフラ IaaS フロントエンド バックエンド 開発・実行環境 インフラ PaaS フロントエンド バックエンド 開発・実行環境 インフラ BaaS フロントエンド バックエンド 開発・実行環境 インフラ SaaS フロントエンド バックエンド 開発・実行環境 インフラ Backend as a Serviceの出現
    • BaaS界の巨人たち 6 Parse
    • BaaS界の巨人たち 7 Kinvey
    • BaaS界の巨人たち 8 StackMob
    • BaaS界の巨人たち 9 Appcelerator Cloud
    • BaaS界の巨人たち 10 Kii
    • BaaS界の巨人たち 11 appiaries
    • And more... 12 他にもたくさんの巨人がいるのですが、 おすすめはParseです ※個人的な感想です
    • どこが便利なの? 13 •  BaaSの主な機能としてParseを例に取ると •  サーバ側は管理画面からぽちぽちするだけ •  サーバ側の同じデータ、同じ機能に対して、複数の 環境(AndroidだけではなくiOSやWebなど)からアク セスできる •  それぞれの開発環境用のライブラリを呼び出すだけ で、クラウド上にデータを保存したり、ユーザ管理や アクセス制御が可能 •  AndroidやiOSなどのPush通知を簡単に送信できる •  TwitterやFacebookなどに簡単に投稿できる
    • コストメリット 14 •  Parseが提供している機能を自分で実装する場 合、Web系技術に詳しい人でも2~3人月程度 はかかりそうです。 •  すなわち少なく見積もっても100~200万円ぐら いの価値があります。
    • 具体例 15 •  Parseでデータをクラウドに保存するコード ParseObject gameScore = new ParseObject("GameScore"); gameScore.put("score", 1337); gameScore.put("playerName", "Sean Plott"); gameScore.put("cheatMode", false); gameScore.saveInBackground(); テーブル名 ハッシュ構造 (KeyとValue) 同期保存も非同期保存も Offline保存も可能
    • 具体例 16 •  Parseでデータをクラウドから取得するコード ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore"); query.getInBackground("xWMyZ4YEGZ", new GetCallback<ParseObject>() { public void done(ParseObject object, ParseException e) { if (e == null) { int score = object.getInt("score"); String playerName = object.getString("playerName"); boolean cheatMode = object.getBoolean("cheatMode"); } else { // something went wrong } } }); 保存した時のKey エラーの時は例外 オブジェクトが入る
    • Parseは万能ではない 17 •  この先ずっとParseが用意した機能だけで大丈夫? •  サーバ側はさわれないので機能拡張には限界が… •  定期的に実行したいサーバ側のコードがある場合 •  定期的にランキング集計や統計を取るような機能は苦 手 •  アプリの価値がデータ統計部分にあるなら伸び悩むか も… 心配な方はMobile Backend Starterも検討
    • Mobile Backend Starterとは 18 •  Mobile Backend Starter(MBS)は今年のGoogle I/O で発表されたBaaS(?)です
    • Mobile Backend Starterとは 19 •  機能的にもParseと同じ問題領域をサポートしていま す
    • 機能比較 機能 Parse Mobile Backend Starter 無償利用 ◯ ◯ Android ◯ ◯ iOS / .Net / OS X / Windows 8 /Windows Phone 8 / Unity / Web(JavaScript) ◯ △(RESTで可能) RESTful API ◯ △(コードが読めれば) Push通知 ◯ ◯ Analytics ◯ ☓ File送受信 ◯ ☓ ユーザ管理 / アクセス制御 ◯ ◯(google acount) Twitter / Facebook連携 ◯ ☓ サーバサイドロジック △ ◯ サーバ側機能拡張 ☓ ◯
    • MBSの使い所 21 •  サーバはGoogle App Engine(GAE)です。MBSは、GAE上で 稼働するオープンソースのサーバアプリケーション+クライアン トライブラリという形で提供されています。 •  すなわち、Parseのように完成形のサーバが稼働しているわけ ではなく、サーバとして使えるひな形が提供されていることにな ります。 •  最低限の機能しか搭載されていませんが、GAEさえ使えれ ば必要に応じて機能拡張可能です。制限はありません。 •  Google Cloud Endpointsを使っているのでAndroidだけで はなく、iOSやWebもサポート可能
    • Google Cloud Endpoints 22 •  GAEを使ったRPCっぽいことをするフレームワーク 1.Endpointsを使って サーバコードを書くと 2. http://ホスト/post/(id) などエンドポイントができて (RESTful API) 3. 各OS用のクラ イアントコードを 自動生成できる
    • 具体例 23 •  MBSのサーバ側のコードの抜粋です @ApiMethod(path = "CloudEntities/insertAll", httpMethod = "POST") public EntityListDto insertAll(EntityListDto cdl, User user) throws UnauthorizedException { SecurityChecker.getInstance().checkIfUserIsAvailable(user); return CrudOperations.getInstance().saveAll(cdl, user); } @ApiMethod(path = "CloudEntities/{kind}/{id}", httpMethod = "GET") public EntityDto get(@Named("kind") String kindName, @Named("id") String id, User user) throws UnauthorizedException, NotFoundException { SecurityChecker.getInstance().checkIfUserIsAvailable(user); return CrudOperations.getInstance().getEntity(kindName, id, user); }
    • 具体例 24 •  MBSのクライアント側のコードの抜粋です CloudEntity newPost = new CloudEntity("Guestbook"); newPost.put("message", "message from EditText"); getCloudBackend().insert(newPost, null);
    • まとめ 25 そろそろいい時間なのでまとめます。 次の3つを覚えて帰って下さい。
    • まとめ 26 1. Parseサイコー 機能が充実しているうえに、無料もで使えます
    • まとめ 27 2. あなたのアプリの価値が サーバ側にもあるのならば Mobile Backend Starterも 検討して
    • まとめ 28 3.でもMobile Backend Starterを 使いこなすには、 結構スキルが必要だよ