[go: nahoru, domu]


[この記事は 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