そろそろAndroid Studioに乗り換えたらいいかも

  • 56
    いいね
  • 4
    コメント
この記事は最終更新日から1年以上が経過しています。

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それぞれ不具合はほとんど遭遇してない。 安定性は問題なし。

結論

最初に書いた通り 乗り換えたらすぐに効率が上がるわけではないけど、使い続けていれば段々効率が上がっていくし、安定してるしそろそろ乗り換えたらいいと思う