tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

Google IO 2014公式アプリのソースコード公開されてたのでビルドしてみた

f:id:tomoima525:20140803163928p:plain:w350

Google IO 2014公式アプリのソースコードが公開されてました。-> https://github.com/google/iosched

このアプリはAndroid Lで採用されるマテリアルデザインが導入されてます。現状Android Lで作られたアプリはリリースできないので、実質このアプリが唯一のマテリアルデザインということになります。
Googleはこのアプリのソースコードを公開した意図として、これを参考にマテリアルデザインの実装方法を理解して活用してほしいとのことです。じゃあ見てみようじゃないの、ってことで手始めにビルドしてみました。

アプリのビルド方法

アプリはGradleベースで実装されてるので、Android Studio必須です。

1.必要なものをDLしてインストール

Android StudioをインストールすればAndroid SDK, Gradleは不要です(確か)。
これらは普通に手順にそってDLしてインストールすればOK。

2.Githubからprojectソースコード取得

自分のワークディレクトリ直下で以下コマンド実行。

git clone https://github.com/google/iosched.git

lsするとioschedというディレクトリができてそこにソースコードが来てます。

3.SDK ManagerでLのSDKなどインストール

Android Studioを起動し、Tools -> Android ->SDK Managerまたはタブのドロイド君を選択し、SDK Managerを起動して、以下をインストールします。

↓のように出ているはずなので、選択してインストールすればOK。

f:id:tomoima525:20140803164042p:plain:w400

4.Android Studioにインポート,ビルド

  • local.properties.exampleをの中身を書き換えます。local.properties.exampleを開くと、sdk.dirが書いてあるので、
sdk.dir=(SDKがあるディレクトリ)

とします。あとリネームします。

mv local.properties.example local.properties
  • Files -> Import Project でioschedを選択してインポートします。

  • debug.keystoreが適切に設定してあるか確認します。モジュールディレクトリ(iosched ->android)を開いて、build.gradleを開きます。

   signingConfigs {
        debug {
            storeFile file("../android/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
        release {
            storeFile file("../android/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }

storeFile file ()内に、debug.keystoreの宛先を設定または上記ディレクトリにコピーします。
debug.keystoreはmaclinuxならホームディレクトリ直下/.android/以下にあります。
debug.keystoreがなければ、作成して、ディレクトリ([ワークディレクトリ]/iosched/android/配下)にコピーします。 -> 参考:http://qiita.com/taka0125/items/c408df4061a0af49c9b3

  • (オプション)Android Wear版のプロジェクトも入っているので、それはビルドしないようにします。
    build.gradleから -> wearApp project(':Wearable')を省きます
    settings.gradleから -> ':Wearable'を省きます

  • Android Studioのタブでビルド対象がWearableではなくandroidとなっていることを書くにして、Build -> Make Projectでビルドします

  • マテリアルデザインに完全対応したアプリをビルドするにはAndroid L PreviewSDKでビルドします。

./gradlew clean
./gradlew -Plpreview assembleDebug

これでビルドはひと通りできました!

AVDの設定

Android Lを実行できるのは、今のところAndroid L preview版が入ったNexus5,7またはそのエミュレータだけです。今Nexus 5,7は手元にないので、emulatorで起動します。

  • AVD ManagerをAndroid StudioのTools -> Androidより起動します。
  • Create AVDを選択して以下のように設定します(Device名は適当でOK)

f:id:tomoima525:20140803164229p:plain:w400

で、動かしてみた結果

emulatorにはgoogle IOアプリ起動に必須の開発者サービスが入ってないので、最初の部分しか動きませんでした。*1

f:id:tomoima525:20140803164808p:plain:w400

完全にマテリアルデザインに対応したgoogle IOアプリを触ってみるには、nexus 5などにpreview版を入れてビルドしたアプリをいれてみるしかないようですね〜残念。

とは言え、ソースコードは読めるので、ちょこちょこ読んでいこうと思います。

参考

セットアップ手順は以下を参考にしました。
https://github.com/google/iosched/blob/master/doc/BUILDING.md
http://developer.android.com/preview/setup-sdk.html

*1:genymotionというgoogle playがプリインストールされたemulatorを使えば、開発者サービスもインストールできるので4.4系でgoogleIO自体は起動できるようです。そんなことしなくてもgoogle playにアプリがありますが。