はじめに
5月15日にサンフランシスコで開催された米Google Inc.のイベント「Google I/O 2013」にて、Android向けの統合開発環境(以下、IDE)「 Android Studio」が発表されました。Android Studioは、今までEclipseのプラグインとして提供されてきたADT Plugin(Android Development Tools)とは異なり、新たに「IntelliJ IDEA」をベースに作り直した全く新しいIDEです。
Android Studioのニュースは瞬く間に国内外に知れ渡り、そのニュースと共にIntelliJ IDEAという言葉も多く目にしたと思います。
IntelliJ IDEAはチェコのJetBrains社が開発しているIDEで、海外ではEclipse、NetBeansに並ぶほど著名なツールです。ただ、有償であることと英語版しかないこともあって、国内の知名度は決して高い方とは言えません……。そのため、多くの人が『IntelliJ IDEAって何?Eclipseとどう違うの?』と思ったのではないでしょうか。
この連載について
筆者はAndroid StudioのベースとなっているIntelliJ IDEAを長年愛用している熱心なユーザの一人です(実を言えば、Androidの開発経験はありません) 。
この連載ではベースとなったIntelliJ IDEAの特徴や基本的な考え方を踏まえてAndroid Studioの基本操作や設定方法、Eclipseとの違い、オススメな使い方などを紹介していく予定です。
Android開発に特化した内容は、Android開発を生業としている方がそのうち解説記事を書いてくれると信じていますので、私はAndroid Studioの基本かつ、ちょっとだけマニアックな紹介をしようと思いますのでお楽しみに。
Android StudioとそのベースになったIntelliJ IDEAとは
IntelliJ IDEA(インテリジェイ・アイデア) は、チェコにあるJetBrains社 が開発しているIDEです(国内の代理店としては株式会社サムライズム があります) 。歴史は意外と古く、2001年にファーストリリースがされています。それ以降、ほぼ毎年バージョンアップを繰り返し、現在の最新バージョンは12.1になります。
元々はJava専用のIDEだったのですが、バージョンを重ねるごとに対応言語が増えており、今や多種多様な言語を扱うIDEとなっています。Android Studio同様にIntelliJから派生した特定言語に特化したIDEがあり、かつIntelliJは有償のUltimate Edition(以下、IDEA UE)と無償でオープンソースのCommunity Edition(以下、IDEA CE)が存在することとも相まって製品体系が若干複雑です。
図1 はAndroid StudioおよびIntelliJ IDEAとその派生IDEとの関係を簡単にあらわしたものです。
図1 Android StudioとIntelliJ IDEAおよび関連IDEの関係(Android Studioは、IDEA CEから派生しているだけで、JetBrainsから提供されているIDEではありません)
IDEA CEとAndroid Studioだけが無償で、それ以外はすべて有償です。IDEA UEはすべてのIDEの最上位に位置しており、追加のプラグインを組み込む事で下位のすべての機能を有することができます(AppCodeだけはIDEA UEには含まれません) 。これら以外にも.NET系のReSharperがありますが、IntelliJベースではないので割愛します。
Android Studioが登場する以前から、無償のIDEA CEでAndroid開発をサポートしていましたので、今回のAndroid Studioのニュースは「ああ、Googleはそうゆう選択をしたんだ」という程度で、それほどおどろく事ではありませんでした。
JetBrains系IDEの特徴
無償のEclipseやNetBeansがIDE界隈を席巻しているのに、決して安くは無いIntelliJ IDEAが一定の人気を保っているのは、根底に流れる哲学とそれを裏付けた機能にあると考えています(ピンと来ないかと思いますが、IntelliJはそれなりに人気のあるIDEなんですよ) 。
これがJetBrains社が掲げるテーマです。使ってみるとわかるのですが、JetBrains系のIDEは「コーディングするのが楽しくなるIDE」で、それを裏打ちするように以下の機能が特に優れています。
いろいろな場所で強力に機能するコード補完
テキストエディタ並のテキスト編集
プログラムの検査(インスペクション)
リファクタリング
ライバル視(?)されるEclipseも同様の機能は十分優れていますが、IntelliJは全てにおいて統一的な操作・機能を提供していることが特徴と言えます。また「快適にコーディングを支援すること」に主体を置いているためNetBeansのようなコーディングレスな開発支援機能はそれほど優れていません(個人的には、UI設計をコーディングレスで行うAndroid Designerがどの程度の便利さか期待しています) 。
一見、至れり尽くせりなIntelliJですが、バージョン 12.1に象徴されるように、長い歴史を継いできているため設定や操作方法にはクセと呼べるような特徴があり、新規ユーザにとって決してわかりやすいとは言えなくなってきたのも事実です。とくにEclipseからの乗り換えは苦労を伴うようです(おいおい説明します) 。
IntelliJとAndroid Studioの系譜
JetBrainsが公開したFAQ(IntelliJ IDEA and Android Studio FAQ :JetBrainsの代理店であるサムライズムによる翻訳版はこちら )によると、Android StudioはIDEA CE、それも次期開発バージョンの13(IDEA13)をベースにしているようです。その証拠と言っては何ですがAndroid StudioとIDEA13 CEのアバウト画面に表示されるビルド番号から知ることができます。
図2 Android Studioのアバウト画面
図3 IntelliJ IDEA(IDEA CE)のアバウト画面
Googleの発表では「Android Studio v0.1」となっていますが、今後の動向を把握する上でも、こちらのビルド番号を意識しておいたほうがよいでしょう。
Android Studio登場以前から、IDEA CEでもAndroid開発をサポートしていましたが、現行のIDEA12.1とAndroid Studio、さらに同じ系統のIDEA13が作成するAndroidプロジェクトには次のような違いがありました。
表1 Android StudioとIDEA12、IDEA13が作成するAndroidプロジェクトの違い
Android Studio Gradleベース
IDEA12.1.3 CE Antベース
IDEA13 CE バグがあってAndroidプラグインが動かない(IDEA13 UEで試したら、Antベースで作成された)
Android StudioはAndroidに特化したプロジェクト作成ウィザードを持ち、Gradleベースのプロジェクトを作成します。前述した、JetBrainsのFAQには、Android Studioの機能はIntelliJ IDEA13にも取り込まれるようですが、現時点(2013/5/20)では、Android Studio/IDEA13 UE/IDEA 13CE、それぞれに微妙な差違がありました。
本体に付属しているプラグインから見たIDEA13 CEとAndroid Studioの機能的な違いは以下の通りです。
表2 IDEA CEとAndroid Studioの機能比較
提供機能 IDEA13 CE Android Studio
Androidサポート ○ ○(まだ統一されていない)
Android UIデザイナ ○ ○
Antサポート ○ ×
バイトコードビューア ○ ×
Google Cloudサポート × ○
コマンダー ○ ○
Copyrightサポート ○ ○
CVSサポート ○ ×
プラグイン開発 ○ ×
Eclipseサポート ○ ×
Gitサポート ○ ○
GitHubサポート ○ ○
Gradleサポート ○ ○
Groovyサポート ○ ○
Mercurialサポート ○ ○
コード検査(Inspection&Intention) ○ ○
言語注入サポート(IntelliLang) ○ ○
JavaFXサポート ○ ×
国際化(i18n)サポート ○ ○
JUnitサポート ○ ○
Mavenサポート ○ ○
Propertiesサポート ○ ○
Subversionサポート ○ ○
タスクマネージャサポート ○ ○(タイムトラッキング付き)
TestNGサポート ○ ×
ToStringサポート ○ ○
Swing UIデザイナ ○ ×
XPathサポート ○ ×
XSltサポート ○ ×
Copyrightサポート、言語注入サポートなど、提供機能の名称だけではどのような機能なのかピンと来ないものもあります。すべてとは言えませんが、おいおい紹介していきますのでしばらくお待ちください。
こうして比べてみると、Android StudioがIDEA CEよりさらにAndroid用に機能を削ったバージョンであることがわかります。Androidサポート機能はいずれIDEA CEもAndroid Studioと同等になると思いますが、現時点でのAndroid Studioの特徴は、
ADTからエクスポートしたGradleベースのプロジェクトを読み込める
ことだけのようです(IDEA13 UEでも、現時点ではAndroid Studioが作成したGradleベースのプロジェクトを読み込むのに難があります) 。
その他にアプリケーションの展開形態や設定ファイルの格納場所や形式などを確認してみましたが、Android StudioはまさしくIntelliJベースと呼んでよいでしょう。むしろIntelliJそのものと言えます。いくつか動作確認してみましたが、IntelliJ用のプラグインもAndroid Studioで動作しました。
Early Access PreviewとEarly Access Programについて
Android Studioの発表と同時期に、IntelliJの次期バージョンIDEA13の開発開始がアナウンスされました(IntelliJ IDEA 13 Early Preview is Out :サムライズムによる翻訳はこちら ) 。IntelliJはEAP(Early Access Program)と呼ばれる面白い開発方式をとっていますので、最後にこれを紹介します。
IntelliJは次期バージョンをリリースする半年くらい前になるとEAPを開始して、利用者に次期バージョンの開発を公開します。これはいわゆる「人柱バージョン」で動作が不安定ですが、新しい機能をいち早く試せるので、コアなIntelliJユーザはついつい安定しているリリースバージョンよりEAPバージョンを利用してしまいます。当然開発版であるため動作が不安定だったり、致命的なバグが含まれるケースもままありますが、利用者からのフィードバックを得てリリースバージョンへと完成度を高めていきます。
今回のAndroid Studioも「Early Access Preview」という呼称を使っており、前述したビルド番号(130.677228)から、IDEA13のEAPよりちょっとだけ先を行っているバージョンだと推測できます。ただ、IDEA13のEAP自体(ビルド:130.555)も最新のリリースバージョンである 12.1.3(129.451)から派生したバージョンであるため、EAPといえど、それほど不安定ではないでしょう。
今後、EAPが進むに連れ、Android Studioがどのようにバージョンアップしていくかは未知数です。通常、IntelliJ IDEAは年末に次期バージョンをリリースしますが、Android Studioの正式リリース時期は不明です。またEAPは遅くても1ヵ月ごとに新版がリリースされるのですが、Android StudioがIntelliJのEAPと足並みを揃えてリリースされるのかも、まだわかりません。
このように、Android Studioはとりあえずリリースされましたが、今後どのようなリリース頻度になるかは不明な点が多いです。まずは、Android Studioは「Early Access Preview」の「バージョン 0.1」だという状況を理解して試用することをオススメします。
まとめ
初回ということもあり、能書き中心に説明しました。次回はAndroid Studioの導入について、あまり知られていない情報を中心に説明します。