What's New in AppCode 2022.3

AppCode 2022.3 comes compatible with macOS 13 and Xcode 14.2. It brings more refactoring capabilities for Swift, enables language injections, and suggests a new approach to settings synchronization.

With the release of v2022.3, we are discontinuing the product. As of December 14, 2022, we will no longer sell new subscriptions or renew existing ones for AppCode. All active subscriptions will get a fallback to v2022.3.

Swift refactorings

Inline Function

Inline Function

The new Inline Function refactoring (⌥⌘N) inlines a selected Swift function and substitutes all its usages across the codebase. AppCode will suggest inlinining all invocations and removing the original function or inlining only the selected invocation and keeping the original function.

Extract Property

Extract Property

When creating property from usage or extracting it, AppCode now suggests a choice between var and let property declarations.

Extract method

Extract method

The Extract Method refactoring in Swift got several enhancements:

  • It takes into account the variable lifetime and scope.
  • It no longer misses the mutating modifier.
  • It no longer fails in cases where the code you selected to extract starts from a conditional expression.

Code completion

Code completion

Code completion in Swift received several improvements to better fit your needs. When completing init and deinit keywords, redundant spaces are removed and the required braces and parentheses are added after the keywords instead.

AppCode 2022.3 also enables the complete statement for initializers and deinitializers.

Code analysis

Intention previews

Intention previews

If you feel unsure about the quick-fix or are just wondering what exactly is going to change, open the Quick Documentation (F1) popup for a selected quick-fix in the ⌥Enter menu. This will activate the intentions preview so you’ll see how the code is going to be updated with the fix applied.

New checks

New checks

AppCode 2022.3 brings new code analysis checks that warn you about a redundant nullable type and a redundant closure.

Injected languages

Injected languages

When coding in Swift, there can sometimes be pieces of code inside string literals, such as SQL strings, HTML code, or regular expressions. You can now instruct AppCode to treat them as code, which means it can now perform accurate code highlighting based on the language chosen, show language-specific intentions and actions, and even provide the ability to edit a code fragment in the dedicated editor section.

Set the caret on a string, press ⌥Enter, and select the language you want to inject there.

UML diagrams update

Injected languages

AppCode 2022.3 enhanced UML diagrams for Swift and Objective-C classes:

  • You can drag items from files in the Project View to the diagram.
  • You can filter nodes on the diagram by scope, like all changed files, opened files, or project source files.

Kotlin Multiplatform Mobile plugin update

The Kotlin Multiplatform Mobile (KMM) plugin for AppCode helps you develop applications for Android and iOS using the unified Gradle project model. In the new version, the following enhancements are available:

  • The plugin now supports moving/copying files into and out of Xcode projects.
  • Transitively exported dependencies are now available and resolved correctly in a Swift code.
  • The incorrect cross-language class rename was fixed.
  • The new version fixes some debugger exceptions which happened when stepping from the common code to the iOS part in the hybrid model.
  • Xcodeprojs is now only linked when no Apple Gradle DSL is present.

Please note that the Kotlin Multiplatform Mobile technology is independent from the sunsetting of AppCode and further investment in tooling continues. For more information and updates, check out the Kotlin blog.

Settings synchronization

New UI

A new solution for synchronizing settings is now available in all IntelliJ-based IDEs, including AppCode. The new Settings Sync plugin is capable of syncing all shareable settings from the platform, bundled plugins, and third-party plugins. The settings are stored in the cloud attached to the user’s JetBrains Account. If you use different IntelliJ-based IDEs associated with the same user account, your settings will be automatically synced.

Learn more

Other enhancements

  • AppCode 2022.3 comes compatible with macOS 13 and Xcode 14.2.
  • For Swift packages, AppCode can now build for macOS and other build destinations like the iPhone, simulators, and more.