What's New in AppCode

Swift 4.2 support, new Generate actions, navigate to Type Declaration, and lots of formatting improvements for Swift, iOS extensions support in the debugger and better resolve in multi-target projects are here in AppCode 2018.3!

Download
Free 30-day trial
2018.3 Nov 28

Swift

AppCode 2018.3 comes with Swift 4.2 support including future enum cases, new compiler diagnostic and version directives, and more.

Generate

Generate

Generate initializers, hashValue and the equality operator, description and debugDescription properties in no time using the new Generate actions (⌘N).

Navigate to Type Declaration

Navigate to Type Declaration

Jump directly to the type declaration in Swift using ⇧⌘B.

Exit point highlighting

Exit point highlighting

Find all the exit points in your code easily by placing the caret on a break, continue, try, throw, or return keyword.

Navigate to Type Declaration

Formatting

Get multiline strings indented correctly when writing your code and re-formatting.

Reformat code easily with dedicated indentation settings for preprocessor directives and their children.

Swift Package Manager support in CLion

Develop your server-side projects using the Swift plugin for CLion, which now supports Swift Package Manager projects directly on macOS and Linux.

Objective-C/C/C++

Change Signature

Change Signature

Refactoring is easier with the Change Signature correctly handling the default argument values in method/function declarations.

Quick Documentation

Quick Documentation

Macro replacements are now properly formatted and highlighted in the Quick Documentation (F1).

Multiline TODO

Multiline TODO

Add an indent starting from the second line of your multiline TODO comment to differentiate it from ordinary comments, and display the complete TODO text via ⌘6

Multiple targets

Highlighting and completion now work correctly for classes with the same name from different targets.

CocoaPods

Work faster with CocoaPods dependencies excluded from inspections, refactorings, and formatting.

Mixed code

The Rename refactoring now works correctly for Objective-C declarations aliased with swift_name attribute and for various cases with Swift and Objective-C enums.

Performance

Thanks to performance fixes in unit-testing support, there should be no more freezes when you open top-level menus (such as the Run Configurations popup with test configurations), run a heap of unit-tests, or navigate to the test code.

Run & Debug

iOS extensions

iOS extensions

AppCode debugger now supports iOS extensions in the same way Xcode does.

LLDB console for Swift

LLDB console for Swift

Completion works now in LLDB console for Swift.

Features Trainer plugin

Features Trainer plugin

AppCode has tons of useful actions and shortcuts, and it takes time to become familiar with all of them. To help you learn the most important ones, we’ve created a set of lessons for the IDE Features Trainer plugin, which is now available for download in Preferences | Plugins | Marketplace | Featured.

IDE

Search Everywhere

Search Everywhere

The updated Search Everywhere (Double⇧) now includes multiple actions under the one tool window:

  • Search Everywhere
  • Go to Class / File / Symbol
  • Find Action
Each one has its own separate tab in the dialog, and you can use to switch between them.
Run Anything

Run Anything

Run Anything (Double⌃) is a new universal way to run and debug any configuration in your project, and it can even be used to open a project.

To run a configuration, just start typing its name. To debug, hold down the key to switch to Debug mode. To open a project, type open and select the desired project from the list.

Activity Monitor

Activity Monitor

This new experimental feature shows how much CPU the subsystems and plugins (both built-in and additionally installed ones) are consuming. To access it, go to Help | Activity Monitor. If you see a subsystem whose %CPU is unusually high, feel free to ask our support team about it or report it to our tracker.

New Plugins UI

New Plugins UI

The plugins settings under Preferences | Plugins have been redesigned from the ground up. The new UI makes it much easier to control the plugins installed and keep them up-to-date.

Featured plugins and marketplace

You can see a list of the most valuable plugins for AppCode located in the Featured plugins list. Or, sort all the plugins by rating or number of downloads. If you are a plugin writer, check out our new platform for third-party plugin vendors.

Version control

Git submodules

AppCode now supports Git repositories with submodules: repository with submodules is cloned recursively; Diff, History, and conflict resolution now work for submodule folders; and updating the project correctly updates the submodules.

Github Pull Requests

Github Pull Requests

View all the pull requests from your GitHub repository right inside the IDE, thanks to the brand new GitHub Pull Requests tool window (VCS | Git | View Pull Requests).

Accessibility

Accessibility

To make our tools accessible to as many people as possible, we’ve added a few new options to the Appearance section in the IDE’s settings (Preferences | Appearance & Behavior | Appearance). Here, you’ll find a new High-contrast IDE theme, expanded support for screen readers (they can now read line numbers, VCS annotations, and gutter icons tooltips), and an option to adjust IDE colors for people with color deficiencies.

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.