Japan
このブログでは、Google から開発者のみなさま向けの情報をいち早くお届けします。
Zooshi を参考に、ゲーム ユーティリティーを活用しましょう
2016年1月6日水曜日
[この記事は Fun Propulsion Labs*、Alex Ames による Google Developers Blog の記事 "Hungering for Game Utilities?" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。] Fun Propulsion Labs では、簡単に高性能なクロス プラットフォームゲームが開発可能であることををデモするため、サンプル ゲームも開発しています。 Google Cardboard が広まりつつあるなか、何日も夜遅くまで仕事をして、動物並みの食欲をスシで満たしながら作りだしたのが Zooshi です。Zooshi は、C++ で書かれた オープンソースのクロス プラットフォーム ゲームで、以下をサポートしています。 Android、Android TV、Windows、OS X、Linux Google Cardboard Android 上の Google Play Game Services へのサインインとリーダーボード レベルのカスタマイズ Zooshi は、Google が新たにリリースやアップデートを行った、以下のようなオープンソース ゲーム テクノロジーを使って Android ゲームを開発する方法を説明するために開発されたものです。 Motive は、Google のアニメーション システムの基盤となるもので、キャラクターや環境を本物らしく、動きのあるものにします。 CORGI(Component Oriented Reusable Game Interface)は、ユーザーが複雑なゲーム オブジェクトを、モジュール式のカスタム定義されたビヘイビアの集合として定義できるようにすることを目的とした、エンティティ コンポーネント システムです。 FlatUI は、フットプリントが小さく、シンプルなイミディエイト モード GUI システムで、ユーザー インターフェースを簡単に構築できます。 Scene Lab は、デザイナーが外部エディタを使わなくても、ゲームのプレイ中にレベルを設計したり、エンティティを編集したりすることを可能にします。 Breadboard は、エンティティのビヘイビアを編集するための、使い勝手のよいノード ベースのスクリプティング システムで、プログラミングに詳しくないデザイナーでも使いやすくなっています。 FPLBase は、クロス プラットフォームの API レイヤーで、入力の読み込みやグラフィック コンテクストの作成といった、低レベルのタスクを抽象化するためのものです。 以前リリースした Pie Noon と同様に、Flatbuffers、 Mathfu、 fplutil、 WebP も幅広く使用しています。 このゲームは、 Google Play ストア からダウンロードできるほか、 GitHub ページから最新のオープンソース リリースをダウンロードできます。ぜひこのゲームのコードを参考にして、前述のライブラリやユーティリティーをあなたの Android ゲームで利用する方法を見つけてください。何か質問がありましたら、私たちの ディスカッション リストを活用してください。 * Fun Propulsion Labs は、Android や他のプラットフォーム上でのゲーミングを発展させることに取り組んでいる、Google 社内のチームです。 Posted by Eiji Kitamura - Developer Relations Team
Chrome Dev Summit 2015 で振り返る プログレッシブ ウェブ アプリ
2016年1月6日水曜日
[この記事は Darin Fisher、Chrome エンジニアリング部門副社長による Chromium Blog の記事 "Chrome Dev Summit 2015: That’s a wrap!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。] Chrome Dev Summit が始まった 2012 年、Android 向け Chrome が公開されました。現在、Android 向け Chrome の月間アクティブ ユーザーは 8 億人 を超えています。 ウェブの最大の強みは、そのリーチの広さにあります。さまざまなデバイスやオペレーティング システムで利用できるだけでなく、ユーザーへの到達度が高いのです。トップ クラスのモバイル ウェブ サイトの月間ユニーク ビジター数は、トップ クラスのモバイル アプリの 2.5 倍で、モバイル ウェブのリーチはモバイル アプリの 2 倍以上のペースでそれぞれ増加しています。こうしたリーチの広さが、他に類を見ないほど多くのユーザーを引きつける、チャンスにつながっています。 現在、ウェブ プラットフォームの重要性が高まりつつあると私たちは考えます。これを実現するための主要なテクノロジーやツールのアーリー アダプターが成功を収めているからです。基調講演では、モバイル プラットフォームの進化と、「プログレッシブ ウェブ アプリ」への移行を取り上げました。プログレッシブ ウェブ アプリとは、最新のウェブ機能を使用して構築される、高速で堅牢な、アプリのようなエクスペリエンスのことです。ウェブは大きな発展を遂げてきており、ウェブ テクノロジーを使ってモバイル上で没入型アプリを構築する場合でも、長年慣れ親しんできたウェブのプロパティを今までどおり使い続けることができます。Flipkart の新しいモバイル ウェブ エクスペリエンスは、最新の機能を使って次世代のユーザー エクスペリエンスを提供しているプログレッシブ ウェブ アプリの良い例です。 実際にはプログレッシブ ウェブ アプリは、主に信頼性、パフォーマンス、エンゲージメントの 3 つの面で、従来のウェブサイトとは異なっています。 信頼性 高速 Wi-Fi、2G 携帯電話ネットワーク、完全なオフラインなど、どのような接続状況にあっても、ウェブ アプリの読み込みは高速でなければなりません。不安定で信頼性が低いネットワーク環境下でも障害に強いウェブ アプリを構築する方法として、Service Worker は理想的です。私たちは、独自の Service Worker を書かないで済むよう、2 つのライブラリをリリースしています。App Shell 向けの sw-precache と、動的コンテンツ向けの sw-toolbox です。実装が稼働できる状態になったら、 Chrome DevTools や WebPageTestを使えば、その実装をさまざまなネットワーク環境で簡単にテストすることができます。Service Worker はすでに多くのデベロッパーに採用されており、現在、Service Worker 経由のウェブページの読み込み回数は 1 日 22 億回にのぼります。この数には、Chrome の「新しいタブ」のページで使われた分は含まれていません。 パフォーマンス RAIL パフォーマンス モデルを使用すれば、あなたが開発したサイトやアプリに対し、ユーザーが何を期待しているかが分かりやすくなります。このモデルではパフォーマンスを次の 4 つの重要な目標に分けて考えています。 応答時間(入力からレスポンスまでの時間)は 100 ミリ秒未満。 アニメーション(スクロール、ジェスチャ、遷移)は、毎秒 60 フレームで動く。 アイドル時間を利用して、重要性の低い作業を 50 ミリ秒単位でうまくスケジュールする。 読み込みが 1 秒以内に終わる。 実際に RAIL パフォーマンス モデルの 1 項目を改善しただけで、ユーザー エクスペリエンスが大きく変化する場合があることが分かっています。例えば、読み込み時間が 1 秒違うと、ページ ビュー総数には 11%、顧客満足度には 16% もの影響があります。 エンゲージメント 従来、ユーザーがウェブ上のサイトを再訪するのは困難でした。ですがプッシュ通知を使えば「タブの外」でもウェブページにアクセスできるようになります。つまり、ユーザーはブラウザを開いたり、ウェブ アプリを実際に使わなくてもよいということです。何より、この通知機能は他のアプリ通知アプリ通知とほぼ同じ操作感を実現しています。現在、Chrome では毎日 3 億 5000 万件以上のプッシュ通知が送信されており、その数は急速に増加しています。Beyond the Rack の場合、プッシュ通知によって同社サイトを訪れたユーザーは、平均的なユーザーよりも滞在時間が 72% 長く、購入金額が 26% 多いことが分かっています。 成功のためのツール Google はウェブ デベロッパーに成功をもたらすための取り組みを行っています。Polymer は、ウェブ上でコンポーネントを構築するための一般化されたライブラリですが、デベロッパーが RAIL の目標を実現するのを支援することも重視しています。今年の Google I/O でバージョン 1.0 がリリースされて以来、Polymer は 100 万超のウェブページで使われるようになっており、Google 内の 300 以上のプロジェクトでも使われています。Polymer 1.0 は、その前のバージョン 0.5 よりも 3 ~ 4 倍高速化しており、最新のバージョン 1.2 はそれよりさらに 20% 高速になっています。最新のウェブ開発の考え方を取り入れた Polymer の使用を開始するには、Polymer のクイックツアー、Polymer Summit の講演、Polymer codelabs をごらんになるか Polymer Starter Kit をお試しください。 Google では Web Fundamentals のような優れたリソースも用意しており、今後さらに増やしていく予定です。 新機能をリリースするたびに、Mozilla Developer Network で詳しい情報を発表するようにもしています。過去 1 年だけでも、私たちは Mozilla Developer Network に 2800 件の編集を行い、212 ページの新しいページを作成しています。ウェブ デベロッパー教育の取り組みをさらに進めるために、Google は Udacity と連携し、シニア ウェブ ナノディグリーを授与しています。これは、Service Worker や Promises、HTTP/2 といった、最新のウェブ テクノロジーや手法に特化した講座を修了したことを示す認定証です。 Chrome Dev Summit 2015 の全セッションの動画を公開していますので、ぜひご覧ください。皆さんのイベントへの参加、動画の閲覧、そして何よりもウェブ開発の取り組みに感謝いたします。 ※ Google for Mobile でのセッション「スマートフォン体験を一歩先へ 〜 プログレッシブ ウェブ アプリの作り方」で使用したスライド資料も参考にしてください(スピーカーノートに説明が記載されています)。 Posted by Eiji Kitamura - Developer Relations Team
モバイルアプリで場所や住所の入力を容易にするオートコンプリートウィジェットをリリース
2016年1月6日水曜日
[この記事は Florian Bertele, Product Manager, Google Places API による Geo Developers Blog の記事 "New Autocomplete widget helps users with places and address entry in mobile apps" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。] 米国時間 12 月 17 日、Google は、アプリ内でユーザーが場所や住所をより素早く入力できるようにする機能の提供を開始しました。ユーザーが場所の名前や住所を入力している途中で、自動的に補完するオートコンプリート機能であり、次の 2 つの方法で提供します。一つは、オートコンプリート ウィジェットです。iOS(英語)と Android に対応しており、わずかなコーディング作業でオートコンプリート機能をアプリケーションに追加できます。もう一つは、オートコンプリート機能を追加した Place Picker です。 オートコンプリート ウィジェットとは 今回リリースしたオートコンプリート ウィジェットの UI には、オーバーレイとフルスクリーンの 2 つのタイプがあります。 オーバーレイ タイプのオートコンプリート ウィジェット フルスクリーン タイプのオートコンプリート ウィジェット Android では、オートコンプリート ウィジェットはフラグメント(英語)として追加することができます。イベント リスナーを追加し、オートコンプリートされたプレイスのリファレンスをアプリケーションにて受け取ります。あるいは、オートコンプリート ウィジェットをインテント(英語)で起動することもできます。 アクティビティのXML レイアウト ファイルにフラグメントを追加する方法:
アクティビティの onCreate() メソッドにイベント リスナーを追加する方法: // PlaceAutocompleteFragment fragment = (PlaceAutocompleteFragment) getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); fragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { @Override public void onPlaceSelected(Place place) { // 選択したプレイスを処理 } @Override public void onError(Status status) { // エラーを処理 } オートコンプリート ウィジェットを起動するインテントを作成する方法: try { Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) .build(this); startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE); } catch (GooglePlayServicesRepairableException e) { GooglePlayServicesUtil .getErrorDialog(e.getConnectionStatusCode(), getActivity(), 0); } catch (GooglePlayServicesNotAvailableException e) { // 例外を処理 } iOS(Objective-C)では、オートコンプリートのデリゲートを実装してプレイス選択に対応します。 @interface MyViewController () @end @implementation ViewController . . . - (IBAction)onLaunchClicked:(id)sender { // ボタン押下時にオートコンプリート ビュー コントローラーを表示 GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init]; acController.delegate = self; [self presentViewController:acController animated:YES completion:nil]; } - (void)viewController:(GMSAutocompleteViewController *)viewController didAutocompleteWithPlace:(GMSPlace *)place { // ユーザーがプレイスを選択 [self dismissViewControllerAnimated:YES completion:nil]; } - (void)viewController:(GMSAutocompleteViewController *)viewController didAutocompleteWithError:(NSError *)error { [self dismissViewControllerAnimated:YES completion:nil]; } // ユーザーがキャンセル ボタンを押下 - (void)wasCancelled:(GMSAutocompleteViewController *)viewController { [self dismissViewControllerAnimated:YES completion:nil]; } @end Swift の場合: import UIKit import GoogleMaps class MyViewController: UIViewController { @IBAction func onLaunchClicked(sender: AnyObject) { let acController = GMSAutocompleteViewController() acController.delegate = self self.presentViewController(acController, animated: true, completion: nil) } } extension MyViewController: GMSAutocompleteViewControllerDelegate { func viewController(viewController: GMSAutocompleteViewController!, didAutocompleteWithPlace place: GMSPlace!) { // ユーザーがプレイスを選択 self.dismissViewControllerAnimated(true, completion: nil) } func viewController(viewController: GMSAutocompleteViewController!, didAutocompleteWithError error: NSError!) { self.dismissViewControllerAnimated(true, completion: nil) } func wasCancelled(viewController: GMSAutocompleteViewController!) { self.dismissViewControllerAnimated(true, completion: nil) } } Place Picker にもオートコンプリートを 今回、場所名や住所、地図上の位置など、自分の現在地を知らせるのに便利な UI ウィジェット Place Picker にもオートコンプリート機能を追加しました。ユーザーは場所名や住所の一部を入力するだけで、目的の場所をさらに素早く選択できるようになります。 なお、すでにアプリで Place Picker を利用している場合は、自動的にオートコンプリート機能が実行されますので、開発者側では何もする必要はありません。 まずはドキュメントとコード サンプルをご覧ください。ご質問やご意見、ご提案などがありましたら、Stack Overflow(英語)または Google Maps API のバグ報告用掲示板(英語)にてお知らせください。 Posted by 丸山 智康 (Tomoyasu Maruyama) - Google Maps Solution Architect, Google Maps API for Work
ラベル
#hack4jp
ADK
AdMob
ALPN
Analytics
Andorid
Android
Android Auto
Android Design Support Library
ブログ アーカイブ
2016
1月
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"