Please welcome our first major update this year, AppCode 2019.1!
Read on to learn about new Swift support features, code resolution and navigation improvements, new debug actions and settings, IDE themes and more!
Swift 5 support
AppCode 2019.1 supports all changes introduced in Swift 5:
- SE-0200 Raw text literals
- SE-0213 Literal initialization via coercion
- SE-0216 Dynamic callables
- SE-0224 Support ‘less than’ operator in compilation conditions
- SE-0227 Identity key path
- SE-0228 Fix
- SE-0230 Flatten nested optionals resulting from
The Rename refactoring now works correctly for super and overridden methods in Swift.
Go To Declaration
Simple actions are not that simple if you look at them through the lens of an IDE. When you invoke the Go To Declaration action (
⌘Click) on class initializer, you expect to jump to the actual class declaration. That’s what you’re used to doing in Xcode. But isn’t it useful to be able to jump directly to the initializer’s declaration?
In AppCode 2018.3.x, the Go To Declaration action always led to the
init method declaration, which wasn’t very useful for most. We decided to change this behavior but simultaneously keep the ability to jump to the initializer declaration. Now navigation works in the following way: to jump to the class declaration, place the caret before the parentheses and press
⌘Click on the class name). To jump to the initializer declaration, place the caret inside the parentheses:
You can move any code line up/down using
↓ shortcuts. Now the same is possible in Swift for loops, switches, conditional statements, methods, functions, and more. Set the caret at the beginning of the code statement or the function declaration, and press
↓ to move it:
Got a string literal that’s too long to fit on one line? AppCode is here to help – press
⏎ to convert it to a multiline string:
When you select the simulator in your IDE, it should resolve all the entities using SDK versions for the simulator; the same is true for the device. For a long time, AppCode only resolved code entities using the device SDKs. This was causing the following problems:
- The SourceKit inspection sometimes worked incorrectly because of the wrong paths in compiler arguments. For example, a “No such module” error was shown, or no warnings and errors were displayed.
- Project sources from
DerivedSourcesdirectory were not resolved.
These issues should now be fixed.
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
Ever spot a problem when running your application, but without an active debug session? That’s when you want to attach the debugger to the running process and zero in on the issue. This used to be possible only for simulator processes, but now we also have real devices covered too:
Application language and region
We’ve been working to improve our run configurations, and this update adds application language and region settings:
Run to Cursor
Using the Run to Cursor action (
⌥F9) you can move the current execution position right where the cursor is. In AppCode 2019.1, you can do it also by clicking on the line number:
The debugger shows you all of the local variables and always recalculates their values for each step. However, sometimes you want to quickly step through the code and have only some of the variables loaded and calculated. Now you can mute variables using the context menu in the Debug tool window, and when appropriate use the Load action to show the values of the specific variables you need:
We’ve fixed several issues in Xcode integration and made incremental builds in AppCode fast again.
If bundled Light and Darcula themes are not enough for you, we now have several new IDE themes in our plugin repository:
You can create your own IDE theme plugin with a custom set of colors and even icons!
AppCode has dozens of navigation features, some of which let you navigate to recent items in your project your code, such as:
- Recent Files (
- Switcher (
- Jump to Last Edit Location (
Welcome the new member of the “recent” actions family – the Recent Locations (
⌃⇧E) popup, which shows recently visited locations as code snippets:
That’s it! Explore all the new features in detail on our website and start your free 30-day evaluation to try them!
Your AppCode Team
The Drive to Develop