AppCode 2018.1 is here!
Please welcome the release of AppCode 2018.1!
Read on to learn about all the new features and improvements, including the first part of Swift 4.1 support, improved RxSwift and Quick support, better handling of implicitly imported Swift modules, wireless debugging, location simulation, and more!
Swift
Swift 4.1 support
Go ahead and use Swift 4.1 in AppCode 2018.1, as now we’ve got its first big part supported including the following proposals:
- SE-0185 (Synthesizing Equatable and Hashable conformance)
- SE-0143 (Conditional conformances)
- SE-0190 (Target environment platform condition):
- SE-0075 (Build Configuration Import Test):
- SE-0186 (Remove ownership keyword support in protocols)
If you’d like to track our progress on Swift 4.1 and its future versions, watch this ticket and its next steps.
Implicit modules
Some of the standard frameworks (such as CoreGraphics
, Dispatch
, and others) are implicitly imported in Swift code. Starting with this update, navigation and completion work correctly for them:
Navigation and completion for Objective-C frameworks in Swift (such as Firebase
and PureLayout
) is also improved.
RxSwift support
Enjoy accurate navigation and completion for frameworks using extension type bounds, such as RxSwift:
We’d like to thank everyone from RxSwift Slack who helped us by sharing their suggestions and providing feedback in the #appcode-users
channel!
Quick support
Quick tests are now displayed hierarchically in the Test runner:
Easily jump to a specific part of the Quick spec by using ⌘↓
:
Note that the same features for Objective-C Quick tests are not implemented yet.
Comments
Use new indentation options for Swift comments in Preferences | Editor | Code Style | Swift | Code Generation to reformat your code:
See multiline comments formatted properly in the Quick Documentation popup (F1
):
Objective-C and mixed code
This release brings several major improvements in Objective-C/Swift translation:
Class
runtime type,SEL
/IMP
types, generic pointers, and some parameter types mentioned in this issue are correctly translated to Swift- The Rename refactoring and Find Usages work for Swift properties used in Objective-C code
Navigation to class/symbol now works much faster in mixed Objective-C/Swift and pure Swift projects. Besides this, we have also fixed an issue where false-negative warnings were shown in the editor for OCMock
framework macros.
C++
All the latest C++ language support improvements implemented by our colleagues from the CLion team are also available in AppCode:
- Support for C++17 structured bindings
- Support for C++17
if
andswitch
with initializers - Proper support for ternary operator
- Reliable refactorings (Rename and Change Signature) for hierarchies
The editor is now more responsive thanks to incremental highlighting and changes to typing handlers.
Wireless debugging
AppCode now supports wireless debugging introduced in Xcode 9, so you can run and debug your application on devices in your local network. Note that the device needs to be paired using Xcode first.
Location simulation
Using location in your iOS app? We’ve implemented support for location simulation to help you develop faster and easier. Set the location you need in the Run/Debug Configurations dialog:
Change it on the fly using the Simulate Location button in the Run or Debug tool window:
Create your custom location setup and use it in the same way as in Xcode:
Edit gpx
files faster with the code assistance for XML:
Project scopes
Project Scope is a subset of files defined in Preferences | Appearance & Behavior | Scopes that can be used for filtering items in the AppCode Project tool window, reducing the scope of an inspection or search, and more:
Now, together with two default modes in the AppCode Project tool window (Project and Files), you can use several new predefined scopes and create your own. Read this post to learn more about scopes.
Xcode behavior
It’s always hard to switch from one IDE to another, especially with so many differences that AppCode has comparing to Xcode. We’ve tried to make this process easier in this release:
- Selecting Xcode theme and behavior on the Welcome screen now sets several interface properties to match the Xcode behavior. This includes completion, breakpoints, keymap, tabs behavior, and more.
- We’ve updated the bundled Xcode keymap to match Xcode 9 defaults and avoid several conflicts with the default key bindings on macOS. Learn more.
- The bundled Xcode color scheme now has the correct font size and colors for
#import
directives, current line, execution point line, and method/function declaration/calls in the project.
Version control
Thanks to the wonderful work of our colleagues on the IntelliJ Platform team, all JetBrains IDEs now support Git partial commits. Include code chunks into the commit by choosing them in the Diff pane of the Commit Dialog:
Move any code chunk to another changelist right in the AppCode editor:
Misc
- It’s now possible to fold control flow statements in Objective-C/C/C++ and Swift by using
⇧⌘.
- Breadcrumbs for Objective-C/C/C++ are now available in the editor.
- We’ve re-worked our bundled color schemes and fixed all the issues with code highlighting for Objective-C/C/C++/Swift. We’ve also added several new color schemes (such as Github) and improved Xcode schemes import.
That’s it! Explore all the new features in detail on our website and start your 30-day free evaluation to try them!
Your JetBrains AppCode team
The Drive to Develop