A Quick Look At AppCode 2.0

JetBrains recently released version 2.0 of their fantastic Objective-C IDE, AppCode. If you aren’t using it, you should go grab a copy – you won’t regret it. Let’s have a quick look at some of the cool new stuff, and how it compares to AppCode 1.x as well as Xcode.

First Launch

Let’s get to know AppCode! It’s a little bit slow to launch, but Xcode itself is no speed demon here, so it’s hard to fault AppCode too much.

AppCode

Unfortunately, opening a project for the first time still takes a while, thanks to the index building process.

Loading Project

Fortunately, the index building process only seems to happen once per project. Subsequent opens only take a few seconds of ‘Reading Index’. Additionally, there’s no longer a long delay when switching between configurations (iPhone simulator to iOS Device, for example). Thanks, JetBrains! That was a pretty big annoyance.

Look And Feel

AppCode looks a bit different than your typical Mac app. This is understandable, as it’s built on JetBrains’ cross-platform IDE framework – the same Java-based framework that powers products like IntelliJ IDEA and RubyMine.

AppCode

Version 2.0 adds an attractive new dark theme. It’s easy on the eyes, but it’s even more of a contrast from the rest of your system.

AppCode Dark

Keyboard Shortcuts

One of the best things about AppCode is it’s keyboard shortcut support. It includes a built-in Visual Studio keybinding scheme. If you are a developer coming from the Windows world, a nearly-complete set of Visual Studio keybindings is almost worth the price of admission by itself.

AppCode Keybindings

In addition, AppCode supports chorded hotkeys – hotkeys with multiple steps. Instead of having to use hand-contorting shortcuts like Cmd-Shift-Option-Space-R-7, you can use much nicer multi-step hotkeys like Ctrl-R, Ctrl-V to launch the Extract Variable refactoring.

You also get a few other niceties like proper (from a Visual Studio perspective) Ctrl-Tab document switching.

Unit Testing

When you run unit tests in Xcode (and by run unit tests, I mean run all the unit tests in your project, because that’s about all Xcode lets you do by default), an instance of the iOS Simulator gets launched, and your tests are run inside of it. Want to run something other than all the tests in your project? You can either create separate targets for each set of tests you want to run, or find a third party test runner.

When you run unit tests (or a single test, or a file’s worth of tests – it’s nice to have options!) in AppCode, the simulator isn’t used at all. Whatever AppCode is doing, it’s doing it a whole lot more efficiently than Xcode.

Refactoring

Here’s a quick look at some of the refactorings offered by Xcode.

Xcode Refactorings

… and here’s what AppCode has to offer. Quite a difference. I won’t go into the details of all the different refactorings here, but suffice it to say, if you want to do any serious refactoring you should be using AppCode.

AppCode Refactorings

What’s Missing?

In general, AppCode 2.0 is a fantastic IDE. However, there are a couple of important functionality gaps to be aware of.

AppCode does not include a UI designer or storyboard editor. If you try to open up a storyboard in AppCode, it will be launched in Xcode instead. Likewise, AppCode does not include a Core Data model editor, and opening an xcdatamodel will also launch it in Xcode.

AppCode also doesn’t have the ability to submit apps to the App Store. Given the secure, proprietary nature of the App Store submission process, I’m not holding my breath for this feature to appear anytime soon.

On the bright side, the integration between the two IDEs is fairly seamless, and changes made in Xcode are picked up right away in AppCode. I look forward to the day that I no longer have to launch Xcode at all (aside from app submission), but until then, the AppCode/Xcode combo works pretty well.

In Summary

AppCode 2.0 is a great update to an already great product. If you aren’t already using it, you should definitely give it a shot. The raw editing, navigation, and refactoring capabilities are almost guaranteed to increase your productivity, especially if you aren’t a heavy user of storyboards or Core Data.

I honestly wish I had started using AppCode a long time ago; I would probably have a few more apps in the App Store by now. It’s a particularly fantastic tool for UI-less libraries like ios-queryable.

As you can tell, I’m a huge fan of AppCode. But what do you think? Are you more productive in Xcode?

4 Comments

  1. [url=http://www.bestevance.com/rolex/dweller/index.htm]かつて多くのハリウッド映画で450露出の漢ミルトンを「スター」に提供した二の腕時計を越えて、主人公のクーパー(Matthew McConaughey飾)着用は漢ミルトンカーキパイロット双暦腕時計、腕時計の採用丈夫個性のパイロットの設計、ジェーン潔腕利きの外観、42mmサイズの文字盤を添えて目立つ飛行スタイル指針を搭載し、自動的に機械ムーブメント、この項の腕時計の開拓精神を見事に符合する主人公のパイオニア精神。[/url]

    Reply

  2. [url=http://www.gowatchs.com/brand-232.html]今の限定版の時計を配置したオメガ同軸逃げシステム装置、スムース、象牙色文字盤が優雅な復古息、その上の時間スケール、針と早期オメガマークやアルファベットは18金の材質、気高くて優雅。文字盤の上のローマ数字の「XXIX」(29)寓意が北京で行われた第29回オリンピック大会。18金ケース径37 mmを経て、スムースに磨きをかけて、18金付きとボタンの黒い折り畳みワニ皮バンドを完璧に溶けて。スーパーコピー時計アーチ防摩耗サファイアクリスタル表鏡を経て、防ミラー処理、深さ100メートル防水。表を刻んで北京オリンピックマーク印刷、唯一無二の限定版番号や腕時計の発売日とともに、黒つや消し専属セット荷重。[/url]

    Reply

  3. [url=http://www.gginza.com/%E3%82%A2%E3%83%90%E3%82%A6%E3%83%88/item_2.html]簡単にお気に入りの腕時計ユリスナルダンから彼らの有名な「フリーク」が、2001年以降、「アンチ・クラシック」の高級時計とモダンなデザインの時計nerderyが好きである人々のためでした。 ブルガリスーパーコピー ユーレッセナーディン彼らの有力なシリコン腕時計で賭け金を上げ続けるということを私は何より好きです(異常な機械的運動における成分としてのシリコン部分を含む最初のスイス時計の生産)、多くの特徴を加えて、システムの性能と耐久性を増やします。その心は、時計の長針に実際にあるダイヤルの上で全てのシリコンギヤ列を特徴とします。最新の生成・フリークで、「freaklabとして知られ、「ユリスナルダンをさらに追加し、会社の新しい社内」ulychoc」技術の衝撃吸収材として機能を含む。[/url]

    Reply

  4. [url=http://www.wtobrand.com/hec5.html]ロレックススーパーコピーまず第一に、私はそれが設計によると思い、2時位置のアップライトである。それで、だけでなく、我々はプッシャがクラウンの側面の一つに落ちました、我々はまた、さまざまな形をしている、カーブして優雅にケースの側から上がっている。実は、あなたがクラウンの下で見るならば、あなたは実はそこで始まるホーン形状を見ることができる、クラウンを通して続けた。はい、それは少し変わった何か突き出たプッシャーのような事例から見ることです、しかし、私は彼らがここで作成されたデザインを評価します。また、メモ?プッシャーにうまく丸められたので、私はそれでシャツをカフに引っかかっている問題を経験しませんでした、あるいはそれを感じていた私の手首に掘られるようです。[/url]

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *