google cloud endpoints の紹介
DESCRIPTION
Google App Engine を使ったスマホアプリ サーバーサイド開発入門セミナー@Google Japan 「RainbowAppsスクール」主催 2013年8月28日に開催したスマホアプリ開発者 向けの無料セミナーのプレゼンテーションです。 【セミナー内容】 昨今のスマートフォンアプリ開発の大規模かに伴い、アプリ開発にもサーバサイド開発の必要性が高まっています。 そこで今回RainbowAppsはGoogleが提供しているサーバサイド環境である「Google App Engine」でスマホアプリのサーバサイドを構築する入門セミナーを開催いたします。 最近公開されたGoogle App Engineの新しいサービスである「Google Cloud Endpoints」を利用すれば簡単にスマートフォンアプリのサーバサイドを開発することができるようなりました。セミナーでは「Google Cloud Endpoints」のデモも紹介いたします。 【Google App Engineでこんな機能を実装できます】 ・オンラインゲーム(ランキング機能などソーシャル要素) ・プッシュ通知機能 ・コンテンツ配信機能 ・写真共有機能 導入事例 ・ウェブサイト Google App Engine では、サーバーやマシンリソースを気にすることなく、 レスポンスの速い安全なウェブサイトを構築できます。 ・ビジネス アプリケーション Google App Engine でビジネス アプリケーションを作成すれば、どのデバイスからもアプリケーションにアクセスできます。 ・モバイル アプリとゲーム アプリ Google App Engine をモバイルアプリのバックエンドとして利用すれば、Chrome や Android のゲームへ拡張性を提供できます。 会場:Google Japan 30F Andromeda 主催:RainbowAppsスクール 横浜校・大阪本校 協力:Google Japan 運営:イメージピット株式会社 / LINE-UP株式会社 【アジェンダ】 福田 潔 Google Japan Inc. Enterprise Cloud Platform 高橋良輔(RainbowApps横浜校) 2000年からベンチャー企業のWebクリエイターとしてデザインやシステムの仕事で経験を積み、 2006年から独立、大手通信会社のシステム開発などを支援してきた。スマートフォンを利用したビジネスにも積極的に取り組んでいる。 宮本 太司(RainbowApps大阪代表) Google Appsで起業。Google Apps,iPhone,Android,クラウドビジネスに特化した事業を展開。2011年より RainbowApps大阪を運営。 2012年7月10日 (火) 年に一度のエンタープライズ総合イベント Google Atmosphere TOKYO Gold Sponsorshipに。 今回はスマホアプリ開発者向けにGoogleソリューションを提案いたします。TRANSCRIPT
Google Cloud Endpointsの紹介
RainbowApps横浜校 イメージピット株式会社
代表 高橋 良輔
Google Cloud Endpointsとは? Google App Engineのモバイル端末 (Android、iPhoneなど)のバックエンド連携をサポートするツール ・GAEからエンドポイント生成 ・クライアント(Android、iOS)のライブラリ生成
エンドポイントって何? クライアントから簡単にバックエンドサーバのプログラムを実行できるようにした仕組み ・Google Cloud EndpointsはREST形式でエンドポイントを生成
REST形式のエンドポイントAPIを提供している代表的なサービス
RESTって何? RESTは、URLにパラメータを指定してHTTPでアクセスすると、XMLやJSONで記述されたメッセージが送られてくるようなシステムおよび呼び出しインターフェース
http://xxxxx/_ah/api/xxx/list
JSON形式などで返却
Google Cloud Endpoit
Google App Engine
GCEの特徴 その1 GAEプロジェクトにて一定ルールに従ってサーバサイドプログラム(Java)を書くだけで簡単にREST形式のエンドポイントを生成 ・REST形式のURLにてアクセスすればJSON形式でデータを返却
GCEの特徴 その2 REST形式のエンドポイントに加え、AndroidやiOSなどのクライアントライブラリを自動生成 生成されたライブラリをクライアントアプリに組み込む事により オブジェクトとしてGAEのデータを扱える
Google Cloud Endpoit
Google App Engine
クライアント ライブラリ生成
GCEのここがすごい!
・短期間でサーバサイドを構築・公開できる ・短期間でクライアントサイドと連携できる (手順を覚えれば) ・Googleパワーを(ある程度の範囲)は 無料で使える →インフラ担当がいらない!
どんなアプリに向いているか?
・大量にサーバアクセスがあるアプリ →AKB48の総選挙など ・日々データをサーバに蓄積していくアプリ →twitterのようなアプリ
それでは 実際にGCEを使ったアプリ 作ってみましょう!
Google Cloud Endpointsデモ
資料について
PCやスマートフォン、タブレットをお持ちの方はこちらから資料を確認できます。 http://school.rainbowapps.com/yokohama/gae/#doc
はじめに 今回は簡単なGAEアプリケーション、Android、iOSアプリを作りデータを連携してみます。
Google Cloud Endpoit
必要な環境
下記の環境を構築する必要があります。 ・GAEのアカウント登録 ・eclipse+ADTインストール ・Googleプラグインインストール ・Xcodeインストール(iOSアプリ開発時) 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC--
開発の流れ
1.GAEプロジェクト作成 →DTOクラス、Endpointクラス作成 2.ローカル環境APIテスト 3.GAE本番環境デプロイ 4.クライアントライブラリ生成 5.Androidアプリ開発 →クライアントライブラリインポート 6.iOSアプリ開発 →クライアントライブラリ生成・インポート
手順1 GAEプロジェクト作成
EclipseでGAEプロジェクトを作成し 下記のクラスファイルを作成 ・DTOクラス →DataStoreに登録するEntitieを定義 ・Endpointクラス →APIメソッドを定義 →APIメソッドにアノテーションを付与 (次ページ) 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-GAE-
手順2 アノテーション付与
EndpointクラスのAPIメソッドにアノテーションをつける @Api(name =“game", version = "v1") public class Game { @ApiMethod(name = "game.update", httpMethod = "POST") public Game updateGame(@Named("state") String state) { // method logic here return game; } } 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-Endpoint-1
手順3 ローカル環境APIテスト
バックエンド側の実装が完了したら 「Rus As」→「Web Application」で ローカル環境起動し、 ローカル環境でAPIをテスト <ローカルAPIテスト環境> https://developers.google.com/apis-explorer/?base=http://localhost:8888/_ah/api 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-API-
手順4 GAE本番環境デプロイ
ローカル環境でAPIをテストが完了したら、 本番環境へデプロイ デプロイもEclipseで簡単にデプロイ出来る! プロジェクトにGAEのプロジェクトIDをセットし 「Google」→「Deploy to App Engine」するだけ! 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-GAE-1
手順5 クライアントライブラリ生成
Android、IOSアプリと連携するのに 必要なクライアントライブラリを生成 「Google」→「Generate Cloud Endpoint Client Library」をクリック 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC--7
手順6 Androidアプリ開発
開発手順 1.EclipseでAndroidプロジェクト作成 2.AndroidManifest.xmlパーミッション設定 3.クライアントライブラリのインポート 4.API専用ライブラリのリンク・ビルドパス追加 5.Endpointクラスをインスタンス化し APIメソッドを実行※ ※実行時はAsyncTaskで呼び出す必要有 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-Endpoint-Android-
手順7 iOSアプリ開発
<開発手順> 1.XcodeでiOSプロジェクト作成 2.Google Api Objective-Cクライアント ファイルダウンロード 3.クライアントライブラリ生成 4.クライアントライブラリ組み込み 5.Endpointクラスをインスタンス化し APIメソッドを実行 詳細解説 https://sites.google.com/a/image-pit.com/gae/cloudendpoint#TOC-Endpoint-iOS-
手順7 iOSアプリ開発
ServiceGenerator
GTL Xcodeプロジェクト
GAEプロジェクト
Endpoint クライアント ライブラリ
iOS用Endpoint クライアント ライブラリ
iOSアプリ (Xcodeプロジェクト)
コマンド実行
生成
ライブラリコピー
Google Api Objective-C クライアントファイル
ライブラリコピー
Google SVNリポジトリ
チェックアウト
ARC除外設定
ありがとうございました <ご案内> RainbowApps講座情報 http://school.rainbowapps.com/yokohama イメージピット株式会社 http://www.image-pit.com/ →アプリ開発、Webサイト制作、 サーバサイド開発承ります <お問合せ> [email protected]