What's New in AppCode

Swift 5 support, Move Statement for Swift, correct resolve for Core Data and Intents generated sources, the ability to attach to device process, application language and region support, and faster incremental builds are here in AppCode 2019.1!

Download
Free 30-day trial
2019.1 Apr 10

Swift

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 (⇧⌘↑/).

Rename

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.

Objective-C/C/C++

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.

Build

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.

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