Skip to content

30.0.0

Compare
Choose a tag to compare
@divkit divkit released this 13 May 16:24

Android Client:

  • Breaking change: Classes StandardExoDivPlayerView and ZoomExoDivPlayerView replaced with common ExoDivPlayerView
  • Breaking change: Classes removed from public API: ExoDivMediaSourceAbstractFactory, ExoDivPlayer (accessible by interface DivPlayer), ExoDivPlayerView (accessible by interface DivPlayerView)
  • Breaking change: Removed method isCompatibleWithNewParams(scale: DivVideoScale) from DivPlayerView
  • Breaking change: Removed method makePlayerView(context: Context, additional: Map<String, Any>) from DivPlayerFactory
  • Breaking change: Use explicitly passed ExpressionResolver in DivActionHandler, Div2Logger, DivExtensionHandler and custom classes.
  • Breaking change: Restricted variable names with consecutive dots and with a trailing dot.

  • Added gesture extension that allows to perform div-actions when swipe gesture happens at specified div.
  • Added item_builder property support in the container component.
  • Added svg support to all DivImageLoaders
  • Added ability to forcibly release video players by releaseMedia() method of Div2View.
  • Added Jetpack Compose interoperability for Div2View
  • Calculate is_enabled in actions before executing the entire list of actions, not in the process.
  • Do not set new border or background when it has no changes.
  • Fixed text height calculation when line height specified explicitly.
  • Fixes for complex rebind algorithm
  • Old visibility actions are no longer logged after Div2View was rebound.
  • Supported methods in evaluable expressions, such as 123.toString().
  • TextureView is now a default view for DivVideo.

iOS Client:

  • Breaking change: Changed method signature in ExpressionResolver from resolveString(_ expression: String) -> String to resolveString(_ expression: String) -> String?.
  • Breaking change: Protocol DivStateInterceptor and corresponding implementation DivStateInterceptorImpl was removed. Please use DivExtensionHandler instead.
  • Breaking change: public API for DivActionURLHandler.updateReason has been changed.
  • Breaking change: Removed DefaultDivActionLogger (replaced with EmptyDivActionLogger). DivActionLogger became deprecated, use DivReporter for actions tracking.
  • Breaking change: Removed DefaultShimmerViewFactory.
  • Breaking change: Removed DivVariablesStorage.ChangeEvent.oldValues due to performance issues.
  • Breaking change: Removed urlOpener argument from DivKitComponents initializer. Use urlHandler instead.
  • Breaking change: Removed UserInterfaceAction.Payload.composite.
  • Breaking change: Removed UserInterfaceAction.Payload.json.
  • Breaking change: The signatures of the setSource functions have been changed: they are now marked as async to reduce main thread locks.

  • The minimum version of the DivKit has been increased to iOS 13.
  • Disallowed variable names with consecutive dots or with trailing dot.
  • Double quotes are no longer supported in string literals.
  • Fixed animation in gallery.
  • Fixed numbers to string casting in expressions.
  • Fixed position of gallery element after scrolling with action.
  • Fixed unary minus operator parsing.
  • Fixed validation in expressions.
  • Fixed view reuse in ShimmerImagePreviewExtension.

Web Client:

  • Breaking change: actions from variable_triggers lead to execution of a callback onStat with type = trigger.

  • Disallowed variable names with consecutive dots or with trailing dot.

Kotlin JSON Builder:

  • Changed the way of how primitive array elements are added.

This change supports usage of expressions in array elements. As for now, primitive array elements (e.g., transition triggers, gradient backgrounds) must be
wrapped with either divkit.dsl.core.valueArrayElement ordivkit.dsl.core.expressionArrayElement.