北海道勉強会_20140531

Preview:

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.

ありがとうございました