Early Access Program News

AppCode 3.0 EAP opens with an integrated UI Designer and improved Project Settings

Hi everyone!
Spring is already here and, since it’s the time for renewal and growth, we are excited to tell you that the AppCode 3.0 Marocchino EAP is open now. We have prepared quite a lot for this build and are looking forward to telling you about the new features!

Integrated UI Designer
As some of you have already heard, we announced the UI Designer plugin preview last December. Time has passed and it is now fully integrated into AppCode.
UI Designer supports both .xib and .storyboard formats for iOS, OS X support will come later. In the EAP version Designer supports all basic editor features together with the convenient navigation, full component pallet supported by iOS SDK and Auto Layout (for the EAP there is no possibility to create layout constraints manually).
Please note that if you have already installed UI Designer plugin on your previous AppCode’s version you should uninstall it before AppCode 3.0 EAP installation.

Project settings
The project settings were re-worked to make the UI lightweight and more convenient:
Also, following the top-voted request from our tracker concerning targets management, we have implemented the possibility to add targets in the AppCode.

We’ve just started our work in this direction, and it is still a work in progress. Thus, you can expect more to come very soon!

Code analysis becomes more profound
AppCode now understands your code context better and helps you find potential errors in a more effective way:

Code generation in unit tests
You can now easily create a new test method or setUp/tearDown methods for OCUnit, XCTest, Kiwi or Google Test. Just press Cmd+N in your test class and select whatever you want to be generated. Also, for Kiwi, the corresponding “kiwi”  live template was added. This template helps you create a Kiwi Spec with a simple press of the Tab key:

For Google Test, you’ll get a simple TEST() macro with the Generate test action (Cmd+N), but after you specify a suite name it will change the macro to a proper one (TEST(),  TEST_F(), TEST_P(), TYPED_TEST(), TYPED_TEST_P()).

To make test-driven development easier, test run schemes are now automatically synchronized between Xcode and AppCode, so you can change any parameter in one of these IDEs and see the result in the other immediately.

Formatter features
For this EAP we have made several improvements to the formatter. First of all, support for macros has been added to the formatter (see OC-5978 and other related issues). Secondly, support for the formatting of C++ code was greatly improved:

Keymap changes
Following your numerous requests we fully reworked Xcode keymap used in AppCode to stay closer to the native one and to have less conflicts with Xcode itself.

Also there is one change in Default keymap. For the extract ivar/field action Alt+Cmd+F is used now (instead of Alt+Cmd+I as before) and for the extract define action there is Cmd+Alt+D shortcut now (was Alt+Cmd+F before). We understand that such changes in Default keymap can be painful (especially in the beginning) but this will help us integrate other languages and plugins in a proper and more convenient way in the future.

Multiple carets and selections
Multiple selection allows you to put a cursor in multiple locations in your file and edit them at once. Press Alt+Shift and select the cursor locations with the mouse or press Ctrl+G to add the next occurrence of the current word to the selection and then write code simultaneously in these positions. Autocompletion and live templates will also work for you.

Search everywhere
If you have at least some information on what you’re looking for, you can locate the corresponding element using one of the existing navigation features such as Navigate to Class/File/Symbol, Find Action, etc. But what to do if you really want to look for something in every nook and cranny? The answer is to use a new powerful feature called Search Everywhere! To try it, press the magnifying glass icon EAP_search_everywhere_ret on the upper right-hand corner of the window, or invoke it with Double-Shift (hit Shift twice).

Lens mode
Hover the mouse over a warning, error strip or just some section on the scroll bar, and AppCode shows you the source code fragment annotated with the warning or error message.

Navigate to folder
When navigating to a File (Shift+Cmd+O), you can enter the folder name followed by a slash ‘/’ to go to that folder.

Performance improvements
In addition to the new features, we continued our work on the performance improvements. Processes of building symbols and indexing were optimised.

And that’s not all
And, last but not least, there are a few more improvements available in this EAP version:

  • C++11 support was improved (including initializer lists, raw string literals, variadic templates, type traits).
  • A new log viewer for Git and Mercurial was added. Also, support for Subversion 1.8 (via the native client) has been provided.
  • A new built-in terminal (press Alt+F12 to start) lets you run commands locally or remotely using the SSH protocol.
  • When you use Find in Path, you can choose to search through the code or through the string literals/comments only within the selected scope. And for easier navigation over the items AppCode highlights matches to you.
  • You can import your preferred Xcode color schemes to AppCode now. Just go to Preferences | Editor | Colors & Fonts and click ‘Import from Xcode…’ there.

The whole list of fixed issues can be found in our tracker.

Please, note that system requirements have changed a bit. Minimum supported OS X version is 10.8 and Xcode is 5.0.

You can find the build on our EAP page. Let us know what you think — take part in discussions on the forum, and feel free to file bug reports and suggestions on our issue tracker.

P.S. One last thing we want to mention: AppCode EAP versions now have the code names, so don’t be surprised by a name such as Marocchino. AppCode will use cocoa-based drinks for its EAP names, and so the first one is an Italian variety.
From the practical side this makes it easier to find information on the specific AppCode versions in our blog, so for example, you can search our blog with the tag of Marocchino to find all the posts related to AppCode 3.0.

Develop with pleasure!
The AppCode Team