AppCode starts 2018.1 EAP: lots of resolution improvements, better performance, wireless debugging and much more!

Hi everyone,

Today we are starting the Early Access Program for AppCode 2018.1, the first build is already available for download on our site. This EAP does not require an active subscription, so you can use it for free until the build expiration date.


Considerable resolution improvements

This build brings the correct resolution for implicit modules in Swift. It means that completion and navigation should now work correctly for some silently imported modules, such as CoreGraphics, Dispatch and lots of others:
Implicit modules
Resolution for Objective-C frameworks in Swift (such as Firebase and PureLayout) should be also improved.

AppCode now correctly understands Swift extension type bounds and shows the completion for such frameworks as RxSwift:
RxSwift completion

The following fixes are implemented for the mixed Objective-C/Swift code:

Besides this, we have also fixed an annoying issue where false-negative warnings were shown in the editor for OCMock framework macros.

If you have experienced any of these issues in the past, make sure to give this build a try and let us know what you think!

Performance improvements

Navigation to class should work much faster now in mixed Objective-C/Swift and pure Swift projects. Also cleaning a big build folder should not lead to freezes in the UI.

Wireless debugging

AppCode now supports the wireless debugging introduced in Xcode 9 and shows devices connected via the network in the device list, allowing to debug your application on them. Note that the device needs to be paired using Xcode first.

C++ support

Some of the most important improvements for C++ include:

  • Support for if and switch statements with initializers from C++17
  • Fixes for Rename and Change Signature refactorings that now handle sibling functions correctly
  • And more

Read more about them in the CLion blog.

Project scopes

There are two modes in the AppCode Project tool window (⌘1):

  • Project view that shows all the Xcode projects included into the Xcode workspace and all the files included in each Xcode project.
  • Files view that shows all the files in the project directory and also some files and directories related to the project (such as DerivedSources directories)

When you execute some actions, such as Inspect Code, the meaning of the Whole Project scope is the subset of files in the Files view mode, not only the files included into the Xcode project.

For some users, it can be inconvenient, and that’s why we implemented the support for project scopes:

Now the following default scopes are shown in the Project tool window right under the two default view modes:

  • Project Source Files – files included in the Xcode project.
  • Project Non-Source Files – files from the project directory, that are not included in the Xcode project.
  • Changed Files. This scope is shown if you have version control enabled in your project and shows all the changed files tracked by the VCS
  • Default. This scope contains files from the Default changelist. Any other custom changelists will be added to this dropdown too:Scope changelists

The Project Source Files scope is now available via Scopes drop-down in Find in Path dialog and Custom Scope drop-down in Inspection Scope dialog, allowing you to limit the search or inspection scope to only files included in the Xcode project.

Moreover, you can define your custom scopes in Preferences | Appearance & Behavior | Scopes and specify the subset of project files:

New scope

You can also set a specific color for each scope in Preferences | Appearance & Behavior | File Colors to easily distinguish files, that belong to the specific scope in the Files view mode:

Scope color

And even more

  • +instance option in Generate dialog (⌘N) for Objective-C was renamed to +sharedInstance and now uses the template specified in this issue
  • Replace ‘id’ return type with ‘instancetype’ intention is now available for Objective-C:

Replace id with instancetype

  • Support for SE-0190 (Target environment platform condition) for Swift
  • Scratches are now visible in the Files view mode
  • Improved Xcode keymap, Xcode color scheme, and better settings when choosing the Xcode behavior on the Welcome screen. Read about them in the separate blog post.

That’s it! See the full list of fixes here.

Your AppCode team
The Drive to Develop