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.
ありがとうございました

北海道勉強会_20140531

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

Editor's Notes

  • #43 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。
  • #44 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。
  • #45 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。
  • #46 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。
  • #47 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。
  • #48 単にデータを保存するだけなら、基本的にバックエンド側の動作コードは不要です。 ただ、ちょっと複雑な処理とかしてみたくなります。