What's New in AppCode
AppCode brings new Extract Method refactoring, override/implement completion, and lots of language support improvements for Swift as well as __auto_type support for Objective-C/C/C++.
Easily extract methods and functions from your Swift code just by pressing ⌥⌘M, and have the signature suggested automatically together with parameter names.
Type the entity name you need to override or implement, select it in the completion list, and have the corresponding stub automatically generated by AppCode.
Benefit from new formatting options for Swift, including:
Turn on Show Swift type hints in
Preferences | Editor | General | Appearance
and have type hints displayed for variables without an explicit type annotation.
AppCode is now able to parse
__auto_type expressions in
Objective-C/C/C++ and shows the
__auto_type keyword in the completion list.
Focusing on correctness, AppCode 2017.2 improves its C++ code analysis across the board. For example:
va_*macros was added
Even when variable is unused, constructor might still have some side effects. A new quick-fix was added to preserve non-trivial constructor call on unused variable.
Intentions and quick-fixes in C++ code suggest C++ type casts (
instead of C-style casts.
AppCode 2017.2 brings support for the Xcode 8.x-9.x documentation format
for Objective-C/C/C++ and Swift. Press
F1 and have the documentation displayed for a symbol
under the caret.
Benefit from improved build messages displaying compiler
messages as a subnode of the corresponding
If you committed your changes but not pushed yet and would like to change the commit message, you can do this with the new Reword action.
The Git Revert action is now available right from the Log view. Select any number of commits and call Revert from the context menu.
It is important to keep commit messages easy-to-read and expressive, and
formatting is quite important here. Configure commit messages inspections in
Preferences | Version
Control | Commit Dialog, and select whether you want to have a blank line between subject and
body, set the maximum text length, or check the spelling in the comments.
AppCode 2017.1 brings long-awaited improvements in Objective-C/Swift translation, support for nullability audited regions and lots of the latest Swift 3 features.
Generate new classes, structs, protocols or enums together with needed initializers right from their usages in your code.
Override or implement multiple methods at once – now even faster thanks to a UI showing Swift members hierarchically and more accurate code generation.
Benefit from function completion, which now takes into account parameter names in function signatures.
See all the
//MARK comment tags in the Structure view (⌘7) and File Structure popup (⌘F12).
AppCode 2017.1 delivers support for the following C++14 features:
As the C++17 standard is just around the corner and the upcoming features are being finalized, AppCode starts supporting C++17 with nested namespaces.
For the sake of code readability and accuracy, AppCode now suggests to modernize your C++ code by converting variable type to auto.
As this feature should be used carefully across your code base, it’s implemented as a non-intrusive intention.
We continue to improve AppCode's parser and code analysis to make it even more accurate:
Filter compiler messages in your application – select the necessary message types via the Filter messages button on the left-hand side of the Build Messages tool window (⌘0).
Welcome a new option, Drag to the editor area, available in Preferences | Build, Execution, Deployment | Debugger | Remove breakpoint. Click a breakpoint in your code to disable it, or drag a breakpoint into the editor area to remove it.
Insert emojis into your source code easily with the native emoji chooser (^⌘Space) and have them correctly rendered in the AppCode editor and IDE windows.
Change Find in Path settings faster with all of them gathered on a single pane.
Upload your project sources to the remote server painlessly, by using the Remote Hosts Access plugin bundled in AppCode.
AppCode 2016.3 delivers the first huge part of Swift 3 support covering lots of changes introduced in this new major language version.
We've re-worked our Swift resolution engine and made code highlighting, completion and navigation much faster than ever before, even in complex projects.
With significant performance optimizations made in SourceKit integration, AppCode shows warnings, errors and fix-its in Swift code almost instantly.
AppCode 2016.3 comes with a first-class set of Swift formatting options allowing you to easily reformat your code.
Set your preferred formatting options for closures, chained method calls, condition clauses or function parameters, define the wrapping behavior, and stop caring about spaces and indents when writing your code.
Have you ever dreamed about creating a function, constant, variable or property declaration just by using it in your code? Simply press ⌥⏎ and have it created automatically in the right place!
AppCode test runner now supports UI tests.
Run all tests in your test file or execute a single one simply by pressing ^⇧R.
Re-run only failed tests in one click and easily filter them out from successful ones.
Unlike the usual highlighting that picks out language keywords, types and values, semantic highlighting helps understand how data flow through the code by highlighting each variable/parameter with its own color.
Enable it in Preferences | Editor | Color & Fonts | Language Defaults and use it when writing Swift, Objective-C or C++ code.
When your code depends on a set of variables and flags set in the run/build configuration, you can see the difference in the editor immediately as you switch the configuration in AppCode. Resolve context is updated automatically, while a manual switcher is still available as before.
This C++11 feature brings the concept of built-in type into the language and is now supported by AppCode, including correct parsing, type preview in Quick Documentation popup (F1) and Rename refactoring.
The process of selecting the most appropriate overloaded function or operator can be tricky. AppCode 2016.3 handles this well and even introduces two new code inspections for such situations:
We’ve reworked dozens of checks to avoid false-positives. This work includes:
AppCode 2016.3 adds support for _Generic keyword, as well as code completion for specific C11 keywords such as _Thread_local, _Alignas, _Noreturn, _Static_assert, and _Atomic.
This version also brings support for gcc atomic builtins.
Sometimes when working with version control, you change your mind at the last moment. AppCode helps you undo certain actions to avoid any harm:
Some projects require Git –signoff commits to be used. AppCode now makes this possible to do from the commit changes dialog.
Simple conflicts can now be resolved by the IDE. If you have several nonoverlapping changes on one line, AppCode will show a special resolve icon in the merge dialog. Click the icon to have the conflict resolved by the IDE.
Manage remotes through the VCS | Git menu. Now you can add, edit and remove remotes for every repo in the project.
AppCode now builds an index for all commits on first-time project opening and later update it on a log refresh. This improves the performance of text, author and path filters in the Git log.
A new design for branches and tags in Git/Hg Log makes it cleaner and easier to use:
The Find in Path dialog now keeps previously used settings (scope, file name filter, context, etc.), regardless of where you call it from.
The default font in the Default and Darcula themes is now San Francisco. It’s used across all the menus and tool windows.
AppCode 2016.3 bundles the FiraCode font, so font ligatures are now much easier to use. To set is as your editor font, select it in settings Editor | Colors & Fonts | Font.