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

Comments below can no longer be edited.

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

  1. Avatar

    Kirow says:

    January 26, 2018

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

    Invalidate & Restart does not help.

  2. Avatar

    Jan says:

    January 29, 2018

    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.

    • Stanislav Dombrovsky

      Stanislav Dombrovsky says:

      January 29, 2018

      We are sincerely sorry for that. These problems are caused by this issue. We are working on it right now, should be fixed soon.

    • Avatar

      Alexey Kozhevnikov says:

      February 2, 2018

      Same for me, on large mixed ObjC/Swift project, it’s just freezing. When you do a global search, or when you press Cmd +B.

      • Stanislav Dombrovsky

        Stanislav Dombrovsky says:

        February 2, 2018

        Do you have the same issue with the highlighting/SOE/completion or it’s just freezes?

        • Avatar

          Alexey Kozhevnikov says:

          February 8, 2018

          It just freezes

          • Stanislav Dombrovsky

            Stanislav Dombrovsky says:

            February 8, 2018

            What about the EAP published this week?

  3. Avatar

    Marcel Bradea says:

    February 2, 2018

    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. Avatar

    Armin Telker says:

    March 13, 2018

    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:

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

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

    • Stanislav Dombrovsky

      Stanislav Dombrovsky says:

      March 13, 2018

      Could you please share the sample project to our tracker? We will try to help.

Discover more