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