2011-11-07
Googleの中の人が作ったAndroidアプリioschedを参考にしよう!(とりあえずビルドまで)
Android | |
![]()
Googleの中の人が作ったGoogle I/O用のAndroidアプリ iosched がオープンソースで公開されているのですが、Androidアプリを開発する時に非常に参考になるので(Table対応したバージョンから難解になったのがネックですが)紹介したいのですが、ビルドするまで少し作業が必要なのでダウンロードしてビルドするところまで手順をメモっておきます。
Mercurialをインストールする
hg clone https://code.google.com/p/iosched/
と書いてあって、svnやgitではなくhgなのでMercurialが必要みたいです。
ということで、brewでさくっと入れようかなーと思ったけど何か嫌な予感(今思えば今回に限ってなんで嫌な予感を感じたか不思議でしょうがないけど)がしてググったらbrewでMercurialを入れるのはメンドそうなので素直にパッケージをインストールしちゃいましょう。
ダウンロードはこちらからMacのバージョンに合ったファイルをダウンロードしてください。
ダウンロードしたzipファイルを解凍して、mpkgファイルをダブルクリックしてインストールしてください。
インストールできたら、ターミナルからhgと入力して以下のように出ればOKです。
$ hg Mercurial - 分散構成管理ツール 基本コマンド: add 指定ファイルの追加登録予約 annotate ファイル行毎のリビジョン情報表示 clone 既存リポジトリの複製 commit 指定ファイルないし全ての変更内容のリポジトリへの記録 diff 作業領域全体(ないし指定ファイル)の差分抽出 export 1つ以上のリビジョンに対するヘッダおよび変更内容の出力 forget 次回コミットにおける指定ファイルの登録除外 init 指定されたディレクトリでの新規リポジトリの作成 log リポジトリ全体ないしファイルの変更履歴の表示 merge 作業領域の内容と他のリビジョンのマージ pull 指定リポジトリからの変更履歴の取り込み push 指定リポジトリへの変更履歴の反映 remove 次回コミットにおける指定ファイルの登録除外 serve 独立したウェブサーバの実行開始 status 作業領域のファイル操作状況の表示 summary 作業領域状態の概要表示 update 作業領域の内容更新(ないしリビジョンの切り替え) 全コマンドの一覧は "hg help" で、 コマンド詳細は "hg -v" で表示されます
今回はcloneするだけなので他のコマンドはとりあえず置いておきましょう。
ソースコードをチェックアウトする
適当なディレクトリで
hg clone https://code.google.com/p/iosched/
Eclipseでインポートする
ちょっとその前に確認
もし、最近ADTやAndroid SDKをアップデートしていない人は最新バージョンに上げておきましょう。4.0も出ましたし。
Updating the ADT Plugin でADTをアップデートしたら、
もし、4.0とか3.2とかインストールしていなければ、とりあえず全部入れておきましょう。
インポート
Androidプロジェクトを新規作成
Create project from existing sourceを選択、Project Nameが勝手に変わるのでioschedと入力、Nextボタンをクリック。
Android 3.2を選択して、Finishボタンをクリック。
android-support-v4.jarを追加する
最近のAndroidアプリは同一のソースコード(アプリ)でタブレットでもスマートフォンでも動くようにFragmentという仕組みを使って開発する必要がでてきたり、タブレットに対応する必要がないアプリでも来たるICS(Android 4.0)に備えて(もうSDKは出てますが)Fragmentに慣れておくべきとGoogleの中の人が仰られていたりで、別途、勉強する必要があるのですが、ここで説明しだすと量的に無理があるので今回はとりあえず飛ばして、ビルドするところまでいきましょう。
プロジェクトのlibsディレクトリにandroid-support-v4.jarというライブラリを置いてビルドパスを通す必要があります。
android-support-v4.jarはAndroid SDKのディレクトリのextras/android/compatibility/v4/にありますので、Eclipseのioschedプロジェクトのlibsディレクトリにコピーして、右クリック > Build Path > Add to Build Pathでビルドパスに追加します。
これでコンパイルエラーがだいぶ減るんですが、まだエラーが残ってます。
libGoogleAnalytics.jarを追加する
ioschedはGoogle Analytics SDK for Androidのサンプルコードも含んでいるらしく、そのライブラリが必要です。
http://code.google.com/intl/ja/mobile/analytics/download.html からGoogle Analytics SDK for Androidの GoogleAnalyticsAndroid_1.3.1.zip をダウンロードして、解凍するとlibGoogleAnalytics.jarがあります。
android-support-v4.jarと同様に、libGoogleAnalytics.jarをEclipseのioschedプロジェクトのlibsディレクトリにコピーして、右クリック > Build Path > Add to Build Pathでビルドパスに追加します。
これでコンパイルエラーがなくなりました。
実行する
あとはお手持ちのお好きな端末やエミュレータで実行してみてください。
スマートフォンだと
タブレットだと
こんな感じで、他のScheduleやSessionsなどもUIがスマートフォンとタブレットで変わります。
あとは
ソースコードを読んでみましょう。Googleの中の人が作ったAndroidアプリのソースコードなんて、そうそう読むチャンスなんてないと思うので非常に貴重な経験と多くの発見ができると思います。冒頭でも書きましたがタブレット対応のために難解になったのがアレなんですが・・・
易しい所だと、res/配下のファイルの命名規則なんかは真似すると整理できていいと思います。layoutファイルはactivity_やfragment_やlist_item_などのプレフィックスを付けるとか。drawableの定義の仕方とか。小さな所から真似ていけばいいかなと思います。
ソースコードの方だと、パッケージ設計やクラス設計、継承の使い方とか。ダッシュボードUIの作り方とか。ActionBarの実装とか。
ICS(Android 4.0)でまた色々変わっちゃうとは思うのですがね(ぜぇぜぇ
おまけ
タブレット対応前のシンプルなioschedはどこにいった?
ググったらunderhilllabsさんが古いioschedをがっつりコピーしてgithubに突っ込んでいてくれてたおかげで発見できました。けれど、.svnがそのままコミットされていたりいろいろ残念な感じだったのでforkしてゴミを削除したりapi versionを修正したりしときました。
https://github.com/gabu/iosched2010 からcloneしてください。Android初めてという方は、こっちの方がタブレット対応する前のAndroid 2.1向けのシンプルなioschedとなっておりますのでソースコードも読みやすいかと思います。
ICS(Android 4.0)でどっちみちFragmentは避けて通れないという噂もあるけど(げふんげふん
ではでは!
- Twitter / @yoktys
- kinneko@転職先募集中の日記 - Googleの中の人が作ったAndroidアプ...
- Twitter / @bethbeth321
- Twitter / @wood_box
- Twitter / @ORESAMA_No1
- Twitter / @umi_wakame
- Twitter / @tomatoh1978
- Twitter / @kuriharan
- [IT産業と経済]SIerが技術力を求めているという誤解
- Twitter / @shota_0024
- Twitter / @kaelayou
- Twitter / @tartvf
- Twitter / @tkumazaki
- そばとちゃんこの競演 - きみはGalaxy Nexusを手に入れることができ...
- 523 http://andante.in/i/書籍紹介/「android-sdk開発のレシピ」のサンプルが公開されてる??%
- 447 http://b.hatena.ne.jp/hotentry
- 307 http://www.google.co.jp/url?sa=t&rct=j&q=android ndk&source=web&cd=3&ved=0CFMQFjAC&url=http://d.hatena.ne.jp/gabuchan/20110726/1311618629&ei=mhC4TpLwAo7nmAW4vcnEAw&usg=AFQjCNGkWaitdXeH4-S3-Q5RErE-UXY9OQ&sig2=X0_5QyydFBQixfv1mrwpgQ
- 302 http://b.hatena.ne.jp/hotentry/it
- 197 http://t.co/798qIfdv
- 140 http://bit.ly/tifAE8
- 139 http://reader.livedoor.com/reader/
- 132 http://longurl.org
- 115 http://search.yahoo.co.jp/search?p=app inventor 日本語&rs=1&tid=top_ga1_sa&ei=UTF-8&fr=top_ga1_sa
- 111 http://d.hatena.ne.jp/















ねこ速@VIPというブログをやっている水月と言います
よろしければ相互リンクしていただけないでしょうか?
内容はツール、マンガ、アニメ、その他ニュース等です
検討のほう、よろしくお願いします
サイト名:ねこ速@VIP
URL:http://nic.chu.jp/
RSS:http://nic.chu.jp/feed/