IntelliJ IDEA 13のAndroidデベロッパにうれしい新機能群の紹介
JetBrainsは常にデベロッパの声に耳を傾けています。Androidのデベロッパももちろん例外ではありません。さまざまな要望に応える形でIDEを強化し続けた結果、Android開発をより楽しくできる機能がIntelliJ IDEA 13 には盛りだくさんになりました。
Gradleベースのビルドシステム
IntelliJ IDEA 13はGradleをより強力にサポートします。IDEA 13はGoogleのAndroid Studioで培われた機能が取り込まれた最初のバージョンになりますが、IntelliJ IDEA 13の利用者からはGradleのサポートがAndroid Studioより優れているとのフィードバックを頂いています。
GradleプロジェクトはAndroid Studioに似たウィザードで作ることが出来ます。他にもアプリケーションアイコンやデフォルトのActivityタイプを選択できます。IntelliJ IDEA 13ではGradleファイルの扱いが簡単になっており、IDEAらしい強力なコードアシスタンスが効きます。
スマートXMLエディタ
Androidアプリケーションを開発する際はレイアウト、マニフェスト、リソースや設定などたくさんのXMLファイルを扱わねばなりません。IntelliJ IDEAはレイアウトファイルを手軽に、そしてグラフィカルに編集できます。またフィードバックによるとAndroidデベロッパは依然XMLファイルを直接編集することを好むとのことです。そこでJetBrainsはXMLエディタを一層強化し、賢くしました。
IntelliJ IDEA 13ではXMLテキストエディタに以下の新機能が追加されています。
ユーザーが定義可能なXML属性の順序: レイアウトファイル内でどの順序で属性が並んで欲しいか設定できます。一度設定しておけばコードフォーマットを実行するだけでXMLファイル内のインデントだけでなく順序まで整えてくれます。
必須属性の自動挿入: IntelliJ IDEAはスキーマで定義されているXMLの必須属性を1クリックで挿入してくれます。
XML属性のドキュメントポップアップ: XMLを編集中、マウスオーバーさせるだけでXMLスキーマで定義されている要素、属性、タイプについてのドキュメントを確認することができます。
改行: IntelliJ IDEAがXMLファイルにどのように改行を入れるのか細かく指定することができます。さらにこの設定はマニフェストファイルやレイアウトファイルなど個別に指定することができます。
Androidアプリ開発ではXMLファイルにレイアウト、シェイプ、階調など様々な色にまつわる情報を記載します。IntelliJ IDEAはエディタの脇にあるアイコンをクリックするだけで内蔵のカラーピッカーを呼び出すことができます。
関連するファイルを相互に行き来する
AndroidアプリケーションではXMLファイルとクラスファイルがペアになっていることが頻繁にあります。典型的な例ではレイアウト(またはフラグメント)ファイルはActivityとひもつけられています。他にはActivityやServiceがマニフェストファイルとひもつけられています。IntelliJ IDEAではエディタ脇のボタンでこれら相互に関係するファイル間を簡単に行き来することができます。
また、ひもつけられたファイル間はコンテクストメニューのGo to>Implementationコマンドでもジャンプすることができます。
IntelliJ IDEA 13ではAndroid SDKクラスを簡単に閲覧することもできます。
簡単になったコンポーネントのプロトタイピング
IntelliJ IDEAではAndroidのコンポーネントをより素早く作ることができます。フラグメントはメニューから作ったり、または基本レイアウトファイルから自動生成させることができます。
XMLコード内にビューコンポーネントの名前をタイプしたらIntelliJ IDEAはアイコンを表示し、必要なXMLコードを自動的に作ることができることを示してくれます。
Android向けのコードインスペクション
IntelliJ IDEA 13はたくさんのAndroid向けコードインスペクションを用意しました。たとえばレイアウト要素内のonclick属性が存在しないメソッドを参照していたらそのメソッドを作成するか聞いてくれたりします。
Android固有のコード解析は、今回のバージョンで新しくたくさん導入されたLintインスペクションも働きます。
マニフェストファイル編集に特化した機能
AndroidのマニフェストをはじめとするXMLファイルの編集はIDEAが備える強力なXMLエディタで非常に楽に行えますが、IDEAはさらにそれぞれのファイルに特化した編集補助機能を持っています。
たとえばマニフェストファイル内のSDKバージョンの補完はIDEAが取り得る値を提示してくれますので非常に楽です。
Class-manifestの相互ジャンプ機能により、Javaクラスを編集中、エディタサイドのボタンよりそのクラスを参照しているマニフェストファイルの行にジャンプすることが出来ます。もしクラスが他のマニフェストで定義されているクラスを使っていればその宣言部にジャンプすることも出来ます。
LogcatのUIを再設計
IntelliJ IDEAはlogcat回りを大きく改善しました。logcatを閲覧するだけでなくメッセージを絞り込むことも出来ます。パッケージやクラス別にタブを分けて表示することも出来ます。さらにIDEからスクリーンショットを直接取得することもできます。
さらにlogcatはメッセージに含まれるテキストやタグ、パッケージ名、プロセスIDなど柔軟にフィルタ条件を設定できます。もちろん正規表現を使うこともできます。
また非常に細かい点ではありますがアプリケーション起動時のlogcat出力を抑止したり、アプリケーション再起動時にlogcatビューワをクリアしたりすることも出来ます。
マルチデバイスプレビュー
IntelliJ IDEAのUIデザイナはアプリケーションのUIを横のパレットからドラッグすることでデザインすることができます。IDEA 13ではUIが様々なデバイスでどのような見栄えになるのか同時に確認することが出来ます。UIデザイナの変更内要はプレビューにリアルタイムに反映されます。
デバイスのSQLiteデータベースにIDEから直接アクセス
ユーザーからの最も強い要望があったのは接続されているデバイスのデータベースをデータベースツールウィンドウより直接確認したいとうものです。単純にデータベース内を除くだけでなく、テーブルエディタ、クエリエディタ、ダイアグラムビルダなどIntelliJ IDEAのデータベースツールのフル機能をデバイスのSQLiteに対して使えます。
SQLiteサポートはAndroidバージョン2.2以前には対応していません。ルート化されていないデバイスでもご利用いただけます。SQLiteサポート機能は有償のUltimate Editionでのみご利用いただけます。
内蔵9-patchエディタ
IntelliJ IDEA 13は9-patchグラフィックもサポートしいます。drawableフォルダに拡張子.9.pngを持つファイルを作り、ダブルクリックすれば9-patchエディタを使えます。
その他の便利機能
もちろんIntelliJ IDEA 13はAndroidデベロッパの生産性を高める機能が一つのブログエントリには書ききれないくらいたくさんあります。たとえばIntelliJ IDEA 13ではソースルートだけでなくリソースルート(Resources Root)というフォルダを指定することができ、そこに自動生成されたソースファイルを置きます。リソースルート以下に置かれたファイルはIDE上では読み込み専用として扱われリファクタリング対象とはならないので自動生成されたファイルを破損させてしまう心配はありません。
IntelliJ IDEAはすでに設定済みのAndroidアーティファクトをEdit Configurationsダイアログより実行させることも出来ます。
他に、小粒ながらも便利な機能としてレイアウトやマニフェストファイル内のストリングリテラルをインライン表示することもできます。
当然のことながらAndroidアプリケーションを開発するということはたくさんのJavaコードを書くということです。IntelliJ IDEAはパワフルなJavaエディタ、ナビゲーション、インスペクション、リファクタリングなど様々な機能で生産性が高いとの評価を頂いておりますのできっと手放せないIDEとなることでしょう。
IntelliJ IDEA 13のダウンロードはこちらから、またIntelliJ IDEA 13の新機能一覧はこちらからどうぞ。