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.

Splash

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:
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
JetBrains
The Drive to Develop

This entry was posted in Announcement and tagged , , . Bookmark the permalink.

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

  1. Kirow says:

    SnapKit still not working correctly in my project. (no autocompletion, no highlights)
    Did not check in empty project.

    Invalidate & Restart does not help.

  2. Jan says:

    This version is so buggy I had to return to 2017. Constantly freezing, syntax higlighting and code completion was constantly working only on parts of the files.
    Whatever, I send crash reports (constant stackoverflows) and hope the next EAP is far more stable.

  3. Marcel Bradea says:

    Swift resolve is pretty much completely broken.
    Obj-C seems fine, but opening a Swift file locks up every time (tried in multiple projects, some mixed Obj-C/Swift, others all-Swift)

  4. Armin Telker says:

    Hey it seems so that not 100% of the RxSwift RxCocoa library is supported till now in EAP 2018-1

    Code like this still do not work:

    tableView
    .rx
    .itemSelected
    .subscribe(onNext: { indexPath in
    }).disposed(by: disposeBag)

    It will not find the rx extension. A import of the class RxCocoa do not help.

Leave a Reply

Your email address will not be published. Required fields are marked *