Upload
hiraku-komuro
View
738
Download
1
Embed Size (px)
DESCRIPTION
Introduction of Parse.com in Classmethod Dev.IO in Sapporo at 2014/05/31
Citation preview
1Copylight © Classmethod, Inc.
Parse 入門
あなたのモバイル開発を超加速
2Copylight © Classmethod, Inc.
自己紹介
• 小室啓• クラスメソッド iPhone アプリ・サービ
ス事業部• Android です!
3Copylight © Classmethod, Inc.
自己紹介
• 小室啓• クラスメソッド iPhone アプリ・サービ
ス事業部• Android です!アウェー!
4Copylight © Classmethod, Inc.
アジェンダ
• 紹介• 入門
• 入門といいながら、速攻で終わるので紹介多めです
5Copylight © Classmethod, Inc.
モバイルバックエンドの開発?
• モバイルアプリケーションのバックエンドの開発は結構面倒。
6Copylight © Classmethod, Inc.
モバイルバックエンドの開発?
• どうやっていますか?
7Copylight © Classmethod, Inc.
何が必要か?
• 用意しなきゃいけないもの
8Copylight © Classmethod, Inc.
物理サーバー
9Copylight © Classmethod, Inc.
Web サーバー(Apache, nginx とか )
10Copylight © Classmethod, Inc.
DB アクセスなどのロジックとか
11Copylight © Classmethod, Inc.
データストア (RDBMS? File? とか )
12Copylight © Classmethod, Inc.
スケールやらロードバランサやらとか
13Copylight © Classmethod, Inc.
こんなにある
• ハードウェアの調達とかは面倒ですね。
14Copylight © Classmethod, Inc.
Cloud を使う?
• ご存知の通り、 Cloud を使えばハードウェアの物理的制約から開放されます。
• さらに外部に公開するための準備なども手軽に行えます。
15Copylight © Classmethod, Inc.
Google Cloud Platform Compute Engine
https://cloud.google.com/products/compute-engine/
16Copylight © Classmethod, Inc.
Amazon Web Services
http://aws.amazon.com/jp/
他にも色々ありますが、代表的なところはこんなものでしょう。例に AWS で作ってみるのを考えてみます
17Copylight © Classmethod, Inc.
AWS でやる?
1. サーバー( EC2 ?)2. フロント
( CloudFront ?)3. データストア( RDS?
DynamoDB? )4. ロードバランサ( ELB )
18Copylight © Classmethod, Inc.
AWS でやる?
• 確かにハードウェアの制約などははずれましたが、まだまだ用意しなければならないものが大量にあります。
• あんまり準備する手間は変わらない・・・?
• まだまだモバイアプリ開発にとって、本質的でない作業が大量に含まれています。
19Copylight © Classmethod, Inc.
本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ
ル・アプリは DB サーバーとか必須
• Android, iOS のプログラムを書く他に上のことも全てやらなきゃいけない?
• なんでモバイルアプリを開発するのに– サーバープログラム書いてるんだろ・・・– URL 設定してるんだろ・・・
20Copylight © Classmethod, Inc.
本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ
ル・アプリは結局サーバーを全部用意しないといけません。
• Android 、 iOS のプログラムを書く他に上のことも全てやらなきゃいけない?
• なんでモバイルアプリを開発するのに• サーバープログラム書いてるんだろ・・・• URL のルーティングとか設定してるんだ
ろ・・・
21Copylight © Classmethod, Inc.
本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ
ル・アプリは結局サーバーを全部用意しないといけません。
• Android 、 iOS のプログラムを書く他に上のことも全てやらなきゃいけない?
• なんでモバイルアプリを開発するのに• サーバープログラム書いてるんだろ・・・• URL のルーティングとか設定してるんだ
ろ・・・
自分はもっと UI や UX など、ユーザーに触れるモバイルアプリの本質的なところ
に工数をかけたいんだ!
22Copylight © Classmethod, Inc.
Parse
23Copylight © Classmethod, Inc.
Parse
• Parse とは、 Parse が提供する【 MBaaS 】です。
• 昨年あたりに Facebook 社に買収されてます。
• ググらビリティが低すぎて開発者泣かせ
24Copylight © Classmethod, Inc.
Parse の特徴• モバイルのバックエンドを構築する環境を一手に
まとめて提供してくれるサービスです
• Web ホスティング• データストア• Social 連携( Facebook, Twitter )• Push 通知• REST API• 各種 Native 開発用 SDK の提供… and etc
25Copylight © Classmethod, Inc.
Parse の特徴
全部まとめて Parse が面倒みてくれます
26Copylight © Classmethod, Inc.
Parse の事例(世界)
27Copylight © Classmethod, Inc.
なぜ Parse を選択するのか
• MBaaS の世界のにおいて、先駆者的な実装になってる–日本国内の MBaaS には、 Nifty Cloud など
がありますが、 Parse のメソッドと同じ命名規則になっていたり
–何かと共通するものが多い
28Copylight © Classmethod, Inc.
多様な SDK
• 各 OS の Native 開発 SDK が提供されていること– iOS, Windows Phone, Android, JS,
Xamarin, Unity などほぼ主要な言語を網羅しています
29Copylight © Classmethod, Inc.
Social 連携でのログイン機能を簡単に実装
Twitterログイン
30Copylight © Classmethod, Inc.
強力な Push 通知機能
• APNs, GCM など OS ごとの Push 通知の仕様は複雑怪奇な上、あまりにも実装が面倒
• Amazon SNS などを利用すればその辺も面倒みてくれるかも?
31Copylight © Classmethod, Inc.
強力な Push 通知機能
32Copylight © Classmethod, Inc.
強力な Push 通知機能
33Copylight © Classmethod, Inc.
強力な Push 通知機能
• Amazon SNS 以上に気軽なコンソールで準備完了
• 設定項目これだけ。• GCM は設定を ON にするだけ!
34Copylight © Classmethod, Inc.
サーバサイド構築まで5 分かからない
• データの定義さえすれば使える状態なので、すぐ使えるよ
• プロジェクト作成、データ定義だけでREST API 経由とか SDK で CRUD できます
35Copylight © Classmethod, Inc.
サーバーサイドの動作も比較的自由に変更できる
• サーバーサイドプログラミングを少しだけやると、容易に動作を拡張できます
• プロジェクト作成、データ定義だけで、 REST API経由で CRUD できます
36Copylight © Classmethod, Inc.
サーバーサイドの動作も比較的自由に変更できる
• サーバーサイドプログラミングを少しだけやると、容易に動作を拡張できます
• プロジェクト作成、データ定義だけで、 REST API経由で CRUD できます
いちおし!
37Copylight © Classmethod, Inc.
Analytics
• リクエスト数やら Push 通知の数とか色々とカッコいいグラフにして表示してくれます
38Copylight © Classmethod, Inc.
ダッシュボードの UI が Cool
39Copylight © Classmethod, Inc.
バックエンド機能を拡張Cloud Code
• バックエンド拡張用のコードはJavaScript で記述
• SDK を提供• 簡単なコマンドで debug から deploy ま
で• Backbone Style を踏襲• 他 JS ライブラリの導入が楽
40Copylight © Classmethod, Inc.
Cloud Code の SDK
• Unix, Linux系 OS であればコマンド一発で SDK導入
curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
41Copylight © Classmethod, Inc.
基本コマンド
• 作成したコードを Deploy
• Remote ログを監視
• プロジェクト作成
$ parse deploy
$ parse log -f
$ parse new <AppName>
42Copylight © Classmethod, Inc.
Cloud Code の特徴
• 各種カスタム Function はクロージャで定義
• データの CRUD の前後 (before, after)で Hook して実行するトリガ Function
• 独自の API の口を定義できるカスタムFunction
43Copylight © Classmethod, Inc.
トリガ Function
• 処理を書けば Parse が適当なタイミングで勝手に実行してくれる
44Copylight © Classmethod, Inc.
トリガ Function サンプル
45Copylight © Classmethod, Inc.
カスタム Function
• 呼び出し口を提供• REST の呼び出しは POST のみ• SDK 内からの呼び出しは、専用のメソッ
ドが準備されている
46Copylight © Classmethod, Inc.
カスタム Function サンプル
47Copylight © Classmethod, Inc.
Parse のここがよくないよ
• 運営側の FAQ がゆるふわ(適当)
質問者「これをやるとこんなエラーが出るんだけど」運営「これをやれば解決するぜ!」_人人人人人人人人_> 解決しない! < ̄ Y^Y^Y^Y^Y^Y^Y ̄
48Copylight © Classmethod, Inc.
Parse のここがよくないよ
• StackOverflow もゆるふわ
「こんな問題が発生したんだけど、誰か解決方法知らないかい?」「俺も同じ問題が発生したぜ」「俺も」「俺も」
49Copylight © Classmethod, Inc.
つかってみる
• プロジェクトをつくります!
50Copylight © Classmethod, Inc.
つかってみる
• データを定義します
51Copylight © Classmethod, Inc.
つかってみる
• おわりです!
• あとは、 SDK とか REST API でアクセスするだけ
https://api.parse.com/1/classes/<ClassName>
52Copylight © Classmethod, Inc.
つくってます
• Open Othello API
53Copylight © Classmethod, Inc.
まとめ
• Console の UI がかっこいいので使いたくなる
• モバイル・アプリに必要なサービスが全てこれで事足りる
• 使いはじめるのは超簡単
• Cloud Code萌え
54Copylight © Classmethod, Inc.
ありがとうございました