JetBrains AppCode


InteliJ IDEA等、数々のIDE(統合開発環境)を提供してきたJetBrains社製のIDEがAppCodeだ。
JetBrains AppCode: an Objective-C IDE That Makes a Difference

サポートするプラットホームはMac OS/Xネィティブ、つまりCocoaやiOSアプリケーションを開発するための専用の開発環境である。
恐らくIDEのエンジン部分にはIDEA等と同じJavaベースのものを使っており、同社のIDEを使ってきた開発者にとって馴染みのある操作性とインタフェースだろう。

私もReSharperやRubyMine等、同社の製品をいくつも使っているヘビーユーザーなのでAppCodeも是非と思って使い始めたのだが、残念だが使うのを止めてしまった。

理由は3つ。

突然無応答になることがある

AppCode自体にバグがあるのか、IDEがJavaベースだからか(GC?)、はたまたメモリが4GのMacBook Airでは力不足なのか、AppCodeが時々キーボードを受付けないことがあった。いつもではないが、無応答というのはストレスが溜まるものだ。
対するXcodeはネィティブアプリケーションであり、何をするにもきびきびと快適。反応で不満があることは皆無であるのと対照的である。

コード補完が効かないことがある

JetBrainsのIDEといえばなんといってもスマートなコード補完とリッチなリファクタリングである。しかし評価中は無名カテゴリのメソッドが補完されなかったことがあった。(原因不明)
Xcodeでは残念ながらAppCodeのようなキャメルケース補完は効かないものの、補完そのものはリッチであり不都合が出るほどではない。(ごくまれにコード補完中にXcodeごと落ちることがあるが)

TestSuite(全てのテストの一括実行)が出来ない

Xcode 4.xはOCUnitに対応しており、テスト用のプロジェクトを作成できる。AppCodeはXcode4.xのプロジェクトと互換性があり、テストプロジェクトもそのまま実行できるが、Xcodeではできるプロジェクトの中の全てのテストクラス->テストメソッドの実行がなぜかAppCodeでは途中でテストが止まってしまう。

これは恐らくバグだろう。同様の事象が報告されている。
OCUnit: not all tests are executed : OC-2591


まあ、最初の二つは大したことではない。私が我慢できなかったのは最後の不具合である。

ユニットテストを使った開発はそれまでのテストが全て通ることが大前提であり、ビルドした後はそれまで書いたテストは全て実行するのが開発の際の基本サイクルである。

MacにはXcodeという定番、鉄板のIDEがあるが、Xcodeでは当然このサイクルを回すことが出来る上、Xcode自体の軽さ、速さとコンパイルされたバイナリの速さにより、一度に数十のテストを実施しても大した時間はかからないので、非常に快適にテストを行えるだけに、それが出来ないAppCodeはちょっと困るのである。※

とAppCode 1.5が3/12にリリースにリリースされているのを知った。
What's New in AppCode 1.5

さてさて、上の不具合は解消しているだろうか。

Xcodeもこの点は完璧ではなく、任意のテストだけを実行するのが面倒だったり、テストが通ったことがログでしか判らずユニットテストで重要な視覚化である「オールグリーン」が分かり難かったりと不満点はある。