Early Access Program News

AppCode 3.3 EAP starts now!

Previous release was announced just a couple of weeks ago, however we promised to start Xcode 7/Swift 2.0 work as soon as possible. And today we are happy to show you the progress and the direction we are moving forward. Please welcome AppCode 3.3 Early Access Program build (142.4675)!
AppCode_33_EAP

Objective-C + Xcode 7 support

In this build we started our work on supporting latest changes in Objective-C coming with Xcode 7. First, it’s nullability keywords, that are slightly different from those in Xcode 6:

  • __nullable is a compiler definition,
  • _Nullable is a keyword.

AppCode 3.2 supports nullability keywords coming with Xcode 6.4, and this EAP build includes parsing and resolving for these updated nullability keywords from Xcode 7.

Note: completion features are still in development and will be available in the upcoming EAP builds.

Xcode 7 introduced generics in Objective-C. This flexible mechanism is especially important when you bridge in mixed Swift and Objective-C code. AppCode 3.3 EAP now provides basic support for them as well. That includes parsing, highlighting and renaming of the generic parameters:
objc_generics

Note: Incorrect type inference (and thus false incompatible types reported by AppCode OC-12338), incorrectly generated methods implementation (OC-12339) and other possible problems will be addressed in the next EAP builds. Please, report them to our tracker.

If you experience a problem running your app on a simulator in AppCode, please check you switched to Xcode 7 GM, since there is a known problem with it while using Xcode 7 beta 6 (OC-12296).

Swift language support

We are working continuously on Swift language support, finishing all the constructs from Swift 1.2 and starting Swift 2.0. Here is the list of the recent improvements:

  • Assignment keyword from Swift 2.0 support, including completion:
    assignment_compl
  • @noescape modifier for closures is supported since this EAP.
  • Correct completion substitution in case of generics:
    generics_subst
  • Correct handling of the hashbang line while reformatting (OC-12268).

Swift debugger

Starting with v3.2 you can debug your app in Swift in AppCode. A few goodies were introduced in this EAP:

  • Correct collections rendering:
    ns_collections
  • Rendering for CoreFoundation types in Swift.

Adjust Code Style Settings via a Quick Fix

AppCode provides you with many useful quick fixes – they can convert to modern literal syntax, wrap lines with respondsToSelector condition and much more. And now there is another one, however quite different from the above. It’s called Adjust code style settings and appears in case you select several lines and press Alt+Enter for a Quick Fix. This quick fix allows you to get the list of code style options applicable to the selected piece of code only and adjust them right there, reviewing the changes immediately in the editor:
adjust_code_style

Preview Find in Path results

While searching through the code base with Find in Path you can now check the results on the fly – up to first 100 results are listed in preview right in the Find in Path dialog:
find_in_path

Switch JDK version inside AppCode

Current stable version is available in two versions: the usual one, that requires Java 1.6 installed on your system, and the one with the bundled custom JDK with fixes from JetBrains team. With this EAP the things become easier. There is only one build now, and bundled JDK is selected by default. If you want something different, invoke Find Action (Shift+Cmd+A) and type Switch IDE boot JDK… there, then select any prefered JDK installed in your system in the dialog:
select_jdk

New UI for Testing

Run XCTest, Kiwi or Google Test in your project and get the results in the separate AppCode toolwindow, which is now getting better and more convenient to use. First, test durations are shown right in the tree now and you can sort by duration after all tests finish.

If you prefer the vertical orientation for the testing results tool window, you can do that now by moving the window to the right or left, and the console will be adjusted accordingly (please, note, that you need to rerun the tests to get proper adjustments for now):
test_ui

There are questions from our users from time to time, how to save tests results. We usually recommended to pin the tab and thus save the results to look at them afterwards. Now it’s done in an automatic way. Import test results from history in one click:
import_test_results

And more

Other notable changes in this EAP include:

  • RegEx usage possibility in Find and Replace.
  • Ability to edit code right in the diff viewer – simply unlock the editing mode.
  • For Mercurial Queues users: manage patches in the UI now – create patches; import local commit as patches; rename, apply, unapply and remove them.

Find the full list of fixes and improvements here.

That’s it! Download the build and give it a try right now. As usual EAP doesn’t require an active license and you can use it for free for 30 days.

P.S. In line with our code-naming tradition, this version is code-named Espressino, an Italian coffee drink. On the practical side, it’s another tag in our blog to find information on specific AppCode versions – search for Espressino to find posts about v3.3.

Sincerely yours,
The AppCode Team