News

AppCode 2019.1 is here!

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!

Splash

Download AppCode 2019.1

Swift

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 ExpressibleByStringInterpolation
  • SE-0230 Flatten nested optionals resulting from try?

Rename

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 (⌘B or ⌘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 ⌘B (or ⌘Click on the class name). To jump to the initializer declaration, place the caret inside the parentheses:

Go to Declaration

Move Statement

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:

Move Statement

Multiline strings

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:

Multiline strings

Code resolution

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 DerivedSources directory were not resolved.

These issues should now be fixed.

Objective-C/C/C++

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:

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:

Attach to device process

Application language and region

We’ve been working to improve our run configurations, and this update adds application language and region settings:

Application language and region

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:

Mute variables

Mute variables

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:

Mute variables

Build

We’ve fixed several issues in Xcode integration and made incremental builds in AppCode fast again.

IDE themes

If bundled Light and Darcula themes are not enough for you, we now have several new IDE themes in our plugin repository:

Dark Purple theme

You can create your own IDE theme plugin with a custom set of colors and even icons!

Recent locations

AppCode has dozens of navigation features, some of which let you navigate to recent items in your project your code, such as:

  • Recent Files (⌘E)
  • 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:

Recent Locations

That’s it! Explore all the new features in detail on our website and start your free 30-day evaluation to try them!

Download AppCode 2019.1

Your AppCode Team
JetBrains
The Drive to Develop