北海道勉強会_20140531

54
1 Copylight © Classmethod, Inc. Parse 入入 入入入入入入入入入入入入入入

description

Introduction of Parse.com in Classmethod Dev.IO in Sapporo at 2014/05/31

Transcript of 北海道勉強会_20140531

Page 1: 北海道勉強会_20140531

1Copylight © Classmethod, Inc.

Parse 入門

あなたのモバイル開発を超加速

Page 2: 北海道勉強会_20140531

2Copylight © Classmethod, Inc.

自己紹介

• 小室啓• クラスメソッド iPhone アプリ・サービ

ス事業部• Android です!

Page 3: 北海道勉強会_20140531

3Copylight © Classmethod, Inc.

自己紹介

• 小室啓• クラスメソッド iPhone アプリ・サービ

ス事業部• Android です!アウェー!

Page 4: 北海道勉強会_20140531

4Copylight © Classmethod, Inc.

アジェンダ

• 紹介• 入門

• 入門といいながら、速攻で終わるので紹介多めです

Page 5: 北海道勉強会_20140531

5Copylight © Classmethod, Inc.

モバイルバックエンドの開発?

• モバイルアプリケーションのバックエンドの開発は結構面倒。

Page 6: 北海道勉強会_20140531

6Copylight © Classmethod, Inc.

モバイルバックエンドの開発?

• どうやっていますか?

Page 7: 北海道勉強会_20140531

7Copylight © Classmethod, Inc.

何が必要か?

• 用意しなきゃいけないもの

Page 8: 北海道勉強会_20140531

8Copylight © Classmethod, Inc.

物理サーバー

Page 9: 北海道勉強会_20140531

9Copylight © Classmethod, Inc.

Web サーバー(Apache, nginx とか )

Page 10: 北海道勉強会_20140531

10Copylight © Classmethod, Inc.

DB アクセスなどのロジックとか

Page 11: 北海道勉強会_20140531

11Copylight © Classmethod, Inc.

データストア (RDBMS? File? とか )

Page 12: 北海道勉強会_20140531

12Copylight © Classmethod, Inc.

スケールやらロードバランサやらとか

Page 13: 北海道勉強会_20140531

13Copylight © Classmethod, Inc.

こんなにある

• ハードウェアの調達とかは面倒ですね。

Page 14: 北海道勉強会_20140531

14Copylight © Classmethod, Inc.

Cloud を使う?

• ご存知の通り、 Cloud を使えばハードウェアの物理的制約から開放されます。

• さらに外部に公開するための準備なども手軽に行えます。

Page 15: 北海道勉強会_20140531

15Copylight © Classmethod, Inc.

Google Cloud Platform Compute Engine

https://cloud.google.com/products/compute-engine/

Page 16: 北海道勉強会_20140531

16Copylight © Classmethod, Inc.

Amazon Web Services

http://aws.amazon.com/jp/

他にも色々ありますが、代表的なところはこんなものでしょう。例に AWS で作ってみるのを考えてみます

Page 17: 北海道勉強会_20140531

17Copylight © Classmethod, Inc.

AWS でやる?

1. サーバー( EC2 ?)2. フロント

( CloudFront ?)3. データストア( RDS?

DynamoDB? )4. ロードバランサ( ELB )

Page 18: 北海道勉強会_20140531

18Copylight © Classmethod, Inc.

AWS でやる?

• 確かにハードウェアの制約などははずれましたが、まだまだ用意しなければならないものが大量にあります。

• あんまり準備する手間は変わらない・・・?

• まだまだモバイアプリ開発にとって、本質的でない作業が大量に含まれています。

Page 19: 北海道勉強会_20140531

19Copylight © Classmethod, Inc.

本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ

ル・アプリは DB サーバーとか必須

• Android, iOS のプログラムを書く他に上のことも全てやらなきゃいけない?

• なんでモバイルアプリを開発するのに– サーバープログラム書いてるんだろ・・・– URL 設定してるんだろ・・・

Page 20: 北海道勉強会_20140531

20Copylight © Classmethod, Inc.

本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ

ル・アプリは結局サーバーを全部用意しないといけません。

• Android 、 iOS のプログラムを書く他に上のことも全てやらなきゃいけない?

• なんでモバイルアプリを開発するのに• サーバープログラム書いてるんだろ・・・• URL のルーティングとか設定してるんだ

ろ・・・

Page 21: 北海道勉強会_20140531

21Copylight © Classmethod, Inc.

本質以外のことが多すぎる• サーバーにデータを保存したりする、モバイ

ル・アプリは結局サーバーを全部用意しないといけません。

• Android 、 iOS のプログラムを書く他に上のことも全てやらなきゃいけない?

• なんでモバイルアプリを開発するのに• サーバープログラム書いてるんだろ・・・• URL のルーティングとか設定してるんだ

ろ・・・

自分はもっと UI や UX など、ユーザーに触れるモバイルアプリの本質的なところ

に工数をかけたいんだ!

Page 22: 北海道勉強会_20140531

22Copylight © Classmethod, Inc.

Parse

Page 23: 北海道勉強会_20140531

23Copylight © Classmethod, Inc.

Parse

• Parse とは、 Parse が提供する【 MBaaS 】です。

• 昨年あたりに Facebook 社に買収されてます。

• ググらビリティが低すぎて開発者泣かせ

Page 24: 北海道勉強会_20140531

24Copylight © Classmethod, Inc.

Parse の特徴• モバイルのバックエンドを構築する環境を一手に

まとめて提供してくれるサービスです

• Web ホスティング• データストア• Social 連携( Facebook, Twitter )• Push 通知• REST API• 各種 Native 開発用 SDK の提供… and etc

Page 25: 北海道勉強会_20140531

25Copylight © Classmethod, Inc.

Parse の特徴

全部まとめて Parse が面倒みてくれます

Page 26: 北海道勉強会_20140531

26Copylight © Classmethod, Inc.

Parse の事例(世界)

Page 27: 北海道勉強会_20140531

27Copylight © Classmethod, Inc.

なぜ Parse を選択するのか

• MBaaS の世界のにおいて、先駆者的な実装になってる–日本国内の MBaaS には、 Nifty Cloud など

がありますが、 Parse のメソッドと同じ命名規則になっていたり

–何かと共通するものが多い

Page 28: 北海道勉強会_20140531

28Copylight © Classmethod, Inc.

多様な SDK

• 各 OS の Native 開発 SDK が提供されていること– iOS, Windows Phone, Android, JS,

Xamarin, Unity などほぼ主要な言語を網羅しています

Page 29: 北海道勉強会_20140531

29Copylight © Classmethod, Inc.

Social 連携でのログイン機能を簡単に実装

Twitterログイン

Page 30: 北海道勉強会_20140531

30Copylight © Classmethod, Inc.

強力な Push 通知機能

• APNs, GCM など OS ごとの Push 通知の仕様は複雑怪奇な上、あまりにも実装が面倒

• Amazon SNS などを利用すればその辺も面倒みてくれるかも?

Page 31: 北海道勉強会_20140531

31Copylight © Classmethod, Inc.

強力な Push 通知機能

Page 32: 北海道勉強会_20140531

32Copylight © Classmethod, Inc.

強力な Push 通知機能

Page 33: 北海道勉強会_20140531

33Copylight © Classmethod, Inc.

強力な Push 通知機能

• Amazon SNS 以上に気軽なコンソールで準備完了

• 設定項目これだけ。• GCM は設定を ON にするだけ!

Page 34: 北海道勉強会_20140531

34Copylight © Classmethod, Inc.

サーバサイド構築まで5 分かからない

• データの定義さえすれば使える状態なので、すぐ使えるよ

• プロジェクト作成、データ定義だけでREST API 経由とか SDK で CRUD できます

Page 35: 北海道勉強会_20140531

35Copylight © Classmethod, Inc.

サーバーサイドの動作も比較的自由に変更できる

• サーバーサイドプログラミングを少しだけやると、容易に動作を拡張できます

• プロジェクト作成、データ定義だけで、 REST API経由で CRUD できます

Page 36: 北海道勉強会_20140531

36Copylight © Classmethod, Inc.

サーバーサイドの動作も比較的自由に変更できる

• サーバーサイドプログラミングを少しだけやると、容易に動作を拡張できます

• プロジェクト作成、データ定義だけで、 REST API経由で CRUD できます

いちおし!

Page 37: 北海道勉強会_20140531

37Copylight © Classmethod, Inc.

Analytics

• リクエスト数やら Push 通知の数とか色々とカッコいいグラフにして表示してくれます

Page 38: 北海道勉強会_20140531

38Copylight © Classmethod, Inc.

ダッシュボードの UI が Cool

Page 39: 北海道勉強会_20140531

39Copylight © Classmethod, Inc.

バックエンド機能を拡張Cloud Code

• バックエンド拡張用のコードはJavaScript で記述

• SDK を提供• 簡単なコマンドで debug から deploy ま

で• Backbone Style を踏襲• 他 JS ライブラリの導入が楽

Page 40: 北海道勉強会_20140531

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

41Copylight © Classmethod, Inc.

基本コマンド

• 作成したコードを Deploy

• Remote ログを監視

• プロジェクト作成

$ parse deploy

$ parse log -f

$ parse new <AppName>

Page 42: 北海道勉強会_20140531

42Copylight © Classmethod, Inc.

Cloud Code の特徴

• 各種カスタム Function はクロージャで定義

• データの CRUD の前後 (before, after)で Hook して実行するトリガ Function

• 独自の API の口を定義できるカスタムFunction

Page 43: 北海道勉強会_20140531

43Copylight © Classmethod, Inc.

トリガ Function

• 処理を書けば Parse が適当なタイミングで勝手に実行してくれる

Page 44: 北海道勉強会_20140531

44Copylight © Classmethod, Inc.

トリガ Function サンプル

Page 45: 北海道勉強会_20140531

45Copylight © Classmethod, Inc.

カスタム Function

• 呼び出し口を提供• REST の呼び出しは POST のみ• SDK 内からの呼び出しは、専用のメソッ

ドが準備されている

Page 46: 北海道勉強会_20140531

46Copylight © Classmethod, Inc.

カスタム Function サンプル

Page 47: 北海道勉強会_20140531

47Copylight © Classmethod, Inc.

Parse のここがよくないよ

• 運営側の FAQ がゆるふわ(適当)

質問者「これをやるとこんなエラーが出るんだけど」運営「これをやれば解決するぜ!」_人人人人人人人人_> 解決しない! < ̄ Y^Y^Y^Y^Y^Y^Y ̄

Page 48: 北海道勉強会_20140531

48Copylight © Classmethod, Inc.

Parse のここがよくないよ

• StackOverflow もゆるふわ

「こんな問題が発生したんだけど、誰か解決方法知らないかい?」「俺も同じ問題が発生したぜ」「俺も」「俺も」

Page 49: 北海道勉強会_20140531

49Copylight © Classmethod, Inc.

つかってみる

• プロジェクトをつくります!

Page 50: 北海道勉強会_20140531

50Copylight © Classmethod, Inc.

つかってみる

• データを定義します

Page 51: 北海道勉強会_20140531

51Copylight © Classmethod, Inc.

つかってみる

• おわりです!

• あとは、 SDK とか REST API でアクセスするだけ

https://api.parse.com/1/classes/<ClassName>

Page 52: 北海道勉強会_20140531

52Copylight © Classmethod, Inc.

つくってます

• Open Othello API

Page 53: 北海道勉強会_20140531

53Copylight © Classmethod, Inc.

まとめ

• Console の UI がかっこいいので使いたくなる

• モバイル・アプリに必要なサービスが全てこれで事足りる

• 使いはじめるのは超簡単

• Cloud Code萌え

Page 54: 北海道勉強会_20140531

54Copylight © Classmethod, Inc.

ありがとうございました