[go: up one dir, main page]


[この記事は Jamal Eason、Android プロダクト マネージャーによる Android Developers Blog の記事 "An update on Eclipse Android Developer Tools" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

過去数年間にわたり、私たちチームは Android Studio を使って Android アプリを構築する際の開発環境の向上に努めてきました。Android Studio が発表されてからの反響と好意的なフィードバックには大変感謝しています。公式の Android IDE である Android Studio は、携帯電話、腕時計、車、TV の Android プラットフォーム間でアプリを展開できるパワフルで包括的なツール スイートです。

この実現に向けて Android Studio をさらに効率的かつ高速にするために、Google では Eclipse での Android Developer Tools(ADT)の開発と公式サポートを年内をもって終了いたします。具体的には、Eclipse ADT プラグインと Android Ant ビルドシステムのサポートが終了となります。

移行時期

Android Studio にプロジェクトを移行していない方は、このタイミングで移行することをお勧めします。移行するには、まず Android Studio をダウンロードしてください。多くのデベロッパーにとって移行は簡単で、既存の Eclipse ADT プロジェクトを Android Studio にインポートするときと同様に、以下のように [File] -> [New] -> [Import Project] を実行するだけです。
移行プロセスの詳細については、移行ガイドを参照してください。また、Android Studio と基本的なビルドシステムの詳細については、概要のページをご覧ください。

次のステップ

今後数か月で残りの単体で動作するパフォーマンス ツール(DDMS、Trace Viewer など)を移行し、Android NDK の追加サポートを Android Studio に組み込みます(Android NDK のサポートは Android Studio 1.3 でアーリーアクセス版が追加済)。
統合された開発環境で使いやすいツールを提供できるよう、Google では Android Studio に重点を置いています。Eclipse 内の Android ツールは、Eclipse Foundation を介して引き続きオープンソース コミュニティで利用できます。投稿や詳細を確認する場合は、最新の Eclipse Andmore プロジェクトをご覧ください。

Android Studio を初めてご利用になるユーザーの皆様へ。ご使用の環境ワークフローに Android Studio を統合していただき、ありがとうございます。また、Android Studio に貢献する場合は、プロジェクト ソースコードもご利用いただけます。Android Studio の最新情報を随時入手するには、Google+ コミュニティにご参加ください。


Posted by Takeshi Hagikura - Developer Relations Team


[この記事は Ben L. Titzer、ソフトウェア エンジニア、TurboFan メカニックによる Chromium Blog の記事 "Revving up JavaScript performance with TurboFan" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

JavaScript のエコシステムはいくつかの方法で進化しています。たとえば、最近承認された ECMAScript 2015 や実験初期段階の Strong Mode など、主な標準がさらに高度な仕様に更新されています。こうした新しい方向性のニーズとのバランスを取るには、柔軟な実行時(JIT)コンパイラーが必要であり、私たちは「TurboFan」というコード名の V8 向け最新コンパイラーに重点的に取り組んできました。Chrome 41 以降、特定のタイプのコードで TurboFan が有効になっています。これは、従来のコンテンツを高速化するとともに、新しい言語機能のパフォーマンスを改善します。

TurboFan は固有の機能を多く搭載することを念頭に、新しく構築されました。以前の最適化コンパイラーよりも多くのコードを最適化し、フレキシブルで変化の多い最適化モードをサポートしており、コントリビューションやメンテナンスがより簡単になります。これらの機能によって、以前のコンパイラーで最適化を行うには困難であった、scope、computed property 名、for-of ループを使用した asm.js や class リテラルなどの一部のコードタイプにおいても TurboFan を使用できるようになりました。TurboFan はすでに、Octane ベンチマークの zlib スコアが 29% 上昇するなど、今後が期待できるパフォーマンスを発揮しています。

私たちは今後数か月で、TurboFan をより多くの JavaScript で使用できるようにし、最終的には既存の CrankShaft コンパイラーから完全に移行することを目標としています。TurboFan が展開されると、デベロッパーのコードが自動的に高速化されます。コストはかからず、変更の必要もありません。今後の進捗にご期待ください。

Posted by Eiji Kitamura - Developer Relations Team


9 月 30 日(水)まで開催している Study Jams 2015 では、Android アプリ開発、Web アプリ開発を中心に 22 の対象コースがあります。今回は、Android アプリ開発以外のコースを紹介します。Android 開発に関連したコースはこちらで紹介しています。

※なお、Study Jams 2015 へ参加を希望される方は、こちらの参加手続きをご覧いただき、お申し込みください。ご登録には Udacity の会員登録情報(お名前、メールアドレス)が必要となりますので、あらかじめご準備ください。



<Web アプリ開発コース>
Responsive Web Design Fundamentals 【中級】
Web を閲覧する方法は急速に変わってきています。キーボードとマウスを使って大型モニターでウェブにアクセスするユーザーは減り、携帯電話、タブレット、ウェアラブル、テレビを通じて Web を楽しんでいる人が増えています。このコースでは、 レスポンシブ ウェブ デザインの基礎を学びます。携帯電話、タブレット、デスクトップ、その他のデバイスを対象に、サンプルのウェブサイトを制作するプロジェクトを実施します。【学習期間】 2 週間
Responsive Images 【中級】
ロード時間の短縮とレスポンシブなコンテンツは高いコンバージョンにつながります。srcset のような属性、CSS を利用したマークアップの方法、フォント、インラインイメージ、要素など、多くの方法があります。できるだけデータサイズを押さえて、高品質なイメージを配信する方法を学びます。【学習期間】 2 週間
HTML5 Game Development 【中級】
本コースでは、HTML5 で開発されたゲーム「GRITS」に使われた主要コンポーネントを紹介します。HTML5 での標準的なゲーム開発技法、ハイパフォーマンスな HTML5 アプリケーションの開発手法を学びます。HTML、JavaScript、ウェブの仕組みに関する予備知識が必要です。【学習期間】 8 週間
Website Performance Optimization 【中級】
このコースでは、モバイルやデスクトップでブラウザがどのようにページを表示するかを詳しく学び、Web サイトを高速化する方法を習得します。ブラウザがどのような手順で HTML や CSS、JavaScript を変換するのかを解説し、サイトのパフォーマンスをツールで測定し、最初の画像をいかに速く表示させられるか実験を行います。測定ツールには PageSpeed Insights や、Google Chrome デベロッパーツールの Timeline を使用します。【学習期間】 8 週間
Mobile Web Development 【中級】
本コースでは、Web アプリ開発者を対象に、最上級のモバイルエクスペリエンスを実現するスキルを紹介します。Android や iOS など様々なプラットフォームで動くモバイル Web ウェブアプリの作成に重点を置きます。ツールを利用してパフォーマンステストを行い、エクスペリエンスを向上させる手法を学びます。【学習期間】 6 週間
Browser Rendering Optimization  【上級】
ブラウザのレンダリングパイプラインを理解することによって、高性能なWeb アプリケーションを構築することが容易になります。いくつかの簡単な原則に従うことで、ブラウザのワークロードやレンダリングに必要な時間を大幅に改善することができるでしょう。このコースでは、アプリをプロファイリングし、問題の原因を特定するために必要な方法を学びます。最終的には、このコースで学んだ知識を使って、Hacker News API を使用したサンプルアプリのパフォーマンス改善に取り組みます。【学習期間】4 週間
Developing Scalable Apps in Python 【上級】
Googleが提供する PaaS、App Engine の活用法について学びます。App Engineの仕組み、Cloud Endpoints のベストプラクティスを学習することで、RESTful サービスを容易に作成し、iOS、Android、そして JavaScript クライアント からのアクセスを可能にすることができます。Python プログラミングの経験があり、ウェブアプリケーションの開発やデータベースを扱った実務の経験が 1 年以上ある方におすすめします。【学習期間】6 週間
Developing Scalable Apps in Java 【上級】 
Googleが提供する PaaS、App Engine の活用法について学びます。App Engineの仕組み、Cloud Endpoints のベストプラクティスを学習することで、RESTful サービスを容易に作成し、iOS、Android、そして JavaScript クライアント からのアクセスを可能にすることができます。Java プログラミングの経験があり、ウェブアプリケーションの開発やデータベースを扱った実務の経験が 1 年以上ある方におすすめします。【学習期間】8 週間
<その他のコース>
Product Design 【中級】
シリコンバレーのスタートアップ企業は、製品設計のためのフレームワークとベストプラクティスを長年に渡って開発してきました。スタートアップの事例研究と業界の専門家へのインタビューも交えて、理論と実践の両面から製品の検証、UI/UX の実践、Google のデザインスプリント、評価指標の設定と追跡方法を紹介します。【学習期間】 8 週間
A / B Testing 【中級】
A/B テスト(スプリットテスト)は、グーグルをはじめ多数の企業で利用されています。カンや経験でなく、実際のデータに基づいた意思決定を行う上で役立ちます。このコースでは、ウェブサイトやモバイルアプリケーションの改善点をテストするために使用される「A/B テスト」について学びます。A/B テストの設計、テスト結果の分析の方法を説明します。【学習期間】 4 週間
なお、一部のコースは日本語字幕がついています。

<Udacity の受講方法>

Study Jams 2015 の対象コースはすべて無料で受講することができます。受講を希望されるコースを選択し、表示されるページの右側に表示されるで、「Start free course」という青色のボタンをクリックします。
ただし、一部のコース(例えば、Android Development for Beginners)では、このボタンの代わりに、「Access course materials」という青色ボタンが表示されますので、こちらをクリックして進んでください。オレンジ色のボタンをクリックした場合、有料となりますのでご注意ください。
Study Jams へ参加にご興味のある皆様は、こちらの参加手続きをご覧ください。Udacity のコースを受講する方だけでなく、Udacity の教材を使った勉強会などを企画されている方も、オーガナイザーとしてStudy Jams にご参加いただけます。

Google+ コミュニティも開設しましたので、こちらのご登録もお忘れなく。イベント情報や Udacity のコース、受講方法などを随時ご案内しています。

さあ、みなさんも一緒に Web アプリ開発について学んでみませんか? 

Posted by Takuo Suziki - Developer Relations Team


[この記事は Shanee Nishry、ゲーム デベロッパーアドボケートによる Android Developers Blog の記事 "Game Performance: Data-Oriented Programming" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

CPU 性能を最大限に高め、ゲームを効率化し、よりスマートなコードでゲーム パフォーマンスを向上させるために役立つプログラミングの実例を紹介します。

データ指向プログラミングについて解説する前に、データ指向プログラミングによって解決できる問題や、プログラマーが陥りやすい落とし穴について説明します。

メモリ

プログラマーが最初に理解しておくべきことは、メモリは遅いということと、コーディングの仕方がメモリの利用効率に影響するということです。メモリ レイアウトや操作順序が非効率だと、CPU はメモリに対して待機したアイドル状態となり、処理を続行します。

説明をわかりやすくするために、サンプルを使います。次の簡単なコード サンプルをご覧ください。
char data[1000000]; // One Million bytes
unsigned int sum = 0;
for ( int i = 0; i < 1000000; ++i )
{
  sum += data[ i ];
}
100 万バイトの配列が宣言され、1 バイトごとに反復処理が行われています。次に、そのコードが動作するハードウェアを表すために、少し変更を加えます。変更点は太字で示しています。
char data[16000000]; // Sixteen Million bytes
unsigned int sum = 0;
for ( int i = 0; i < 16000000; i += 16 )
{
  sum += data[ i ];
}
1600 万バイトを格納するように配列を変更しました。一度に 16 バイトずつスキップして 100 万バイトを反復しています。

同じ命令の数だけコードが変換され、実行される回数も同じであるため、一見パフォーマンスに影響はないように思われますが、そうではありません。こちらはその違いを表すグラフです。これは対数目盛で表されてますが、均等目盛りで表すと、普通のグラフでは表示しきれないほどパフォーマンスの違いは大きくなります。
対数目盛のグラフ
一度に 16 バイトのループ スキップが実行されるように簡単な変更を加えたことによって、プログラムの速度は 5 倍遅くなります

1,000 バイトから 100 万バイトの反復処理におけるパフォーマンスの平均差異は 5 倍であり、最大で 7 倍まで拡大することもあります。この変更はパフォーマンスにおいて深刻です。

注: このベンチマークは、デスクトップ(Intel 5930K 3.50GHz CPU)、Macbook Pro Retina ラップトップ(2.6 GHz Intel i7 CPU)、Android Nexus 5 および Nexus 6 デバイスなど、複数のハードウェア構成で実行され、どのハードウェア構成でも同じような結果になりました。

コンパイラーによっては宣言時に配列をキャッシュに保存するため、テストを再現するには、ループが実行される前に、キャッシュからメモリを解放する必要があります。処理の仕組みについては、以下で説明します。

説明

CPU がどのようにしてデータにアクセスするかを理解すれば、前述のサンプルで行われた処理内容を簡単に説明できます。CPU は RAM のデータにはアクセスできません。CPU チップの近くにある、小さくて極めて高速なメモリラインであるキャッシュにデータをコピーする必要があります。

プログラムが開始されると、CPU は配列の一部で命令を実行しますが、そのデータはまだキャッシュに存在しないため、キャッシュミスが発生し、データがキャッシュにコピーされるまで CPU は待機することになります。

説明をわかりやすくするために、16 バイトのキャッシュ サイズを L1 キャッシュ ラインと想定します。つまり、16 バイトは命令に対して要求されたアドレスからコピーされます。

最初のコードサンプルでは、プログラムは次に後続のバイトで処理を試みますが、最初のキャッシュミス後のキャッシュにすでにコピーされているため、処理はスムーズに継続されます。これは次の 14 バイトについても同様です。16 バイトの後は、最初のキャッシュミス以降、ループで別のキャッシュミスが発生し、CPU は次の 16 バイトをキャッシュにコピーして、再び処理対象のデータを待機します。

2 番目のコードサンプルでは、ループは一度に 16 バイトずつスキップしますが、ハードウェアは同じ処理を続けます。キャッシュはキャッシュミスが発生するたびに後続の 16 バイトをコピーするため、反復処理ごとにループでキャッシュミスがトリガーされ、CPU はそのたびにデータを待機するアイドル状態になります。

注: 最近のハードウェアでは、フレームごとのキャッシュミスを回避するキャッシュ プリフェッチ機構が実装されていますが、プリフェッチを実行した場合でも、このサンプルテストでは帯域幅の使用量が増え、パフォーマンスが低下します。
実際にはキャッシュラインは 16 バイトより大きくなる傾向があり、反復処理ごとにデータを待機する場合、プログラムの実行はさらに遅くなります。Nexus 5 の Krait-400 には 4 KB の L0 データ キャッシュ(1 行につき 64 バイト)があります。

キャッシュ ラインが非常に小さい主な理由は、高速なメモリを作るにはコストがかかるためです。

データ指向設計

このようなパフォーマンスの問題を解決する方法は、キャッシュに合わせてデータを調整し、プログラムが継続してデータ全体を処理するように設計することです。

これは、構造体の配列(AoS)の代わりに配列の構造体(SoA)にゲーム オブジェクトを整理し、予想されるデータを格納するために十分なメモリを事前に割り当てることで行えます。

たとえば、AoS レイアウトの単純な物理オブジェクトは次のようになります。
struct PhysicsObject
{
  Vec3 mPosition;
  Vec3 mVelocity;

  float mMass;
  float mDrag;
  Vec3 mCenterOfMass;

  Vec3 mRotation;
  Vec3 mAngularVelocity;

  float mAngularDrag;
};
これは、C++ でオブジェクトを表す一般的な方法です。

一方、SoA レイアウトを使用した場合は次のようになります。
class PhysicsSystem
{
private:
  size_t mNumObjects;
  std::vector< Vec3 > mPositions;
  std::vector< Vec3 > mVelocities;
  std::vector< float > mMasses;
  std::vector< float > mDrags;

  // ...
};
オブジェクトの位置を速度で更新する簡単な関数がどのように動作するかを比べてみましょう。

AoS レイアウトの場合、関数は次のようになります。
void UpdatePositions( PhysicsObject* objects, const size_t num_objects, const float delta_time )
{
  for ( int i = 0; i < num_objects; ++i )
  {
    objects[i].mPosition += objects[i].mVelocity * delta_time;
  }
}
PhysicsObject がキャッシュに読み込まれますが、使用されるのは最初の 2 つの変数のみです。それぞれ 12 バイトなので、反復処理ごとに使用されるキャッシュ ラインの 24 バイトと等しくなり、Nexus 5 の 64 バイトのキャッシュ ラインでオブジェクトごとにキャッシュミスが発生されることになります。

今度は SoA での処理を見てみましょう。これは今回使用する反復コードです。
void PhysicsSystem::SimulateObjects( const float delta_time )
{
  for ( int i = 0; i < mNumObjects; ++i )
  {
    mPositions[ i ] += mVelocities[i] * delta_time;
  }
}
このコードでは 2 つのキャッシュミスが即座に発生しますが、その次の 2 つのキャッシュミスが発生する前におよそ 5.3 回の反復処理をスムーズに実行できるため、パフォーマンスが大幅に向上します。

重要なのはハードウェアにデータを送信する方法です。データ指向設計に留意し、オブジェクト指向コードよりも効率的に実行される場所を探しましょう。

ここで紹介したのはほんの一例です。データ指向プログラミングには、オブジェクトの構造化以上に重要な点が多くあります。たとえば、キャッシュは命令や関数のメモリの格納に使用されるため、関数やローカル変数を最適化するとキャッシュミスやキャッシュ ヒットに影響を及ぼします。また、L2 キャッシュや、データ指向設計でアプリケーションのマルチスレッドを容易にする方法についてもここでは説明していません。

コードをプロファイルして、データ指向設計の実装対象を確認するようにしてください。NVIDIA Tegra System Profiler、ARM Streamline Performance AnalyzerIntel、PowerVR PVRMonitor など、アーキテクチャに応じて異なるプロファイラを使用できます。

キャッシュ用に最適化する方法の詳細については、各 CPU アーキテクチャのキャッシュ プリフェッチに関する記事をお読みください。


Posted by Yuichi Araki - Developer Relations Team


[この記事は Joshua Gordon、デベロッパー アドボケートによる Android Developers Blog の記事 "Fitness Apps on Android Wear" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Android Wear を身につければ、ランニングや試合、アウトドアがもっと楽しくなります。デベロッパーは、ランニング中のペースや心拍数、お気に入りのゴルフ場で役立つヒント、ハイキング コースのトレイルマップなど、あらゆる情報を提供する多種多様なフィットネス アプリを開発しています。ここでは、優れた操作性を実現するオープンで柔軟性の高い Wear プラットフォームの機能を紹介します。

Always-on の統計データ

Always-on 機能をサポートしているアプリでは、ウォッチにタップしたり手首を振ったりしてディスプレイをオンにする必要はありません。ランニング中のペースは、ウォッチをちらっと見るだけで確認できます。RuntasticEndomondoMapMyRun では、アンビエント モードであっても Always-on 機能によってユーザーの統計データは常に表示されています。ゴルフをするときは、Golfshot がお勧めです。Golfshot でも Always-on 機能が次のホールまでのヤード数を継続的に表示してくれるので、クラブを手から離す必要がありません。詳細については、Keeping Your App VisibleDevByteコードサンプルをご覧ください。
Runtastic は自動的にアンビエント モードに切り替えてバッテリーを節約します。ここでは、統計データの更新頻度が約 10 秒間隔まで短縮されます。

マップ、ルート、マーカー

ランニングやドライブで通過した場所を確認できれば、とても便利です。Maps API では、ルート、位置、場所の目印を地図上で表示でき、タップして詳細を確認できます。この機能はすべて、Android で使用している既存の Maps API でそのまま利用できます。詳細については、Maps API on Android WearDevByteコードサンプルブログの投稿からご確認ください。
Endomondo を使用するとランニング中のルートを追跡できます。地図を拡大、縮小できます。

Google Fit

Google Fit は、フィットネス アプリを簡単に作成できるオープンなプラットフォームであり、一般的なさまざまなタスクに活用できる API を提供しています。たとえば、Recording API を使用して、ユーザーの歩数や燃焼したカロリー数を見積もることができます。History API を介してデータをアプリに取り込んだり、REST 経由でウェブでデータにアクセスしたりすることもできます。自分のバックエンドに保存する必要はありません。Google Fit には、ランニングからウェイトリフティングまで、さまざまな運動データを保存できます。詳細については、DevByteコードサンプルをご覧ください。

Bluetooth Low Energy: ウォッチとのペアリング

Android Wear の最新リリースでは、Bluetooth Low Energy(BLE)端末とウェアラブルを直接ペアリングできるようになりました。これは、携帯電話とウェアラブルの両方を一度に携帯できないフィットネス アプリ(特にランニング用など)には、非常に便利な機能です。心拍ストラップや自転車のケイデンス センサーを Wear 端末に直接ペアリングすれば、携帯電話は自宅に置いておけます。BLE は現在すべての Wear 端末で対応しており、Google Fit でサポートされています。詳細については、このガイドDevByte をご覧ください。

内蔵 GPS で軽量に

携帯電話とウェアラブルの両方を携帯してランニングするのは大変です。内蔵 GPS 対応の Android Wear 端末を使用すれば、携帯電話は不要です。すべての Wear 端末に内蔵 GPS センサーが搭載されているわけではありませんが、FusedLocationProviderApi を使えば、ウェアラブル端末で利用できない場合でも携帯電話からシームレスに GPS 位置情報を取得できます。Wear で位置検出の詳細については、このガイドをご覧ください。
RunKeeper がウェアラブル端末で利用できる場合は内蔵 GPS に対応しています。

透過的なデータ同期

自宅に戻り、アクティビティの詳細を確認する準備ができたら、携帯電話のアプリを開いて詳細を表示できます。お気に入りのフィットネス アプリは、ウェアラブルと携帯電話間でデータを透過的に同期しています。端末間でのデータの同期について詳しくは、DataLayer APIDevByte をご覧ください。

次のステップ

Android Wear では、優れたフィットネス アプリの開発に必要なツールやトレーニングを用意しています。使い始めるには、developer.android.com/wear にアクセスし、g.co/androidweardev でディスカッションにご参加ください。


Posted by Takeshi Hagikura - Developer Relations Team

[この記事は Jason Eason、Product Manager, Android による Android Developers Blog の記事 "Develop a sweet spot for Marshmallow: Official Android 6.0 SDK & Final M Preview" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

袋から出してそのままでも、炙って表面はきつね色、中はとろとろにしてあげても、あるいはマシュマロクリームでも、マシュマロが嫌いな人なんているでしょうか。私たちは大好きです! 5 月に開催された Google I/O で Android M Developer Preview を公開して以来、多くの開発者からのたくさんのフィードバックをいただき、それらを反映させてきました。本日、 M Developer Preview 最終版へ更新するとともに、公式に Android 6.0 SDK を公開し、 Google Play においても Android Marshmallow 向けに新しい API Level 23 をターゲットとしたアプリを公開可能となりました。

アプリを Android Marshmallow 対応にしましょう

Android 6.0 SDK 最終版は Android Studio の SDK Manager 経由でダウンロード可能です。 Android 6.0 SDK では、最終版 Android M API と最新のビルドツールを利用し、API Level 23 をターゲットとして開発していただけます。Android 6.0 SDK を Android Studio にダウンロードし、プロジェクトの compileSdkVersion  を 23 に更新すれば、すぐに最新の Android M プラットフォームでのアプリの動作を検証できます。 また targetSdkVersion  を 23 に更新することで、自動バックアップや新しいパーミッション機能のような API Level 23 から利用できる機能の動作をお試しいただけます。

Android 6.0 SDK にあわせて Android Support Library も v23 に更新しました。新しい Android Support Library を使用することで、後方互換性を保った上で新しいパーミッションモデルや指紋認証のサポートなど新しい API を簡単に組み込むことができます。今回のリリースでは customtabs、 percent、 recommendation、 preference-v7、 preference-v14、 preference-leanback-v17 など新しいライブラリが多く追加されています。

アプリのパーミッションを確認しましょう

指紋認証 API や Doze 省電力モードといった新しい機能とともに、 Android Marshmallow ではアプリのインストールやアップデートのユーザー体験をよりスムーズにする新しいパーミッションモデルが提供されています。Android Marshmallow のユーザは、状況に応じて柔軟にアプリの特定のパーミッションを無効にすることができます。このときもあなたのアプリが問題なく動作できるよう、アプリのターゲット API を 23 にして、 Android Marshmallow ユーザーとしての幅広い動作テストを実施してください。

M Preview ビルドの取得方法について

お手元の端末で動作検証していただくために、Android エミューレーターシステムイメージと Developer Preview システムイメージの最新版を Nexus端末(Nexus 5 、Nexus 6 、Nexus 9 そして Nexus Player )向けに公開しました。デバイスシステムイメージは Developer Preview のサイトからダウンロードできます。また、過去の開発者向けアップデートと同様、すでに M Preview を実行中の Nexus 端末に対しては数日以内に Over-the-Air (OTA) 配信を予定しています。

Android 6.0 SDK は最終版ではありますが、デバイスシステムイメージは引き続き Developer Preview 版と呼ばれています。 Developer Preview イメージは Android M 最終版にほぼ近いものではありますが、一般消費者向けではありません。 一般消費者向け OTA をお手元の Nexus 端末で受信し続けるためには、 Android 6.0 Marshmallow が今秋後半に公開されたときに、手動で端末に工場出荷時イメージを再度フラッシュする必要があることにご留意ください。

最新情報

  • Android プラットフォームの変更点:
    • パーミッションのユーザーインターフェイスが最終版に -- パーミッションのユーザーインターフェイスを更新し、いくつかのパーミッションの動作を改善しました。
  • API の変更点:
    • Fingerprint API の更新 -- より信頼性を高めるために、エラー報告、指紋登録処理、指紋認証の利用可能性チェック処理の改善を行いました。

Android Marshmallow 対応のアプリを Google Play にアップロードする

Google Play では API Level 23 のアプリを Google Play Developer Console から、すべてのリリースチャンネル(アルファ、ベータ、プロダクション)に提供していただけるようになりました。今秋の一般利用者向けリリースとあわせて予定されている Google Play ストアの更新により、アプリのインストールと更新の処理が API Level 23 を使っているアプリ向けの新しいパーミッションモデルに対応します。

API Level 23 に対応したアプリが確実に Android Marshmallow と従来の Android バージョンで動作するようにしましょう。 Google Play の最近改善したベータテスト機能を使って、一般公開する前にフィードバックを集め、段階的なロールアウトを実施しながら最新版をすべてのユーザーに公開していただくことをおすすめします。

Posted by Yoshifumi Yamaguchi - Developer Relations Team


9 月 30 日(水)まで開催している Study Jams 2015 では、Android アプリ開発、Web アプリ開発を中心に 22 の対象コースがあります。今回は Android アプリ開発に関連したコースを紹介します。また、受講を始める際のポイントを説明します。

※なお、Study Jams 2015 へ参加を希望される方は、こちらの参加手続きをご覧いただき、お申し込みください。ご登録には Udacity の会員登録情報(お名前、メールアドレス)が必要となりますので、あらかじめご準備ください。

<Udacity の受講方法>

Study Jams 2015 の対象コースはすべて無料で受講することができます。受講を希望されるコースを選択し、表示されるページの右側に表示されるで、「Start free course」という青色のボタンをクリックします。

ただし、一部のコースでは、このボタンの代わりに、次の青色ボタンが表示されますので、こちらをクリックして進んでください。オレンジ色のボタンをクリックした場合、有料となりますのでご注意ください。

今回の Study Jams では、無料コースにご登録された方が対象となります。


<Android アプリ開発コースの紹介>
Android Development for Beginners  【初級】
Android アプリを構築する方法を学びたい、しかし、プログラミングは初めてという方を対象としています。このコー​​スでは、2 つの簡単なアプリケーションを作成します。Android アプリ開発者になるためのスタートとしてこのコースはきっと役に立つでしょう。3 レッスン + 2 演習から構成されます。【学習期間】4 週間
UX Design for Mobile Developers 【初級】
このコースでは、優れたモバイル UX デザイナーが使う、最も重要でかつ、すぐに使えるテクニックとアプローチを学びます。IDE から一歩離れて、著名なデザイナーたちが使うテクニックを深く理解し、コードを書く前にすばらしいアプリを企画し、プロトタイプを作る方法を学びます。【学習期間】6 週間
Developing Android Apps 【中級】
Android の基礎を理論と実践の両面から学ぶことで、優れたアプリを構築するスキルを習得することができます。6 レッスン + 1 プロジェクトを通じて、ステップバイステップで Android アプリを開発するための最良の方法を実践的に学びます。Java、またはその他のオブジェクト指向プログラミング言語 (例: C++、Objective C 、Pythonなど)の経験が 1 年以上ある方を対象としています。【学習期間】10 週間
Google Play Services Location&Context 【中級】
最適なモバイル経験を提供するための位置や状況にあわせてアプリをより良いものにすることが不可欠です。このコースでは、Location/Context API を活用して、位置情報に基いたアプリを作る方法を学びます。Fused Location Providerを使った実装、Activity Recognition を使い、ユーザーが何をしているかを知る方法、拡張現実でも利用される Geofence について解説します。【学習期間】 2 週間
Google Play Services Analytics 【中級】
世界のどこで人々はこのアプリを利用しているか? 彼らはどのような時にアプリを利用するのか?など、このコースでは、Google Analytics に利用状況に関するデータを送信し、そのデータを分析する方法について学びます。合わせて、Google タグマネージャの利用方法も解説します。【学習期間】 2 週間
Google Play Services AdMob  【中級】
Android 開発者としてのスキルアップを図りたい方、そして、アプリからの広告収入を得たい方にはこのコースをおすすめします。AdMob を利用してアプリをマネタイズする方法を学びます。なお、このコースを最大限に活用するには、Android アプリケーションの開発経験を持っている必要があります。【学習期間】 2 週間
Google Play Services Maps 【中級】
モバイルデバイス上の地図は、日常生活を大きく変えてきました。ポケットの中には、ローカルな地図だけでなく、世界全体の地図、ストリートレベルの地図、3Dで主要都市を飛び交うかのような地図もあるのです。 このコースでは、アプリに地図を組み込む方法から、グランドキャニオンを仮想的にハイキングするアプリを作成します。【学習期間】 2 週間
Google Play Services Identity 【中級】
このコースでは、Google Identity Platform の利用方法を学びます。Google Identity Platform を利用することによって、ユーザーのクレデンシャルを利用したサインインを許可したり、アクセス許可を承諾したデータへのアクセス方法を学びます。サンプルアプリから、皆さんのアプリにこのサービスを拡張する方法も紹介します。【学習期間】 2 週間
Advanced Android App Development 【上級】
このコースでは、中級コース「Developing Android Apps」で作成したお天気アプリ「Sunshine」を利用して、Android アプリの製品化プロセスを学びます。Android のアプリ品質ガイドライン、マテリアルデザイン、イメージのハンドリング、プロファイリングなどについても触れます。Android の開発者として、ユーザーに利用してもらえる製品レベルのアプリを作るための方法を学びます。なお、Java の経験、および Android アプリの開発経験が少なくとも1〜2年必要です。【学習期間】6 週間
Android Performance  【上級】
このコースでは、Android アプリの使いやすさに影響を与えるパフォーマンス問題に対応する方法を学びます。4つのレッスンを通じて、探索的テストを行い、プロファイリングツールを実行して、問題のコードに移動し、パフォーマンスの低下を軽減するための対策を設計できるようになります。 Android デバイス上で Javaのアプリ開発経験がある方におすすめします。Androidのライフサイクルの基礎を理解し、端末に基本的な操作を実行する方法を知っている必要があります。【学習期間】4 週間
Android Ubiquitous Computing  【上級】
このコースでは、Android Wear、Google Cast、Android TV、Android Autoを利用したアプリ開発について基本概念を紹介し、詳しい技術内容を説明します。「設計パラダイム」と「技術の本質」をこのコースで学びましょう。Android アプリの開発経験を有する方におすすめのコースです。もし、開発経験が無い場合は、初級、中級コースを受講してください。 【学習期間】4 週間
Gradle for Android and Java  【上級】
このコースでは、Gradle のビルドツールの使い方を紹介します。前半は、Gradle に興味を持っている方向けの内容で、ソフトウェアの自動ビルド、継続的デリバリーについて説明します。後半は、Android Studio との連携を紹介することに加えて、サンプルアプリを使って、有料・無料アプリの設定、ライブラリの統合、アプリのテスト、Google Play ストアにアップするための準備など、より先進的な Android アプリを作るためのポイントを解説します。【学習期間】6 週間

なお、一部のコースは日本語字幕がついています。また、Web アプリ開発に関連したコースはこちらで紹介しています。

<イベント案内>
さて、早速、Udacity の教材を使ったイベントがGDG 石巻主催で開催される運びとなりました。

名称:UdacityではじめるAndroid開発入門
日時:2015 年 8 月 29 日(土)13:00 - 16:00
場所:イトナブ石巻(宮城県石巻市中央2-10-21 サトミビル1F)
詳細:http://connpass.com/event/19016/

Study Jams へ参加にご興味のある皆様は、こちらの参加手続きをご覧ください。Udacity のコースを受講する方だけでなく、Udacity の教材を使った勉強会などを企画されている方も、オーガナイザーとしてStudy Jams にご参加いただけます。

Google+ コミュニティも開設しましたので、こちらのご登録もお忘れなく。イベント情報や Udacity のコース、受講方法などを随時ご案内しています。

さあ、みなさんも一緒に Android アプリ開発について学んでみませんか? 

Posted by Takuo Suzuki - Developer Relations Team


[この記事は Maru Ahues、メディア デベロッパー アドボケートによる Android Developers Blog の記事 "Growing Android TV engagement with search and recommendations" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

テレビにはコンテンツが何よりも重要です。しかし、コンテンツを楽しむには、まずはそのコンテンツを探す必要があります。Android TV は、視聴者が楽しめるようなコンテンツを配信する、本当の意味でスマートな TV を目指して開発されました。Android TV プラットフォームを使用するアプリは増え続けていますが、本日、このリストに EPIX® が加わりました。EPIX は映画、テレビ番組、スポーツ ハイライト、ミュージック ビデオなどを簡単に楽しめるアプリです。

TV アプリを検索可能に

お気に入りの映画を視聴するには、ストリーミング アプリで検索する必要があります。複数のアプリを使っている場合、見たい映画を検索するのに時間がかかることがあります。Android TV なら、もっと簡単にエンターテインメントを楽しむことができます。たとえば「ティーンエイジ ミュータント ニンジャ タートルズ」を検索する場合、リモコンを手に取って「ティーンエイジ ミュータント ニンジャ タートルズ」と言うだけで、テレビで検索できます。
「ティーンエイジ ミュータント ニンジャ タートルズ」の検索結果が Google Play と EPIX に表示される
Android TV の検索インターフェースでコンテンツを検索できるようにすると、アプリ内のコンテンツにユーザーが直接アクセスできるようになります。EPIX、Sky News、YouTube、Hulu Plus など、コンテンツを簡単に検索できるアプリを作っているデベロッパーのコミュニティに参加しましょう。

おすすめの TV コンテンツ

おすすめのコンテンツから選ぶ場合、Android TV のおすすめ一覧から、ホーム画面の関連するコンテンツにすばやくアクセスできます。おすすめは、ユーザーの最近の使用状況、使用頻度、好みのコンテンツの傾向に基づいて表示されます。
EPIX など、インストールされているアプリからのおすすめが Android TV ホーム画面に表示される
Android TV では、映画、テレビ番組、音楽、その他のコンテンツのおすすめを作成できます。作成したコンテンツが目立つよう、アプリにおすすめを表示できます。たとえば、EPIX ではハリウッド映画を配信します。NBA Game Time では、バスケットボールのハイライトを視聴できます。ワシントン・ポストでは世界中の出来事をまとめたビデオを配信し、YouTube はユーザーのサブスクリプションと視聴履歴に基づいて動画を提案します。

Android TV の一般販売からまだ 1 年も経っていませんが、私たちはよりシンプルでスマートなパーソナライズされた TV をお届けできるよう取り組んでいます。皆様の作品を心よりお待ちしております。


Posted by Yuichi Araki - Developer Relations Team

[この記事は Benjamin Frenkel、プロダクト マネージャーによる Android Developers Blog の記事 "Updates to Unity, C++, and iOS tools for Play game services" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

すべてのゲーム デベロッパーをより強力にサポートするため、Play ゲームサービスの Unity プラグインを中心に、より快適で安定した操作感を実現し、どのプラットフォームでも一貫したゲームサービス セットを提供するアップデートを、デベロッパー ツールに行いました。さらに、今年の年頭に GDC で発表された Nearby Connections API のサポートが C++ SDKUnity プラグインに追加されました。

内容は以下をご覧ください。

Unity プラグインと同等の機能と安定性の改善

Unity プラグインEvents と Quests のフルサポートが追加されました。Unity の開発者は、ゲームに Quests を組み込んで、Unity IDE 内で Player Analytics をネイティブに活用できるようになりました。

また、Unity プラグインのユーザー コミュニティから寄せられたフィードバックを参考にして、Play ゲームサービスである MultiplayerSaved Games や、ログインの安定性が改善されました。これらの Play ゲームサービスと統合することで、クラッシュや欠陥の少ない、大きく改善された操作性をご利用いただけます。

Nearby Connections API の C++ SDK と Unity サポート

Nearby Connections API のサポートが C++ SDKUnity プラグインに追加されました。この Beach Bugging Racing の例のように、便利なセカンド スクリーンとローカルのマルチプレイヤーによる操作性を、使いやすい開発ツールで簡単に構築できるようになりました。

CocoaPods を使用した、より簡単で安定性の高い iOS のビルド

また、Play ゲームサービスの CocoaPods が大幅に改善されました。依存関係の管理や Xcode での App Store パッケージのビルドが簡単になります。CocoaPods は、Play ゲームサービス iOSC++ SDK や、Unity プラグインを使用した iOS のビルドを改善します。さらに、マルチプレイヤーによる iOS の安定性が改善され、対戦招待の受け入れで発生するさまざまな問題が解決されます。

最後に、iOS 8 のサポートが改善され、マルチプレイヤーのプッシュ通知が簡単にセットアップできるようになり、UI の互換性の問題も修正されました。

利用を開始するクイックリンク

Play ゲームサービス デベロッパー ページ: https://developers.google.com/games/services/
ケーススタディ: http://developer.android.com/distribute/stories/games.html

ダウンロード

Posted by Yuichi Araki - Developer Relations Team


[この記事は Ben Weiss、デベロッパー プログラム エンジニアによる Android Developers Blog の記事 "More Material Design with Topeka for Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

マテリアル デザインは、視覚、インタラクション、モーション デザインの新しい仕組みです。元々、Topeka ウェブアプリはウェブ上のマテリアル デザインのオープン ソース サンプルとして開発されました。

去る 6 月、新しいマテリアル デザインのサンプルである Topeka の Android 版を公開しました。このサンプルを見れば、同じブランドの方針とマテリアル デザインの方針に従って、複数のプラットフォーム間で一貫した操作感を実現できることがわかります。コードは GitHub からダウンロードできます。


多彩な機能

このプロジェクトではマテリアル デザインのさまざまな特徴を見ることができますが、特に興味深いものを紹介します。

遷移


Android 用 Topeka には、遷移を実装するいくつかの機能があります。まず 1 つ目は ActivityOptions にある Transitions API です。これを使えば、簡単かつ効果的にアクティビティ間の遷移が行えます。

これを行うために、リソース ファイルに次のような共有の文字列を登録します。
<resources>
    <string name="transition_avatar">AvatarTransition</string>
</resources>
登録した文字列を、ソースとターゲットのビューで transitionName として使用します。
<ImageView
    android:id="@+id/avatar"
    android:layout_width="@dimen/avatar_size"
    android:layout_height="@dimen/avatar_size"
    android:layout_marginEnd="@dimen/keyline_16"
    android:transitionName="@string/transition_avatar"/>
次に、実際の遷移が SignInFragment で実行されるようにします。
private void performSignInWithTransition(View v) {
    Activity activity = getActivity();
    ActivityOptions activityOptions = ActivityOptions
            .makeSceneTransitionAnimation(activity, v,
                    activity.getString(R.string.transition_avatar));
    CategorySelectionActivity.start(activity, mPlayer, activityOptions);
    activity.finishAfterTransition();
}
ActivityOptions で複数の遷移を実行する場合は、CategorySelectionFragment をご覧ください。

アニメーション

より複雑なアニメーションの場合は、スコアリングで行ったように、独自のアニメーションを調整できます。
アニメーションを適切に調整するには、すべての要素を慎重に準備することが重要です。AbsQuizView クラスは、質問が回答されると、精巧に作成されたいくつかのアニメーションを実行します。
まずこのアニメーションでは、質問の回答に応じて、フローティング アクション ボタンの色が変わります。色が変わると、ボタンはスケール アニメーションで縮小され、ビューの外に移動します。質問そのものが表示されているビューも、画面外に移動します。このビューを小さい緑色の四角形に縮小させてから、アプリバーの背後にスライドさせます。ビューの前景色は、拡大/縮小時に、直前に消えたフローティング アクション ボタン(FAB)に合わせて変わります。これにより、さまざまなクイズや質問の状態に連続性が生まれます。

これらはすべて、秒単位以下で行われます。若干のポーズ(開始の遅れ)をいくつか適用し、アニメーションに圧迫感を与えず、適度な速度を保つようにしました。

この機能を制御するコードは AbsQuizViewperformScoreAnimation メソッド内にあります。

FAB の配置

最近発表されたフローティング アクション ボタンは、強調させるアクションの実行に優れたツールです。Topeka では、回答の送信に FAB を使用しています。また、FAB は、次のように高さが変化する 2 つの面にまたがります。
これを行うために、トップビュー(R.id.question_view)の高さをクエリして、ビュー階層がレイアウトされたら、FloatingActionButton にパディングを設定します。
private void addFloatingActionButton() {
    final int fabSize = getResources().getDimensionPixelSize(R.dimen.fab_size);
    int bottomOfQuestionView = findViewById(R.id.question_view).getBottom();
    final LayoutParams fabLayoutParams = new LayoutParams(fabSize, fabSize,
            Gravity.END | Gravity.TOP);
    final int fabPadding = getResources().getDimensionPixelSize(R.dimen.padding_fab);
    final int halfAFab = fabSize / 2;
    fabLayoutParams.setMargins(0, // left
        bottomOfQuestionView - halfAFab, //top
        0, // right
        fabPadding); // bottom
    addView(mSubmitAnswer, fabLayoutParams);
}
この動作が初回レイアウト後にのみ行われるようにするため、OnLayoutChangeListener を AbsQuizView のコンストラクタで使用します。
addOnLayoutChangeListener(new OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(View v, int l, int t, int r, int b,
            int oldLeft, int oldTop, int oldRight, int oldBottom) {
        removeOnLayoutChangeListener(this);
        addFloatingActionButton();
    }
});

円形の OutlineProvider

API 21 より、円形状マスクの作成が非常にシンプルになりました。ViewOutlineProvider クラスを拡張し、getOutline() メソッドを以下のようにオーバーライドするだけです。
@Override
public final void getOutline(View view, Outline outline) {
    final int size = view.getResources().
        getDimensionPixelSize(R.id.view_size);
    outline.setOval(0, 0, size, size);
}
次にターゲット ビューで setClipToOutline(true) とし、適切なシャドウの形を設定します。
詳細は、Topeka for Android の outlineprovider パッケージをご覧ください。

ベクター型ドローアブル

アプリ全体で複数の場所にアイコンを表示させるには、ベクター型ドローアブルを使用します。GitHub の Material Design Icons のコレクションには、使用可能な約 750 個のアイコンが含まれています。Android デベロッパーにとっての最大の利点は、Lollipop 以降、VectorDrawables をアプリで使用することで、デバイスの画面密度に関係なく、鮮明に表示できる点にあります。たとえば、アイコン リポジトリの戻る矢印 ic_arrow_back は、Android のベクター型ドローアブル形式に適応しています。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="48"
    android:viewportHeight="48">
    <path
        android:pathData="M40 22H15.66l11.17-11.17L24 8 8 24l16 16 2.83-2.83L15.66 26H40v-4z"
        android:fillColor="?android:attr/textColorPrimary" />
</vector>
ベクター型ドローアブルは res/drawable フォルダに一度保存するだけです。つまり、ドローアブル アセットで使用されるディスク スペースが少なくなります。

プロパティ アニメーション

ViewPropertyAnimator クラス(および便利な View#animate 構文)で用意される標準的な変形機能だけに限らず、ビューのどんなプロパティでも簡単にアニメーション化できます。たとえば、AbsQuizView で、ビューの前景色をアニメーション化するプロパティを定義します。
// Property for animating the foreground
public static final Property FOREGROUND_COLOR =
        new IntProperty("foregroundColor") {

            @Override
            public void setValue(FrameLayout layout, int value) {
                if (layout.getForeground() instanceof ColorDrawable) {
                    ((ColorDrawable) layout.getForeground()).setColor(value);
                } else {
                    layout.setForeground(new ColorDrawable(value));
                }
            }

            @Override
            public Integer get(FrameLayout layout) {
                return ((ColorDrawable) layout.getForeground()).getColor();
            }
        };
後でこのプロパティを使用して、次のように、前景色の変化をある 1 つの値から別の値へとアニメーション化できます。
final ObjectAnimator foregroundAnimator = ObjectAnimator
        .ofArgb(this, FOREGROUND_COLOR, Color.WHITE, backgroundColor);
これは API 12 にも追加されているので特別新しい機能というわけではありませんが、簡単に色の変更をアニメーション化する場合には非常に便利です。

テスト

Android 用 Topeka には、マテリアル デザイン コンポーネントの例が含まれている以外にも、新しいテスト API を使用するユニットとインストルメンテーションのテスト一式が用意されています。この API は「Gradle Unit Test Support」と「Android Testing Support Library」です。実装されたテストを使えば、データモデルの変更に対するアプリの回復力が高まります。障害を早期に見つけられるため、コーディングの精度が増し、容易にリファクタリングが行えるようになります。androidTest フォルダと test フォルダを見れば、これらのテストがどのように Topeka に実装されているかを確認できます。Android でのテストをさらに詳しく学ぶには、「Testing Tools」からお読みいただくことをお勧めします。

次のトピック

Android 用 Topeka を見れば、マテリアル デザインによって Android とウェブ全体で一貫した操作性を実現する方法が分かります。このプロジェクトでは、Android 5.0 SDK と新しい Android Design Library の優れたマテリアル デザイン機能の一部も紹介します。

このプロジェクトでは現在 API 21+ のみをサポートしていますが、AppCompat などのツールや新しい Android Design Support Library を使用して、以前のバージョンをサポートする機能のリクエストがすでに寄せられています。

プロジェクトをご覧いただき、ご意見があればプロジェクトの Issue Tracker からご報告いただくか、Google+ または Twitter からご質問ください。

Posted by Yuichi Araki - Developer Relations Team


[この記事は Jon Larimer、Android セキュリティ エンジニアによる Online Security Blog の記事 "Announcing Security Rewards for Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

2010 年より、Security Reward プログラムは Google 製品の安全強化に活用されています。昨年には、Chrome やその他の Google 製品にある脆弱性を発見したセキュリティ リサーチャーに対して 150 万ドル以上の報奨金が支払われています。

今回、このプログラムが拡張され、特に Android における脆弱性を発見、修正、対策を講じたリサーチャーにも適用されることになりました。新しい Android Security Rewards プログラムについての詳細の一部を、以下に紹介します。
  • Google Play で販売中の Nexus スマートフォンとタブレット(現在発売中のものでは Nexus 6 と Nexus 9)に影響を及ぼす脆弱性について、セキュリティ バグの修正に必要な各工程に報奨金が支払われます。これにはパッチとテストも含まれます。これにより、Nexus は、現在進行している脆弱性報奨金プログラムが適用される、携帯端末としては初の主要モデルとなります。
  • 脆弱性に対する報奨金のほか、このプログラムでは、エコシステム全体を強化するテストやパッチに貢献したセキュリティ リサーチャーに対して、さらに高額の報奨金が支払われます。
  • 最大の報奨金は、ASLR、NX などの Android プラットフォームのセキュリティ機能や、エクスプロイトを防いでユーザーを保護するよう設計されたサンドボックスの回避技術を実証したリサーチャーに提供されます。
Android は今後も、Android(およびその他のオープン ソース プロジェクト)のセキュリティを強化した貢献者に報奨金をお支払いする Google の Patch Rewards Program への参加を継続します。この 2 年間は mobile pwn2own にも出資しており、引き続きこのプログラムや、Android の脆弱性を発見するその他のコンテストを支援していきます。

オープン セキュリティ リサーチが Android プラットフォームの重要な強みであることは、これまでも何度かお伝えしました。Android に重点を置いたセキュリティ リサーチが増えれば、Android の安全性はさらに強化されます。

このプログラムにぜひご参加ください。

Posted by Yoshifumi Yamaguchi - Developer Relations Team

講演
Udacity 上で Google が展開しているオンラインの学習コンテンツを開発者の方々が、勉強会やコミュニティを通じて共に学び合うことができるプログラム Study Jams を実施します。
Study Jams
本プログラムは、オンラインで Udacity のコースを受講している開発者の方々から、「ひとりでのオンライン学習は進まない」、「つまづいた時に相談できる場があると嬉しい」などのフィードバックをいただいたことから生まれました。

このプログラムに参加された開発者の皆様には、
  • ディスカッションの場になるオンラインコミュニティへの参加
  • Udacity のコンテンツを使った勉強会を行う際のサポート(会場・飲食費等)
  • 9 月末までに下記の対象コース修了するための学習支援 (オンラインでのサポート等)
  • 8 月から 9 月末まで Study Jams の勉強会情報をメールでお知らせ
を提供させていただきます。


[プログラム概要]
・期間:8 月 7 日(金)から 9 月 30 日(水)
・参加手順
  1. Udacity への会員登録がお済みでない方は、こちらから登録してください。
  2. 以下に示す本プログラムの対象コース一覧から、コースを選択してください。
    ※各コースを無料で受講する場合は、Udacity上で無料のコースを選択ください。
  3. 本プログラムへの参加登録を行います。本プログラムの参加には、1.で登録された会員情報が必要となります。 参加登録フォームはこちら


今回、対象とするコースは、下記のコースになります。

初級

コース名 学習期間 受講要件
Android Development for Beginners 4 週間 Android Studio をインストール可能なコンピュータ
UX Design for Mobile Developers 6 週間 プログラミングの未経験者も受講可能
日本語での参考情報:モバイル開発者向け UX デザイン


中級(関連技術を利用した開発経験がある方)

コース名 学習期間 受講要件
Developing Android Apps 10 週間 Java、C ++、Objective C、Python のうち 1 つ以上のプログラミング言語を 1 年以上使った経験
日本語での参考情報:Android 向けアプリの開発
Google Play Services
それぞれ 2 週間 Android 向けアプリの開発経験、Android Studio、GitHub の利用経験
Gradle for Android and Java 6 週間 Android または Java の開発経験、Android Studio、GitHub の利用経験
Responsive Web Design Fundamentals 2 週間 HTML と CSS の基礎知識と Chrome ブラウザを使った開発経験(他のブラウザでも可能)
Responsive Images 2 週間 HTML、CSS、Javascript の基礎知識、イメージの作成経験
HTML5 Game Development 8 週間 HTML、Javascript の基礎知識
日本語での参考情報:HTML5 ゲーム開発
Website Performance Optimization 1 週間 HTML、CSS、Javascript 全般に関する知識
日本語での参考情報:Web サイトパフォーマンスの最適化
Mobile Web Development 6 週間 HTML、CSS、Javascript 基礎知識、Web アプリ開発経験
日本語での参考情報:モバイル Web 開発
Product Design 8 週間 コンピュータサイエンスの基礎知識
A / B Testing 4 週間 統計学の知識、プログラミング未経験者も受講可能


上級(関連技術を利用した開発経験が豊富にある方)

コース名 学習期間 受講要件
Advanced Android App Development 6 週間 少なくとも 1 - 2 年の Java プログラミング、または Android 向けアプリの開発経験、GitHub の利用経験
Android Performance 4 週間 Android 向けアプリの開発経験、GitHub の利用経験
Android Ubiquitous Computing 4 週間 Android Studio、GitHub の利用経験
Browser Rendering Optimization 4 週間 HTML、CSS、Javascript を利用したアプリの開発経験、Chrome Developer Tools の利用経験
Developing Scalable Apps in Python 6 週間 Python を利用経験。1 年以上の Web アプリの開発、データベースの利用経験
Developing Scalable Apps in Java 8 週間 Java を利用経験。1 年以上の Web アプリの開発、データベースの利用経験


Study Jams へ参加を希望される方は、こちらのフォームよりお申し込みください。ご登録には Udacity の会員登録情報(お名前、メールアドレス)が必要となりますので、あらかじめご準備ください。

オーガナイザー(主催者)として参加される方へ:
すでに、Udacity の教材を使った勉強会などを企画されている方は、オーガナイザーとして本プログラムにご参加いただけます。オーガナイザーとして登録されますと、企画された勉強会等の活動を Google が支援します。(勉強会の支援に関してはオーガナイザー申込後にメールで詳細のご連絡をいたします)

オーガナイザーとして参加を希望される方もこちらのフォームよりお申し込みください。

開発者の皆様の応募をお待ちしております。

Posted by Takuo Suzuki - Developer Relations Team