Flutter SDK v0.18.0 released

Today we're releasing v0.18.0 of the TalkJS Flutter SDK. This release keeps the SDK compatible with upcoming changes across the iOS and Android ecosystems, and brings various API refinements.

Platform compatibility

This release adds support for:

  • Swift Package Manager (SPM). CocoaPods is moving to a read-only state this December, so this migrates our dependencies to SPM ahead of that change.
  • iOS UIScene, which is needed to stay compatible with Apple's latest platform requirements.
  • Android Gradle Plugin 9+ to keep the SDK current with the latest Android tooling.

As part of this work, we also forked and updated flutter_apns_only, a push notification dependency, to bring it up to date with Swift Package Manager and UIScene support.

Because supporting Swift Package Manager requires a higher minimum Flutter version, this is a breaking release. See the breaking changes list for what to update. 

With these dependency updates, the minimum requirements are now:

  • Dart SDK 3.10.0+
  • Flutter SDK 3.38.0+
  • Android API Level 24 (Android 7.0)+

API and behavior changes

This release also bundles in a few other additions and breaking changes at the same time, rather than spreading them across multiple releases. These include:

Added

  • Added customEmojis, onLeaveConversation, and onMarkConversationAsUnread to the Chatbox widget.
  • Added participants property to the ConversationData type.

Breaking changes

  • MessageType, ParticipantAccess, ParticipantNotification, and ConversationAccessLevel have been refactored. Note that MessageType was previously defined in two separate places; it's now unified into one, removing duplication.
  • Renamed conversationData property to conversation in ConversationActionEvent, for consistency across SDKs.
  • Renamed BaseMessagePredicate to SimpleMessagePredicate, and BaseConversationPredicate to SimpleConversationPredicate, aligning with other SDKs.

Check out the Flutter SDK documentation for full details.