What's New in AppCode
AppCode brings Swift 4 and Xcode 9.x support, dozens of improvements in Swift and mixed Objective-C/Swift resolution engine, improved performance of incremental builds, and lots of new C++ support features and improvements.
AppCode 2017.3 comes with support for all the latest Swift 4 features including multi-line string literals, smart keyPaths, class and subtype existentials, and more.
Add or remove explicit types in variable declarations with the new Add/Remove explicit type intention.
@objc attributes in your code base simply by running the
corresponding inspection on the whole project or by using the quick-fix in your code.
Focusing on parser and resolution accuracy, this release brings support for access modifiers in Swift together with multiple improvements in the resolution engine.
When completing an optional candidate, press ? or ! to have it inserted in the code right after the currently selected item in the completion list.
This release makes code analysis, completion, navigation, and refactorings in mixed Objective-C/Swift code more accurate thanks to the following improvements:
.pchfrom Swift code
JUCE is widely used to develop multiplatform audio applications. AppCode 2017.3 comes with multiple fixes to the JUCE library support to avoid various incorrect code analysis warnings and allow proper navigation through the code.
Since C++11, list initialization has been the standard way to initialize an object from braced-init-list. AppCode 2017.3 has reworked support for this language feature, including fixes for many of the incorrect code analysis warnings:
Name lookup is a standard C++ procedure to associate a name with a declaration. This release fixes the following situations when the procedure previously failed in AppCode:
We’ve reworked our support for the Xcode build system to make incremental builds much faster than before.
AppCode now waits for the device to be unlocked and shows the corresponding notification when running/debugging your application.
Easily distinguish method/function declarations and calls in Swift, Objective-C, C, and C++ by configuring different colors for them in
Preferences | Editor | Color Scheme
Now it’s even easier to run a single test or all tests in your test file, by using special icons in the editor’s left gutter for Swift, Objective-C, and C++.
Icons in project, file and target wizards are now pixel-perfectly rendered.
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.