What’s New

Introduce variable refactoring. Inspections and intentions.
Argument placeholders. Live templates. Improved rename.
Get more out of your Swift development with AppCode 2016.2.

Free 30-day trial
See in action


Introduce Variable

Introduce variable

With the new Introduce Variable refactoring for Swift, you can easily extract a part of a complex expression into a local variable. The variable name will be suggested automatically, as well as options for automatic type specification and variable mutability.

Learn more in our blog

SourceKit inspections

Inspections & intentions

See all errors and warnings immediately in the editor when writing Swift code with SourceKit inspections integrated into AppCode

Read the tutorial to learn more about inspections in AppCode

SourceKit fix-its

Use the same fix-its as in Xcode for Swift – simply press ⌥Enter on a highlighted region to apply them.

Multiple fix-its
Select the necessary action in case of multiple fix-its available.
Spelling inspection

Spelling inspection

If you happen to mistype something in your comments or code constructs, fix it simply by pressing ⌥Enter

Live Templates

Live templates

Use Live Templates in Swift to insert frequently-used or custom code constructs into source code quickly.

Read the tutorial to learn more

Argument placeholders

Argument placeholders

Have parameter names and value placeholders autofilled simply by invoking completion on a Swift method or function.


Complete Statement

Complete statement

Use Complete Statement (⇧⌘Enter) in Objective-C code to insert parentheses, braces, semicolons and quotes for such code constructs as if, switch or else. Quickly jump to the place where you can start typing the next statement automatically.

Learn how to use this and other types of completion



Generate documentation comments for Objective-C/C++ methods in no time, simply by pressing /**, /*! or /// and have parameter names inserted into the comment stub automatically.

Completion in comments

Use completion inside documentation comment to quickly insert documentation tag or method parameter name.

Quick Documentation

Benefit from the significantly improved formatting in Quick Documentation (F1).

Rename in comments

Save your time when updating your documentation – use Rename for method parameters and have them changed automatically in documentation comments.

Mixed code

Rename in the mixed code

Easily rename Swift methods and method parameters used in Objective-C and quickly find their usages with ⌥F7.

Version control

Unversioned files

See all unversioned files right in the Commit window.

Commit log navigation

Navigate through the commit log easily by using tooltips with target commit information.

And even more

  • New code generation options, Generate Operators and Generate Definitions, recently implemented in the CLion, are also available in AppCode for C++. Read more.
  • LLVM and LLDB predefined coding styles added for Objective-C/C++.
  • Font ligatures are officially supported by IntelliJ-based IDEs. If you have a font that supports ligatures installed (e.g. FiraCode, Hasklig, Monoid or PragmataPro), then simply go to Preferences | Editor | Colors & Fonts | Font, choose a corresponding font there and select Enable font ligatures.
  • You can now set any custom background image for the editor window via Find Action (⇧⌘A) | Set Background Image.
  • Apply somehow interactive mode is supported for applying patches.
  • Git/Hg log shows commit details for several selected commits.
  • IDE notifications are now friendlier – they appear in the bottom right corner and are grouped by subsystem.
Free 30-day trial
Learn about AppCode 2016.1


Swift parser improvements
AppCode delivers parsing, highlighting and completion for the following Swift 2.2 constructs:
  • associatedtype keyword
  • #file, #line, #column and #function debug identifiers:
  • New typesafe #selector directive
  • #if (swift>=) configuration option
  • Keywords used as argument labels
  • Function naming with argument labels
Swift code folding
Use code folding for Swift declarations and focus on the most important parts of your code:
  • Expand/collapse current code block using ⌘+/⌘-
  • Expand or collapse any declaration recursively via ⌥⌘+/⌥⌘-
  • Expand or collapse all declarations in the current file using ⇧⌘+/⇧⌘-

Read about all code folding features

Completion improvements

Completion for Objective-C types used from Swift is improved and shows relevant substitutions for any type used.

Swift debugger

Swift debugger

Change values of Core Data objects without stopping your debugging session with the Set value action (F2).

Build messages

Build messages

Parsing of build messages is significantly improved: now Messages tool window (⌘0) displays all errors and warnings in a convenient way, skipping all irrelevant information.

Build progress messages were updated to show user-friendly descriptions for particular build phases.

CocoaPods support

CocoaPods support

Edit your Podfiles with all recent syntax additions supported including use_frameworks!, abstract_target and other keywords

Watch demo

C++ language support

C++ language support

Variadic templates

C++ parser in AppCode now supports variadic templates providing a lot of fixes, especially for problems in overload resolution and false positives in code analysis for related code constructs.

C++ language support


Symbol completion and import quick-fix for STL headers now generate correct imports.

C++ language support

Quick documentation improvements

Quick Documentation popup (F1) now provides additional details covering lambda expressions, namespace aliases and explicit instantiation, as well as links to the referenced types.

Source directories management

Source management

Manage your project sources and libraries independently from the project structure and choose where to perform sources indexing, code generation, refactorings and more.

Read how to use it in our blog

Structure View

Structure view sort modes

Two new sorting modes are available in Structure View (⌘7) for Objective-C and C++: Sort by Type and Sort Alphabetically.

Read more

Version control

By-word difference

By-word diff

Find changes faster in Diff Viewer with by-word difference highlighting

Work with multiple Git worktrees directly from AppCode and manage them as regular repositories.

Rebase your feature branches on master in one click using the Checkout with Rebase action in Branches context menu, and easily Rename it.

If using Mercurial, now you can compare file revisions between branches.

And even more

  • Right-to-left languages (Arabic and Hebrew) are now supported in the editor.
  • CoffeeScript and Stylus are bundled in AppCode
  • Improved UI for Attach to local process... action
  • Edit custom properties/VM options at no additional cost: just select Help | Edit Custom Properties... or Edit Custom VM Options...
    AppCode will automatically suggest the appropriate files to be created.