AppCode starts 2017.2.2 EAP: access modifiers support and the first part of Swift 4!

Hi everyone,

Today we are starting AppCode 2017.2.2 EAP with a heap of improvements on board!

Access modifiers

Now AppCode correctly checks access modifiers (such as privatepublicopen, etc.) when resolving Swift symbols. From the user perspective it means the following:

  • Inaccessible entities do not appear in the completion list or Override/Implement pop-up anymore.
  • Such entities in the code are now highlighted in red and more – you can even change the visibility to the proper one using the corresponding intention:
    Access modifier intentions

Swift 4

This build brings the first part of the Swift 4 support:

  • SE-0169 (Improve Interaction Between private Declarations and Extensions)
  • SE-0148 (Generic Subscripts)
  • SE-0168 (Multiline String Literals) and SE-0182 (String Newline Escaping):Multiline string literals

Besides, the following important issues were fixed:

  • Objective-C classes imported via .pch are not resolved in Swift code (OC-14804)
  • Support for AnyObject and AnyClass (OC-14828)
  • Opening a project in AppCode causes lastKnownFileType to change for some UTF-8 files (OC-15901)

For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment

New video: What’s New in AppCode 2017.2

Hi,

Video about new features and improvements in AppCode 2017.2 is here!

Your AppCode team
JetBrains
The Drive to Develop

Posted in Uncategorized | Leave a comment

Moving on to AppCode 2017.3

Two weeks ago we released AppCode 2017.2 and now it’s time to share our plans for the next release!

Special thanks

We’d like to thank everyone who evaluated AppCode during the Early Access Program and shared their feedback and suggestions in our Twitter, blog and support channel, and especially to those who submitted issues or feature requests to our tracker. Several evaluators deserve free 1-year subscriptions and here they are:

  • Raphael Reitzig (YouTrack: reitzig.1)
  • Ralph Bergmann (YouTrack: dasralph)
  • Fabian Ehrentraud (YouTrack: fabb)

We’ll send each of you guys a personal message with the details on how to claim your license (if you don’t get an email from us within a week, ping us here in the comments).

What to expect in 2017.3

The next release will feature enhancements in the following key areas:

  • Swift
    • Implicit modules (OC-13434)
    • Resolution improvements in the mixed code and Swift
    • Caching optimizations
    • Tasks related to access control (subtasks of OC-10954)
    • Swift 4 support
  • Performance improvements for the mixed Objective-C/Swift resolve
  • Xcode 9 support tasks

More interesting features may appear along the way, so stay tuned and share your suggestions or questions in the comments below!

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | 6 Comments

AppCode 2017.2: Extract Method refactoring and override/implement completion for Swift, __auto_type support for Objective-C, documentation improvements and more!

AppCode 2017.2 is here, so download and try it right now! The patch update is also available if you are using a previous 2017.1.3 version (if you’ve already installed AppCode 2017.2 RC2 build, then simply keep using it, since it’s the same as the released one).

AppCode 2017.2 released

Our second big update this year includes:

Download AppCode 2017.2

Continue reading

Posted in Announcement | Tagged , , | 9 Comments

AppCode 2017.2 RC2

Hi everyone,

We are approaching release, so AppCode 2017.2 RC2 build (172.3317.89) is available for download on our site. Note that build requires an active subscription.

The following issue is fixed in this build:

    • No ability to extract method with return statement inside closure (OC-15770)

Due to a number of reports about weird behavior of indexing/symbols building progress and sporadic appearance of “Indices are not ready” message we decided to revert the fix for OC-15714. We are targeting to have a better solution for this in future AppCode versions.

We also disabled inspection for unimplemented protocol members (OC-12701) since there were false intentions in some cases (e.g. OC-15380). The inspection will be restored as soon as we resolve related issues.

For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment

AppCode 2017.2 Release Candidate

Hi everyone,

AppCode 2017.2 Release Candidate build (172.3317.73) is available for download on our site (if using previous 2017.2 EAP build, the patch update is also available). The following issues are fixed in this build:

    • Freeze on right click in IDE (OC-15714)
    • Slow indexing after reopening project (OC-15534)
    • Swift files not being recompiled on changes in Objective-C code (OC-15757)
    • NSObjectProtocol members mistakenly offered for implementation in mixed Swift/Objective-C projects (OC-15505)

In addition, extract method in Swift now handles comments inside selected block (OC-15747) and updates preview when parameters are reordered (OC-15748).

For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | 2 Comments

New AppCode 2017.2 EAP: Extract Method refactoring for Swift and support for Xcode 9 documentation format

Hi everyone,

New AppCode 2017.2 EAP (build 172.3317.17) is available for download on our site (if using previous 2017.2 EAP build, the patch update is also available).

Extract Method for Swift

This build brings one of the most important features from our roadmap, an initial implementation of Extract Method refactoring for Swift! Select the code you want to extract, press ⌥⌘M, and type the method name:
Extract Method start
Click on the row with parameter name to change it or add an internal name:
Edit parameters
Change the method/function visibility as you want:
Set visibility
Press enter and have your code replaced with the method or function call you have just created:
Finish Extract Method

Note, that some issues still exist and we are working on them.

Besides, this build also brings support for Xcode 9 documentation format, fixes the issue when test output was empty when running UI tests with Xcode 9 set in AppCode preferences, and addresses some regressions found during our testing.

For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 10 Comments

New AppCode 2017.2 EAP, build 172.3198.15

New AppCode 2017.2 EAP (build 172.3198.15) is available for download on our site (if using previous 2017.2 EAP build, the patch update is also available). The following issues are fixed in this build:

  • Problem with the project creation in Xcode 8.3.3 (OC-15703)
  • Problem with UI tests in Xcode 9 (OC-15673)
  • Rare deadlock on simulator start (OC-15689)
  • Fix for the compiler note messages – now they will appear as a subnode for the corresponding error or warning (OC-14442)

Besides, AppCode now shows build progress indicator instead of the indeterminate progress (OC-3248).

For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment

Three AppCode plugins for Swift development

There are a lot of helpful plugins in AppCode plugin repository – such as, for example, the Markdown support. Today we will take a look at three plugins dedicated to Swift development.

SwiftLint

SwiftLint is a static analysis tool by Realm that helps you enforce Swift style and conventions in your project. You can use it in AppCode in the same way as in Xcode, by adding the corresponding build phase into your project settings. However, it may be easier to configure it once for all projects. To do that, install the SwiftLint plugin directly from Preferences | Plugins:
SwiftLint
Restart AppCode and open Preferences | Tools | SwiftLint. Here you can set the path for the SwiftLint executable (default is /usr/local/bin/swiftlint), select if you want the Autocorrect quick-fix to appear for each SwiftLint warning, or disable SwiftLint if there is no .swiftlint.yml in the root folder of your project:

SwiftLint preferences
Finally, you should be able to see SwiftLint diagnostic messages right in your code editor window and be able to invoke swiftlint autocorrect for the current file using the Autocorrect quick-fix:
Autocorrect

Swift Mock Generator

Swift Mock Generator
This awesome plugin automatically generates mock classes for Swift protocols and has the following features:

  • Captures invocation status of a method.
  • Captures invoked method parameters.
  • Stubs values for your mocks to return.
  • Automatically calls closure parameters with stubbed values.
  • Supports mocks conforming to one or many protocols.
  • Handles overloaded method declarations.
  • Regenerates your mock in one action.
  • Supports associated types.
  • Respects public mocks and makes queries publicly available.

Read the full overview of its functionality here.

Swiftify

Swiftify is a paid tool that aims to be a full-featured Objective-C to Swift converter. Now you can configure and use it directly in AppCode by installing the plugin by the Swiftify team. Enter your API key in Preferences | Tools | Swiftify:
Swiftify preferences
Check the Tools | Swiftify menu and convert some code:
Convert to Swift
That’s it! Of course, you can set the shortcut for each Swiftify action in Preferences | Keymap:
Swiftify actions
Using any other useful plugins with AppCode? Tell us about them in the comments section below, and we’ll include it in the next blog post about plugins.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Tips'n'Tricks | Tagged , | Leave a comment

New AppCode 2017.2 EAP: documentation fixes and first part of Xcode 9 support

AppCode 2017.2 EAP (build 172.3095.17) is available for download on our site (if using previous 2017.2 EAP build, the patch update is also available).

The most important part of the new functionality included into this EAP is the initial support for the new documentation format introduced in Xcode 8 (OC-13906):
Quick documentation
Note, that some issues still exist and we are working on them.

In addition, this build delivers the following Xcode 9 support fixes:

  • Fix for the simulator startup (OC-15651)
  • Support for multiple simulators running simultaneously (OC-15669)

Besides, now completion of raw enum cases and global/static constants in Swift includes the value preview:
value_completion@2x
For the full list of fixes please see the release notes.

Your AppCode team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | 1 Comment