What's New in AppCode

Faster code completion, highlighting, and navigation, support for Swift function builders, property wrappers and opaque result types, a whole heap of new Swift intentions, and reworked build Messages tool window are here in AppCode 2019.3.

Free 30-day trial
2019.3 Dec 4


AppCode 2019.3 extends its Swift 5.1 support, covering Swift function builders, opaque result types, and more features from the latest standard.

Split / Join Intentions

Split / Join Intentions

Save time coding thanks to a new family of split / join intentions for Swift:

  • Split / join variable declaration and assignment
  • Split variable declarations with multiple elements
  • Split / join nested if/else statements
  • Merge / split conditions within a single if
Flip / Invert / De Morgan's Laws

Flip / Invert / De Morgan's Laws Intentions

Another set of Swift intentions is here to handle binary expressions and comparisons:

  • Flip comparisons and binary expressions
  • Invert if statements
  • Apply De Morgan's Laws

Code Generation

We’ve added two new options to help you generate Swift code: Prefer Void over () and Prefer explicit return. Find them in Editor | Code Style | Swift | Code Generation | General.

Code Formatting

New useful options for code formatting are here in Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting:

  • Keep simple property blocks with willSet/didSet on one line (Methods and functions in one line).
  • Keep empty type declarations on one line (Empty type declarations in one line).

Alternative Swift Toolchains

Are you working with the Swift Tensorflow toolchain or another custom Swift toolchain? We now correctly load all the code constructs for custom Swift toolchains and use them for building, running, debugging, and testing.

Build Messages

Build Messages

Dozens of UX issues have been fixed by reworking the Messages tree, which now shows the same information as Xcode does.

Build Messages progress bar

Know how much time your build will take with a deterministic progress bar.

Build Messages filter

Filter build messages the same way you do in Xcode, and with the same options: All Issues, Errors and Warnings, and Errors Only.


Resolve improvements are here, which means AppCode is a lot quicker to highlight the code, show code completion, and navigate.

We’ve boosted caching so that "Processing Swift Modules" should be much faster compared to previous AppCode versions.

Mac Catalyst Support

Code assistance, build, run, and debugging now work for Mac Catalyst projects.

Free 30-day trial
2019.2 Jul 24


AppCode 2019.2 comes with initial Swift 5.1 support including property wrappers, static subscripts, and more.

Closure folding

Closure Folding

Code folding now works for Swift closures, making your code easier to read.


Keyword Highlighting

Have Swift keywords highlighted immediately even if the indexing and caching have not finished.

Join Lines

Join Lines

Easily merge variable declaration and initialization using Join Lines (⌃⇧J).

Create from Usage

Create From Usage

Create Swift enum cases from usage in the code using ⌥⏎.

Find Usages

Find Usages

Search for usages faster with convenient sorting in the Find Usages tool window.


Disassembly view

Disassembly View

When the source code is not available, use Force Step Into (⌥⇧F7) to see the disassembled code (or just select the frame in the Debug tool window).

Create from Usage


Complete LLDB commands in the debugger console using .

Code Coverage

Run with Coverage

Run unit tests with coverage simply by clicking the Run With Coverage button.

Coverage results

See the coverage results on the left editor gutter.

Hit count

Click the coverage color indicator to see the hit count or hide the coverage.

Project view and coverage statistics

View coverage statistics in the Project view or in a separate tool window.

Build, Run, Debug and Test During Indexing

Build, Run, Debug and Test during indexing

Build, run, debug, and test your application instantly without waiting for indexing and caching to finish.


Shell Script plugin

Shell Script Plugin

Have code assistance for shell scripts available out of the box.

TextMate Bundles Plugin

TextMate Bundles Plugin

Have basic code highlighting and completion available for 20+ languages supported via TextMate grammars.

Commit Window

Commit window

Thanks to the IntelliJ Platform team, it’s possible to commit your changes directly from Local Changes. To give it a go, select the Commit from the Local Changes without showing a dialog checkbox in Preferences | Version Control | Commit Dialog.

Free 30-day trial
2019.1 Apr 10


AppCode 2019.1 comes with Swift 5 support including dynamic callables, raw text literals, identity keypath, and more.

Go To Declaration

Go To Declaration

Place the caret before the parentheses to jump to the class declaration when using Go To Declaration (⌘B or ⌘Click) with initializers. To jump to the initializer declaration, place the caret inside the parentheses.

Multiline strings

Multiline Strings

Convert string literals to multiline strings simply by pressing .

Move Statement

Move Statement

Move loops, switches, conditional statements, methods, functions, and other statements using the Move Statement Up / Down action (⇧⌘↑/).


The Rename refactoring now works correctly for super and overridden methods.

Code Resolution

Generated project sources from DerivedSources directory (such as CoreData models and Intents) are now resolved, SourceKit inspections work correctly, and lots of false errors and warnings are gone.


Naming conventions

Naming Conventions

AppCode now respects your preferred naming scheme for Objective-C/C/C++. The selected settings will be used in code completion, code generation, refactorings, and quick-fixes. Select from the predefined schemes, or configure your style manually in Preferences | Editor | Code Style | C/C++/Objective-C | Naming Convention.

Run and Debug

Attach to device process

Attach to device process

Attach to the remote process on an iOS device using Run | Attach to Process.

Application language and region

Application language and region

Change the application language and region on the Options pane in the Edit configurations… dialog.

Run to Cursor

Run to Cursor

Click on the line number when debugging your application to Run to Cursor.

Mute variables

Mute variables

Mute variables in the Debug tool window to step over faster, and load them only if and when necessary.


We have fixed several issues in Xcode integration and now incremental builds are fast again.

IDE themes

Thanks to the IntelliJ platform team, AppCode now supports custom IDE themes. Download one of the themes from our plugin repository or make your own!

Recent Locations

Recent locations

View code locations visited recently as code snippets by using the new Recent Locations dialog (⇧⌘E). To view recently changed code locations, press the same shortcut twice.

Version Control

Swap sides in Diff view

Diff view

Easily swap sides in the Diff view when using Compare with…, Compare with the clipboard, or Open Blank Diff actions.

Partial commits

Partial commits

Use a single checkbox to include or exclude all code lines from a partial commit.

Fixup and Squash

Create fixup! and squash! commits right from the Git Log context menu.

Free 30-day trial