Early Access Program News

AppCode Starts the 2022.3 EAP

Hi everyone,

Today we are starting the Early Access Program for AppCode 2022.3, and the first build (223.6160.86) is already available for download.

Give the free EAP builds a try and let us know what you think about the changes! Share your feedback in the comments or submit it to our issue tracker.

AppCode starts the 2022.3 EAP

DOWNLOAD APPCODE EAP

Here are the main highlights:

UML diagrams enhancements

UML diagrams for Swift and Objective-C classes were introduced in AppCode 2022.2. In this EAP they get a few fixes and improvements. You can now drag items from files in the Project View to the diagram:
Drag and drop on UML

You can also now filter nodes on the diagram by scope (project files, opened files, and so on):
Filter diagram by scope

Inject SQL, HTML, RegExp, and other languages into strings

When coding in Swift, there can sometimes be pieces of code inside string literals, such as SQL strings, HTML code, or regular expressions. Wouldn’t it be nice if an IDE could treat them as code, and not as text? We thought it would, so we’ve made it possible in AppCode!

Language injections let you work with pieces of code inside string literals (for example, with SQL queries or regular expressions), as well as tags or attributes in XML-like languages. To enable it, set the caret on a string, press Alt+Enter, and select the language you want to inject there.

AppCode provides accurate code highlighting based on the language chosen. It also has language-specific intentions and actions, and you can edit a code fragment in the dedicated editor section. For example, for regular expressions you can check whether a string matches the RegExp right in the IDE:
Language injections

Build destinations for Swift packages

For Swift packages, AppCode can now build for macOS and other build destinations like the iPhone, simulators, and more:
Build destinations

Quick-fixes and intention previews

A platform-wide preview for quick-fixes and intentions is now enabled in AppCode. If you call the Quick Documentation (F1) for a selected quick-fix in the Alt+Enter menu, you’ll see how the code is going to be updated with the fix applied:
Intentions preview
Once activated, the preview will appear every time you open the list of available intention actions. To close the preview, press F1 again while the list of intentions is open.

Swift language improvements

With AppCode 2022.3 EAP, you can now easily inline the Swift function and substitute all its usages across the codebase. Use the Inline function refactoring via ⌥⌘N. AppCode will suggest you inlinining all invocations and removing the original function or inlining only the selected invocation and keeping the original function:
Inline function refactoring in Swift

When creating from usage or extracting a property, AppCode now suggest you a choice between var and let property declarations:
Let or var selection

Other improvements:

  • AppCode now supports a shorthand syntax for optional binding.
  • Extracting from static subscript now generates a static method (OC-23073).
  • Smart completion now ignores @autoclosure for assignability (OC-22948).
  • Using Copy Reference on a Swift symbol no longer creates Objective-C code (OC-15741).
  • The Unwrap Optional quick-fix now uses the shorthand syntax for optional binding from Swift 5.7 where possible.
  • Generate init has been fixed to avoid the redundant required keyword for protocol init in struct.
  • Generate equals actions that use a single expression template no longer produce an incomplete return statement (OC-18774).
  • Extracting protocol conformance to extension no longer loses the documentation comments (OC-22923).

The full release notes are available here.

Those who previously used the Kotlin Multiplatform Mobile (KMM) plugin for AppCode may need to manually install the JetBrains Toml plugin from JetBrains Marketplace and ensure they have updated the Kotlin plugin to its latest version.

DOWNLOAD APPCODE EAP

Your AppCode team
JetBrains
The Drive to Develop

image description