Google I/O 2014でついにAndroid Studioのベータ版が発表された。自分も3ヶ月ほどAndroid Studio使っているけど、大分良い感じだし基本的に問題もないので、乗り換え検討してる人はそろそろ乗り換えてよい時期かも。
いいたいこと
- Android Studioに乗り換えても、 すぐに アプリ開発のフローが変わったり、大幅に効率化されるわけではない。
- でも、ビルドツールである
Gradle
の機能を理解しはじめると、どんどん開発フローが洗練されていくよ。 - 一度
Gradle
を前提とした開発フローになれると、Gradle
無しの開発には戻れないし、多分今後のAndroidアプリ開発の主流はこっちだから、どこかで乗り換えたほうがいいし、そろそろ乗り換えてよい時期。
乗り換えのステップ
Android Studio
に乗り換える上では、覚えなければいけないことが沢山ある。順を追って、焦らず乗り換えていったほうがいい。
まずは、IDEとしてのAndroid Studioに慣れる。
-
Eclipse
でやっていたことと同じようなことをAndroid Studio
でもできるようになるまで頑張る。 -
第一歩として
Eclipse
で作っていたプロジェクトをインポートする、というのはやめたほうがいい。 ライブラリプロジェクトがあったり、外部ライブラリを使っていたり、テストプロジェクトがあったり、そういうのが動かせるようになるまで、覚えなければいけないことが多くて、ハードルあがる。 - 最初は、新しいプロジェクトをAndroid Studio上で作ってIDEの使い方を覚えていったほうが絶対いい。
- キーバインドの違いとかも覚えて、まず
IDE
として快適に使えるようになるまで良さがわからなくても使って慣れること。
Gradleの機能をちょっと使ってみる
-
Gradle
に部分的に触れて慣れていく。 -
dependencies
で、サポートライブラリあたりをプロジェクトにインポートしてみる。そうすると、今までEclipse
でライブラリを使いたかった場合に比べてGradle
(+Android Studio
)がいかに便利かわかる。
Gradleの色々な機能は少しずつ触れてく
-
Product Flavors
とかも便利だし面白いのだけど、アプリの内容によっては縁がない/メリットを実感できないかもしれないので、そういうのは気が向いたときでいい。
乗り換えて便利だなと思うこと
前述の通り、Android Studio
/ Gradle
の基本的な使い方に慣れた後じゃないと、ここらへんのメリットは多分ピンとこない。
Product Flavorsが便利
- サーバー/クライアントアプリで、StagingサーバーとProductionサーバーがあるような場合、
Staging
用ビルドではStagingサーバーにつなぐ、Production
用ビルドではProductionサーバーにつなぐ、とか複数のビルド用の設定を用意できる。 - 「Staging用ビルドはビルド時にパッケージ名をcom.example.staging.myappに変える」みたいな設定もできて、そうすると端末の中にStaging用とProduction用と両方のapk入れられるし。
自動化/CIとの相性が抜群
-
Eclipse
と違って、プロジェクトのディレクトリのルートでgradlew
を実行するだけでIDE上でビルドした時と同じ挙動をコマンドラインから実現できるので、スクリプト内でビルドを実行したり、Jenkins
でビルドのジョブを作ったりするために設定/準備をする必要がない。
開発フローが変わる
- 自動化しやすい + Gradleで今までより色々なことが簡単にできる -> 自動化/CI連携を前提とした開発フローを作りやすい
- 例えば、動作確認用のテストapkを作るとき
-
Eclipse
の場合:- テスト用に接続先サーバーの値を書き換える
- リファクタリング機能でパッケージ名を変更してapkを作る
- 作り終わったら元に戻す
- みたいな
-
Android Studio
+Gradle
の場合:-
Product Flavors
であらかじめ「動作確認時用のサーバーアドレス」と「本番用のサーバーアドレス」を用意しておく - 動作確認用のapkが欲しいときは
./gradlew assembleStagingDebug
コマンドを叩く - 本番環境用は
./gradle assembleProductDebug
叩くだけ - そもそもgitレポジトリにpushがあったら、
Jenkins
マシンで自動的に両環境用のビルドを作ってapkをアップロードする、とかもできる。
-
-
乗り換えコストとかデメリットとか
- IDEとしての操作性の違いに慣れるまでは若干時間かかった。好みの問題もあるけど、Eclipseよりもキーバインドで色々なことができる(オーバーライドメソッドの定義とか、ブロックを
try/catch
で囲むとか)ので便利。 -
Gradle
の使い方(なにができるのか、どこにどうやって設定書けばよいのか)も慣れるまで少し時間かかった。特にライブラリプロジェクト使ったり、テストプロジェクトが別にあったり、とかEclipse
時代に作ったプロダクションレベルのプロジェクトをGradle
で適切に管理できるようになるまで、覚えることが結構たくさんある。 -
Android Studio
/Gradle
それぞれ不具合はほとんど遭遇してない。 安定性は問題なし。
結論
最初に書いた通り 乗り換えたらすぐに効率が上がるわけではないけど、使い続けていれば段々効率が上がっていくし、安定してるしそろそろ乗り換えたらいいと思う