GWT+ObjectifyでラクラクGAEアプリ開発  越智 洋司@おちラボ   2011.12.18 京都GTUG年忘れ勉強会資料
自己紹介• とりあえず京都GTUGスタッフ    (あんまり手伝えてませんが)• 本業:近畿大学理工学部教員   (「おちラボ」で検索してください)• 特技:GWT(正式には「グィット」と読むらしい)  2010年5月の京都GTUG勉強会にてお...
今日のお話○GWTについてのちょっとした話  ・GWT再入門  ・ラボでの利用小話○Objectifyの紹介          2011.12.18 京都GTUG年忘れ勉強会資料
GWTとは• Google Web ToolKitの略• JavaScriptアプリケーションをJavaで記述  → JavaコードをJavaScriptへ変換  (JavaScriptが嫌いな紳士・淑女の皆様にオススメ)• UI周りの記述はX...
Javaで記述EclipseやNetbeansなどのJavaIDEで書ける        2011.12.18 京都GTUG年忘れ勉強会資料
UI周りはXMLで<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"          xmlns:g="urn:import:com.google.gwt.user.client.ui...
Ajaxな通信がRPC感覚で                  〜GWT-RPC〜 サーバ側public Car getCar(Person user) throws IllegalArgumentException {            ...
おちラボでの利用実績・小話(1)• 2009年夏からGWT採用 (前年度までJSF)• JavaScriptベースのAjaxアプリに  手をつけたことが1度だけあり。  → いいものはできた、、、、     が、スパゲティソースコードだったとい...
おちラボでの利用実績・小話(2)私自身の個人的な印象→ 学生が作ったアプリの再利用性が高まった学生のウケはどうか?→ネットでの情報、書籍不足に若干の不満がある    国内ではいまいち流行ってない?!       2011.12.18 京都GTU...
GWTは熱い!(海外では)Google IO 2011 でもGWTは積極的に紹介されている  –   GWT + HTML5: A web developers dream!  –   HTML5 Showcase for Web Develo...
そしてGAEクライアントをGWTしたのならサーバも、、、                    昨年度までは                    Tomcat, Glassfish                    MySQL+ Hibe...
Objectifyとは  (objectify-appengineが正式名称)• GAEのDatastoreにアクセスするためのAPI• GWT-RPCとの親和性も良い• 記述が簡単、シンプルなメソッド• 高機能、高速処理• GoogleIO2...
GWTとの親和性の良さとは?     (GWT-RPCの制約に対応)          Entity                                               DataStore         GWT-RPC...
記述が簡単         ~EntityはPOJOで~class Car implements IsSerializable {   @Id private String vin;   private String color;    // ...
シンプルなメソッド•   get() ・・・IDによる検索•   put() ・・・追加、修正•   delete() ・・・削除•   query() ・・・検索Objectify ofy = ObjectifyService.begin()...
軽量かつ強力           (以下抜粋)• 設定ファイルなし(configファイルなど不要)  (jarファイルを放り込むだけで動く)• 軽量かつ高速(らしい)• memcacheとの自動連携機能がある(らしい)• EntityGroup...
おちラボでの利用実績・小話 □現状、学生には教え始めたところ (私自身も勉強中) □学生のウケはどうか?  → ネットでの情報が少なすぎる。。。    という不満の声がチラホラとまだ1年経ってませんので判断は時期尚早かと。。        20...
GWT+GAE with Objectifyを勧める理由(1/2)□GAEが正式版としてリリース (無料枠で使える枠が少なくなった?)     Googleの狙い(意図)は何か?神は言っている、、、ここ(GAEのサーバ)で処理をするんじゃないと...
GWT+GAE with Objectifyを勧める理由(2/2) そもそものDataStore(KVS)の思想 → 従来のRDBの思想とは違う   (非正規化の形で格納)                                つまり、...
そこでGWT+Objectifyの出番ですよクライアント側の処理の増加= JavaScriptでの処理の増加 (><)◎GWTを利用すれば、、、 複雑なコードの記述、オブジェクティブな構成   Javaの記述のしやすさがカバー◎Objectif...
今日のまとめObjectify + GAEで2012年こそGWTの爆発的な普及が来る!        2011.12.18 京都GTUG年忘れ勉強会資料                                    よいお年を!
Upcoming SlideShare
Loading in …5
×

Gwt+objectifyでラクラクGAEアプリ開発

941 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Gwt+objectifyでラクラクGAEアプリ開発

  1. 1. GWT+ObjectifyでラクラクGAEアプリ開発 越智 洋司@おちラボ 2011.12.18 京都GTUG年忘れ勉強会資料
  2. 2. 自己紹介• とりあえず京都GTUGスタッフ (あんまり手伝えてませんが)• 本業:近畿大学理工学部教員 (「おちラボ」で検索してください)• 特技:GWT(正式には「グィット」と読むらしい) 2010年5月の京都GTUG勉強会にてお話 2011.12.18 京都GTUG年忘れ勉強会資料
  3. 3. 今日のお話○GWTについてのちょっとした話 ・GWT再入門 ・ラボでの利用小話○Objectifyの紹介 2011.12.18 京都GTUG年忘れ勉強会資料
  4. 4. GWTとは• Google Web ToolKitの略• JavaScriptアプリケーションをJavaで記述 → JavaコードをJavaScriptへ変換 (JavaScriptが嫌いな紳士・淑女の皆様にオススメ)• UI周りの記述はXMLにより表現可能 (UiBinderという機能)• サーバとのAjaxなやり取りがRPCの感覚でできる (GWT-RPCという機能) 2011.12.18 京都GTUG年忘れ勉強会資料
  5. 5. Javaで記述EclipseやNetbeansなどのJavaIDEで書ける 2011.12.18 京都GTUG年忘れ勉強会資料
  6. 6. UI周りはXMLで<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"> <ui:style> .important { font-weight: bold; } </ui:style> <g:HTMLPanel> Hello, <g:TextBox></g:TextBox> <g:Button styleName="{style.important}" ui:field="button" >OK</g:Button> <g:Button>Cancel</g:Button> </g:HTMLPanel></ui:UiBinder> Javaコードを一切書くことなくUI実装が可能 (デザインとロジックが完全に区別) 2011.12.18 京都GTUG年忘れ勉強会資料
  7. 7. Ajaxな通信がRPC感覚で 〜GWT-RPC〜 サーバ側public Car getCar(Person user) throws IllegalArgumentException { : : :}クライアント側RemoteService.getCar(user, new AsyncCallback<Car>() { public void onFailure(Throwable caught) { } public void onSuccess(Car result) { }}); 2011.12.18 京都GTUG年忘れ勉強会資料
  8. 8. おちラボでの利用実績・小話(1)• 2009年夏からGWT採用 (前年度までJSF)• JavaScriptベースのAjaxアプリに 手をつけたことが1度だけあり。 → いいものはできた、、、、 が、スパゲティソースコードだったという悲劇• GWTを導入することで → Javaだけ教えればいい! (多言語を習得する時間がない) 2011.12.18 京都GTUG年忘れ勉強会資料
  9. 9. おちラボでの利用実績・小話(2)私自身の個人的な印象→ 学生が作ったアプリの再利用性が高まった学生のウケはどうか?→ネットでの情報、書籍不足に若干の不満がある 国内ではいまいち流行ってない?! 2011.12.18 京都GTUG年忘れ勉強会資料
  10. 10. GWTは熱い!(海外では)Google IO 2011 でもGWTは積極的に紹介されている – GWT + HTML5: A web developers dream! – HTML5 Showcase for Web Developers: The Wow and the How – GWT + UI Designer: Enterprise Web UIs Made Easy! – Using GWT and Eclipse to Build Great Mobile Web Apps – High-performance GWT: best practices for writing smaller, faster apps – Highly Productive GWT: Rapid Development with App Engine, Objectify, RequestFactory, and gwt-platform – Kick-Ass Game Programming with Google Web Toolkit – Building Game Development Tools with App Engine, GWT, and WebGL – Fireside Chat with the GWT and Cloud Tooling Team – GWTs UI overhaul 他、多数、、、 2011.12.18 京都GTUG年忘れ勉強会資料
  11. 11. そしてGAEクライアントをGWTしたのならサーバも、、、 昨年度までは Tomcat, Glassfish MySQL+ Hibernate・今年からGAEでの運用を想定した開発方針へ・データベースもDatastoreに Objectify の採用 2011.12.18 京都GTUG年忘れ勉強会資料
  12. 12. Objectifyとは (objectify-appengineが正式名称)• GAEのDatastoreにアクセスするためのAPI• GWT-RPCとの親和性も良い• 記述が簡単、シンプルなメソッド• 高機能、高速処理• GoogleIO2011でも紹介 Highly Productive GWT: Rapid Development with App Engine, Objectify, RequestFactory, and gwt-platform 2011.12.18 京都GTUG年忘れ勉強会資料
  13. 13. GWTとの親和性の良さとは? (GWT-RPCの制約に対応) Entity DataStore GWT-RPC ObjectifyClient Server ・Client側でObjectifyのEntity定義が可能 ・DTOなしにClient-DataStore間の授受 2011.12.18 京都GTUG年忘れ勉強会資料
  14. 14. 記述が簡単 ~EntityはPOJOで~class Car implements IsSerializable { @Id private String vin; private String color; // アクセッサメソッドは必要} たったこれだけでいい! 2011.12.18 京都GTUG年忘れ勉強会資料
  15. 15. シンプルなメソッド• get() ・・・IDによる検索• put() ・・・追加、修正• delete() ・・・削除• query() ・・・検索Objectify ofy = ObjectifyService.begin();ofy.put(new Car("123123", "red"));Car c = ofy.get(Car.class, "123123");ofy.delete(c); 2011.12.18 京都GTUG年忘れ勉強会資料
  16. 16. 軽量かつ強力 (以下抜粋)• 設定ファイルなし(configファイルなど不要) (jarファイルを放り込むだけで動く)• 軽量かつ高速(らしい)• memcacheとの自動連携機能がある(らしい)• EntityGroupの操作も容易• Indexの制御も容易 その他できることが豊富 2011.12.18 京都GTUG年忘れ勉強会資料
  17. 17. おちラボでの利用実績・小話 □現状、学生には教え始めたところ (私自身も勉強中) □学生のウケはどうか? → ネットでの情報が少なすぎる。。。 という不満の声がチラホラとまだ1年経ってませんので判断は時期尚早かと。。 2011.12.18 京都GTUG年忘れ勉強会資料
  18. 18. GWT+GAE with Objectifyを勧める理由(1/2)□GAEが正式版としてリリース (無料枠で使える枠が少なくなった?) Googleの狙い(意図)は何か?神は言っている、、、ここ(GAEのサーバ)で処理をするんじゃないと、、、 2011.12.18 京都GTUG年忘れ勉強会資料
  19. 19. GWT+GAE with Objectifyを勧める理由(2/2) そもそものDataStore(KVS)の思想 → 従来のRDBの思想とは違う (非正規化の形で格納) つまり、、、「クライアント側にデータを渡してそこで処理しろ」 →今までサーバ側(Java)でやってたことを クライアント側でやれ! 2011.12.18 京都GTUG年忘れ勉強会資料
  20. 20. そこでGWT+Objectifyの出番ですよクライアント側の処理の増加= JavaScriptでの処理の増加 (><)◎GWTを利用すれば、、、 複雑なコードの記述、オブジェクティブな構成 Javaの記述のしやすさがカバー◎Objectifyを利用すれば→ 速やかにデータを授受できる 2011.12.18 京都GTUG年忘れ勉強会資料
  21. 21. 今日のまとめObjectify + GAEで2012年こそGWTの爆発的な普及が来る! 2011.12.18 京都GTUG年忘れ勉強会資料 よいお年を!

×