What's New in AppCode

An improved Rename and a new Extract Closure refactoring for Swift, completion improvements and breadcrumbs, lots of code assistance improvements, SQL editing and database management, and Touch Bar support are here in AppCode !

Download
Free 30-day trial
2018.2 Aug 8

Swift

Extract Closure

Extract Closure

With AppCode 2018.2, extracting a closure is as simple as pressing ⌃T and selecting Closure...

Rename

Inline Rename

Rename Swift symbols in your code faster with no dialogs displayed.

The Rename refactoring works correctly for Objective-C block arguments, class names exported to Objective-C from Swift using the @objc attribute, Swift enum cases in Objective-C, and lots of Objective-C declarations that are translated to Swift using special heuristics.

Attribute Completion

Attribute Completion

Complete Swift attributes instantly just by typing @.

Breadcrumbs

Completion for optionals

Have ? inserted automatically for optionals.

Breadcrumbs

Breadcrumbs

Use breadcrumbs to quickly jump to a specific place in code.

Comments preview for extensions

Comments preview for extensions

Having trouble distinguishing one Swift extension from another? AppCode is here to help, showing you documentation comments preview in the Structure view (⌘7) and Class/Symbol (⌘O/⌥⌘O) navigation popups.

Override / Implement

Override / Implement

Have method stubs correctly generated for members with the same name from superclasses and protocols, mutable properties, and optional protocol members not implemented in the superclass.

Intentions

Intentions

Add or remove explicit types in Swift iterations with the explicit types family of intentions.

Debugger

Custom LLDB scripts

Custom LLDB scripts

AppCode now correctly handles the output of custom LLDB scripts (such as Chisel).

Breakpoint intentions

Breakpoint intentions

Easily manage breakpoints in your code using new intentions available via ⌥⏎

Build messages

Target names are correctly displayed as Information nodes

The script output for any Run Script phase is now hidden under the collapsible node and does not clutter the build output anymore.

Database support

AppCode 2018.2 bundles the first-class SQL and database management functionality from JetBrains DataGrip!

Explore the content of a database, read and modify data, execute queries, and do other cool things with databases.

Touch Bar support

Touch Bar support

The long-awaited support for Touch Bar is here!

Run and debug your application, have all context actions displayed, and manage the default touch bar controls for AppCode in Preferences | Appearance & Behavior | Menus and Toolbars | Touch Bar.

User interface

Flat icons

Flat icons

We’ve reworked the interface icons to give you a flatter, cleaner, more modern UI. Learn more in this blog post.

Dark window headers

Dark window headers

How about making the Darcula theme even darker? Go to Preferences | Appearance & Behavior | Appearance and enable the Use dark window headers option.

Version control

Use the new Browse Repository at Revision action to open the required repository state in the Project view.

Open as many VCS Log tabs as you need.

Delete a Git tag from a commit from the context menu of the Log tab.

Learn more about all the new VCS features here

Download
Free 30-day trial
2018.1 Mar 28

Swift

Modern Swift

AppCode 2018.1 comes with the first part of Swift 4.1 support including conditional conformances, build configuration import tests and more.

Implicit modules

Implicit modules

Dispatch, CoreGraphics and lots of other silently imported frameworks are now correctly resolved to provide you with much improved completion and navigation.

Quick support

Quick support

Have Quick tests displayed hierarchically in the test runner, and easily jump to the source of the specific test.

RxSwift support

RxSwift support

Completion and navigation now work correctly for RxSwift and other frameworks that use Swift extension type bounds.

Documentation comments

Use new indentation options for comments in Preferences | Editor | Code Style | Swift | Code Generation and reformat your code easily.

See multiline comments formatted properly in Quick Documentation (F1).

Adopted protocols and where clauses

See adopted protocols and where clauses right in the Structure view, File Structure dialog, and Go To Class/Symbol popups.

Objective-C and mixed code

Breadcrumbs

Breadcrumbs

Keep track of your location in Objective-C/C/C++ code with the breadcrumbs – small markers at the bottom of the editor that help you navigate around your code.

Resolution improvements

Resolution improvements

Benefit from the correct translation of Class runtime type, SEL/IMP types and generic pointers in Objective-C to Swift.

Use the Rename refactoring and Find Usages for Swift properties in Objective-C code and rest assured these actions are working correctly.

C++ support

All the latest C++ language support improvements implemented by our colleagues from the CLion team are available in AppCode:

  • Support for C++17 structured bindings
  • Support for C++17 if and switch with initializers
  • Proper support for ternary operator
  • Reliable refactorings (Rename and Change Signature) for hierarchies

The editor is now more responsive thanks to incremental highlighting and changes to typing handlers.

Performance

Navigation to class/symbol works much faster in Swift, Objective-C and mixed projects.

Wireless debugging

AppCode now supports wireless debugging introduced in Xcode 9, so you can run and debug your application on devices in your local network.

Location simulation

Use predefined locations in Run or Debug configurations.

Change the location on the fly using the Simulate Location button in the Run or Debug tool window.

Create your custom location setup and use it in the same way as in Xcode.

Project scopes

Use built-in custom scopes and create your own to filter the specific subset of files in the Project view, Inspection Scope dialog, or Find in Path dialog.

Set your custom color for the scope to easily distinguish files in this scope from others.

Color schemes

We've re-worked our bundled color schemes and fixed all the issues with code highlighting for Objective-C/C/C++/Swift.

We've also added several new color schemes (such as Github) and improved Xcode scheme import.

Code folding

Code folding for control flow

Fold control flow statements (if/else, do/while, for, switch) using ⇧⌘. in Objective-C/C/C++/Swift. It works for both multi-line blocks and blocks inside braces.

Xcode behavior

Xcode keymap

Use the updated bundled Xcode keymap to get most Xcode shortcuts in AppCode. We've fixed a lot of conflicts with system macOS shortcuts.

Xcode behavior

When switching from Xcode to AppCode, select Xcode behavior and have completion, breakpoint, tabs behavior, code style, and font size carefully tuned to match Xcode settings. Learn more

Version control

Code chunks to commit

Select code chunks to commit

Want to commit only the selected changes from files and leave others for later? Partial Git commits (git add -p) can help, and now AppCode supports them!

To include code chunks in a commit, use the check-boxes in the Diff pane of the Commit Changes dialog.

Changelists

Move a change to the changelist

While editing a file, you can see change markers in the left gutter. These not only let you overview the change and roll it back, but also move it to any existing changelist or create a new one and add the current code chunk to it.

2017.3 Nov 30

Swift

Modern Swift

AppCode 2017.3 comes with support for all the latest Swift 4 features including multi-line string literals, smart keyPaths, class and subtype existentials, and more.

Inspections and intentions

Add or remove explicit types in variable declarations with the new Add/Remove explicit type intention.

Remove redundant @objc attributes in your code base simply by running the corresponding inspection on the whole project or by using the quick-fix in your code.

Parsing and resolution correctness

Focusing on parser and resolution accuracy, this release brings support for access modifiers in Swift together with multiple improvements in the resolution engine.

Completion of optionals

When completing an optional candidate, press ? or ! to have it inserted in the code right after the currently selected item in the completion list.

Mixed code

This release makes code analysis, completion, navigation, and refactorings in mixed Objective-C/Swift code more accurate thanks to the following improvements:

  • Correct resolve for Swift initializers coming from Objective-C
  • Better Objective-C/Swift translation
  • Resolve for Objective-C classes imported via .pch from Swift code

С++

Boost tests

Boost and Catch support

Support for Catch and Boost.Test test frameworks is now available in AppCode for C++. Easily create test run configurations, run separate tests directly from the source file, rerun failed tests, and do more cool things.

JUCE support

JUCE support

JUCE is widely used to develop multiplatform audio applications. AppCode 2017.3 comes with multiple fixes to the JUCE library support to avoid various incorrect code analysis warnings and allow proper navigation through the code.

List initialization

Since C++11, list initialization has been the standard way to initialize an object from braced-init-list. AppCode 2017.3 has reworked support for this language feature, including fixes for many of the incorrect code analysis warnings:

  • Invalid “parameter type mismatch” error for boost weak pointer initialization
  • Failed resolve for the members of auto variables initialized with uniform initialization
  • Invalid warnings when C99 union initializers are used
  • Missing “too few arguments” warning in case of invalid list initialization
  • And others

Name lookup

Name lookup is a standard C++ procedure to associate a name with a declaration. This release fixes the following situations when the procedure previously failed in AppCode:

  • Resolving a name before the corresponding declaration from the same scope
  • Resolving a name imported via using in some cases
  • Resolving symbols brought into the scope by class inheritance
  • And others

Build and Run

Build performance

We’ve reworked our support for the Xcode build system to make incremental builds much faster than before.

"Unlock the device" notification

AppCode now waits for the device to be unlocked and shows the corresponding notification when running/debugging your application.

Color schemes

Color schemes

Easily distinguish method/function declarations and calls in Swift, Objective-C, C, and C++ by configuring different colors for them in Preferences | Editor | Color Scheme

Testing

Testing

Now it’s even easier to run a single test or all tests in your test file, by using special icons in the editor’s left gutter for Swift, Objective-C, and C++.

Project wizard

Project wizard

Icons in project, file and target wizards are now pixel-perfectly rendered.

And even more

  • When switching between branches, the IDE preserves your workspace and automatically restores it when necessary.
  • When committing Git patches from the IDE, the IDE reads the author and commit details provided by the patch.
  • When using Tasks & Contexts, you can now shelve the changes related to your current task when you start a new task; unshelve the changes when you switch back.
  • And some more