読者です 読者をやめる 読者になる 読者になる

リア充爆発日記

You don't even know what ria-ju really is.

Androidアプリ開発の手引 2014年 君がいた夏ver.

最後にAndroidアプリをいじっていたのはもう2年近く前のことだ。

2年も経てばスタンダードも大きく変わっているだろうと再度初心に返り、イチからプロジェクトを作ってみたいと思うこの夏。

開発マシン

OSX10.9.4

参考

http://developer.android.com/index.html
まずは公式ですよ、奥さん!質が高いドキュメントがそろってますから!

ここを読んでない輩は、こんなクズブログ読んでないで、ひとそろい公式読んでからまた来なさい。
まぁ、そのときは来ても意味なくなってると思うけどな!

JAVA

そもそもJAVAの最新バージョンってなんだっけ、と思ってJAVAのサイトいったら「あなたとJAVA」とか出てきてこのコピー必要だったの?ってモヤッた。

がともかく、2014年8月時点ではJDK8が最新だった。

で、Androidの対応バージョンはどうなんだ。2年前は6だったけど、7くらいは使えるようになってんじゃねーの?と思ったら未だに6だった。
http://developer.android.com/sdk/index.html

あれー、7に対応したってのをどっかで見かけたような気がしたんだけどなぁ。別にstringのswitchくらいしか使いそうな機能はないんだけど。

と思ったら一部を除いて使えるみたい。
http://qiita.com/hidekuro/items/6a252c82132ed5d279a4

stackoverflowなど、観測範囲では特に7によるトラブルは見当たらなかったけれども、公式は6推しのようなので、受託とかなら6を使っておいたほうがいいかもね。

まあ、今回は7でいくけど。

ここからdmgゲット。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

で、GUIインストーラでインストールするだけでOK。

$ java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

IDE

何を使うかだけど、今はAndroidStudioってのがあるらしいね!しかもIntelliJのところが作ってんだね!公式もやや推し気味だね!
で、そんなものがないときから、IntelliJでやってたぼくは当然IntelliJAndroidプラグインを使う。

貧乏な人はAndroid Studioを使えばいいんじゃないでしょうか。
ってか、違いってあるんかね。

http://blog.jetbrains.com/idea/2013/05/intellij-idea-and-android-studio-faq/

Is Android Studio a fork of IntelliJ IDEA?

No. Android Studio and the Android plugin for IntelliJ IDEA are built from the same code, and all of the changes in Android Studio are, and will continue to be, available in IntelliJ IDEA releases.

ということで、Android StudioAndroidプラグインも同じなんで、AndroidStudio使ったからって損することはないらしい。

ただ、さっきのリンクの他のFAQでAndroid依存でないところの基本的な機能はIntelliJにしか乗らないものはあるのでIntelliJを使っている人はIntellijを使ったほうがいいって言ってた。
なお、プロジェクトは同じ形式なので、どっちからどっちに乗り換えても問題ないらしい。


Android SDK

このケースだと、スタンドアロンで入れることになるんだと思う。

http://developer.android.com/sdk/installing/index.html?pkg=tools
この通りにすればいいと思う。
Zipダウンロードして、回答して、~/Developmentあたりに置いとけばいいんじゃないでしょうか。
その後、パスを通してコンソールでandroidって打つと、SDKマネージャが立ち上がるのでバリバリインストールしたいバージョンのライブラリを入れておくべし。

$ export PATH=$PATH:~/Development/android/sdk/platform-tools:~/Development/android/sdk/tools
$ android

こんな感じでいいと思う。
というのも、ぼくは、既に入っていて記憶に無いけど4.4.2まで入っているのでこのプロセスは実施してないのでちょっと違うところがあるかも。

※追記)今はhomebrewで入れられるらしい

プロジェクト作成

とりあえずIntelliJで新しいプロジェクトを作る

Create New Project > Android > Application Module
で、アプリ名とかパッケージ名とかいれるところは今回はとりあえずそのままで行く。ついでにHello world activityも作ってもらおう。
で、SDK指定するところがあるので、さっき入れたSDKのディレクトリを指定すると、APIレベルの候補を出してくるので好きなのを選ぶ。今回は現時点で最新のAPI19を選んでおいた。

で、完了すると、何もでない。が、これは時間がかかっているだけなので、待つべし。

ロードが完了したら設定をいじる。

ProjectSettings(コマンド+;)で、

  • SDK > JDKをさっきインストールした1.7に変更する。
  • Project > Project language levelを7.0に変更する。

エミュレータ

2年前は死ぬほどおっそいエミュレータしか提供しておらず、やっとこさ爆速エミュレータが不安定ながらも登場したてのほやほやでしたが、今はどうなんでしょうか。

で、調べてみるとGENYMOTION という名前をよく見かけたので試してみることにした。
http://www.genymotion.com/
https://shop.genymotion.com/index.php?controller=order-opc

Freeプランでも問題ないと思う。Pixel Perfectだけ若干気になるけど、このへんは実機で確認すればいいべ。

もろもろ手続きしてダウンロードする。あっ。IntelliJ IDEA Pluginもある!
あと、VirtualBoxが必須なのでこいつもダウンロードしておく。
https://www.virtualbox.org/wiki/Downloads

で、これらをインストールしてGENYMOTIONを起動してみる。

すると、GalaxyS4のイメージをインストールするか聞かれたので、それを選んだらなぜかエラーになった。調べる気がおきなかったので、あとからGoogle Nexusのイメージを追加した。

追加している間、Genymotionがステキさをアピールしてくる。

Genymotion is fast! CPU and GPU hardware accelerated. Boot more than 3 times faster, deploy your app 2 times faster!

イメージカラーが赤いのでやっぱり3倍速いらしい。


インストール後、エミュレータを起動してみる。うん、なかなか速い。

Hello World

で、プロジェクト作成時にHello World activityを自動生成するようにしたので、とりあえずアプリとしては成立している状態のはず。
起動してみる。
Run > run 'myapp'

すると、さっき追加したエミュレータがdeploy先の選択肢に出てきたので選択したら・・・

できた!


なお、さっきHello World activityを生成するときに、APIレベルを19に設定しているので、エミュレータもAPI19をサポートしているやつじゃないと動かない。それ以外のエミュレータを入れてしまった場合は、AndroidManifestのandroid:minSdkVersionをいじればOK。

次は、テストとかその辺かな・・・。


良いAndroidアプリを作る139の鉄則

良いAndroidアプリを作る139の鉄則