DivKit is an open source Server-Driven UI (SDUI) framework. SDUI is a an emerging technique that leverage the server to build the user interfaces of their mobile app
OTHER License
div-custom
patching.ImageBlock
. Previously MetalImageView.swift
was the only option. Now using DivFlagsInfo
- we can set imageBlurPreferMetal: Bool
or imageTintPreferMetal: Bool
to false, and RemoteImageView.swift
will be used instead (with new way to render). By default behaviour stays the same as before.Published by robot-divkit about 1 month ago
accessibility
for images inside text. (from version 30.14)alignment_vertical
for ranges
and images
elements.getBoolean, getDict ...
You can use them in evaluable expressions like that dict_var.getBoolean(path_to_var)
.div-action-show-tooltip
that can be used instead of div-actino://show_tooltip
.div-action-timer
that can be used instead of div-action://timer
.div-action-video
that can be used instead of div-action://video
.DivDownloader
to DivConfiguration
.Published by vyaivanove about 2 months ago
container
ignore margins.div-input
text fields.div-input
using regexp or expressions.Published by divkit about 2 months ago
Published by divkit 2 months ago
variables
field.DivCustomContainerChildFactory#bindChildView
. Use a new method implementation with childIndex
param instead. Otherwise, local variables inside custom containers wouldn't work.accessibility
for images inside text.set_stored_value
action.markdownExtensionBuilder
function, which accepts the markdown processing function and produces a markdown
extension.getComponentProperty
extension API.Published by divkit 2 months ago
next_focus_ids.forward
supports accessibility order.div-gallery
in paging
scroll mode will be centered like in other platforms.DivData
moved to another Div2View
.grid
, in which elements are superimposed on each other to match the behavior of Android.transition_change
has been brought into line with other platforms: with this change, there is no need to contain the transition_change
property in the final state. In addition, parameters from the previous state will be used, not from the new one.auto_ellipsize
property in the presence of max_lines
for the text
component.Published by divkit 3 months ago
layout_provider
property.div-patch.on_applied_actions
and div-patch.on_failed_actions
.shimmer
extension.pager
not switching in accessibility.item_builder
for pager and gallery.Published by divkit 3 months ago
reuse_id
field. Use reuse_id
for more efficient reuse of items with same structure in gallery
/pager
.Published by divkit 3 months ago
div-stroke.width
a number.VideoBlock
.Published by divkit 3 months ago
shadow
rotation if div
uses transform
.div-gallery
.div-base.layout_provider
.DivLastVisibleBoundsCache
.Published by 4eb0da 4 months ago
DivMarkdownExtensionHandler
to support markdown
extension for text
.gallery
.shimmer
extensionplayer.seek
call in VideoBlock
.variable_triggers
evaluation.Published by divkit 4 months ago
fontWeightValue
id
property in div-collection-item-builder.prototype
.ExpressionResolver
.DivVariableTracker
state made public.top_offset
mutation for incoming data in the text
component.Published by divkit 4 months ago
index
variable for prototyped elements.DivVariableStorage.hasValue
method.font_weight_value
support.id
property into div-collection-item-builder.prototype
.hitTest
implementation into StateBlockView
to pass through touches.font_weight_value
in text
, input
, slider
and select
.index
variable for prototyped elements.Published by divkit 4 months ago
page_transformation
in pager
.pager
with infinite scroll after items changing.tooltip
on cleanup.Div2View
state reset that resulted in broken expression subscriptions.okhttp
library updated to version 4.11.0SynchronizedWeakHashMap.toMap()
due to race issues.index
variable for prototyped elements.array_set_value
action.Published by divkit 4 months ago
pager
page size evaluation. Now all the pages are the same size, the same as on other platforms.pager
when more then 2 pages is visible.array_set_value
action.dict_set_value
action.containsKey
method for dictionaries.input
paddings.scrollRange
in GalleryViewState
.array_set_value
action.dict_set_value
action.containsKey
method for dictionaries.dict_set_value
action.containsKey
method for dictionaries.Published by divkit 5 months ago
gallery
items
wrapped within container
.tab_title_delimiter
property support for tabs
.input
if some clickable div were clicked.z
/Z
patterns restriction from datetime formatting functions.max_length
property support for input
.gallery
when count of items
was less then column_count
.font_feature_settings
property for div-text
.gallery
.font_feature_settings
property for div-text
.z
/Z
patterns restriction from datetime formatting functions.container
.text
property top_offset
and ranges intersection.processExpressions
and execAction
.gesture
extension.disappear_actions
after instance destruction.data
directly inside item_builder
, its expressions are no longer executed.z
/Z
patterns in datetime formatting functions.max_length
property support for input
.font_feature_settings
property for text
.Published by divkit 5 months ago
div-text
.default_item
in gallery
.is_enabled
in actions
before executing the entire list of actions, not in the process.toString
function and method for arrays and dicts.parseUnixTimeAsLocal
, formatDateAsLocal
, formatDateAsUTC
, formatDateAsLocalWithLocale
, formatDateAsUTCWithLocale
and the weekStartDay
parameter.Published by divkit 5 months ago
Published by divkit 5 months ago
StandardExoDivPlayerView
and ZoomExoDivPlayerView
replaced with common ExoDivPlayerView
ExoDivMediaSourceAbstractFactory
, ExoDivPlayer
(accessible by interface DivPlayer
), ExoDivPlayerView
(accessible by interface DivPlayerView
)isCompatibleWithNewParams(scale: DivVideoScale)
from DivPlayerView
makePlayerView(context: Context, additional: Map<String, Any>)
from DivPlayerFactory
ExpressionResolver
in DivActionHandler
, Div2Logger
, DivExtensionHandler
and custom
classes.gesture
extension that allows to perform div-actions when swipe gesture happens at specified div.item_builder
property support in the container
component.svg
support to all DivImageLoaders
releaseMedia()
method of Div2View
.Div2View
is_enabled
in actions
before executing the entire list of actions, not in the process.123.toString()
.ExpressionResolver
from resolveString(_ expression: String) -> String
to resolveString(_ expression: String) -> String?
.DivStateInterceptor
and corresponding implementation DivStateInterceptorImpl
was removed. Please use DivExtensionHandler
instead.DivActionURLHandler.updateReason
has been changed.DefaultDivActionLogger
(replaced with EmptyDivActionLogger
). DivActionLogger
became deprecated, use DivReporter
for actions tracking.DefaultShimmerViewFactory
.DivVariablesStorage.ChangeEvent.oldValues
due to performance issues.urlOpener
argument from DivKitComponents
initializer. Use urlHandler
instead.UserInterfaceAction.Payload.composite
.UserInterfaceAction.Payload.json
.ShimmerImagePreviewExtension
.variable_triggers
lead to execution of a callback onStat
with type = trigger
.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
.
Published by divkit 6 months ago
releaseMedia()
method of Div2View
.String
with CharArray
at expression tokenization process.DivVideo
may cause IllegalArgumentException
.video
screen could show up before preview
was rendered.toString
method/function for arrays and dictionaries.DivBlockStateStorage
.toString(string)
function.scale
support in Lottie animation.len
function for arrays.elapsed_time_variable
is not set.set_stored_value
along with the function getStoredStringValue
and others.disappear_actions
when destroying a component (for example, when hiding a tooltip).is_enabled
for input
.toString(string)
function.toString
, getString
, getBoolean
, getInteger
, getNumber
, getUrl
, getColor
, getDict
, getArray
.menu_items
property inside action
s (with a additional customization
properties menuPopupClass
and menuItemClass
).longtap_actions
and simultaneous actions
and longtap_actions
processing.