divkit

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

Downloads
11.8K
Stars
2.1K
Committers
75

Bot releases are hidden (Show)

divkit - 25.4.1

Published by peasemaker over 1 year ago

Android Client:

  • Fixed video player engine disconnecting from view when any activity stopped
divkit - 25.4.0

Published by peasemaker over 1 year ago

Android Client:

  • Added regex validator for div-input
  • Added support of disappear actions
  • Added support of text alignment to div-input
  • DivStorage forwards IllegalStateExceptions to LoadDataResult now

iOS Client:

  • Supported resume, pause, fatal actions in DivVideo
  • Supported disappearing actions

Web Client:

Added:

  • Supported dict variable type
divkit - 25.3.0

Published by grechka62 over 1 year ago

JSON Schema:

Additions:

  • Added text_alignment_ properties for div-input

Android Client:

Additions:

  • Added disappear_actions
  • Added DivCustomContainerViewAdapter with DivStatePath propagation to implementations

Fixes:

  • Fixed DivSelect line height
  • Fixed permanent destroying video manager on view detach
  • Fixed big corner radius drawing

iOS Client:

Additions:

  • Added fixed_length mask for DivInput
  • Added margins for separators in DivContainer

Web Client:

Added:

  • New content alignments in the container: space-between, space-around, space-evenly
  • font_family property is now supported in the different components. Keep in mind, for this property to work, you need to provide a typefaceProvider
  • margins for a container separators are now supported

Kotlin JSON Builder:

  • Supported properties from scheme up to 25.2.0
divkit - 25.2.0

Published by grechka62 over 1 year ago

JSON Schema:

Additions:

  • Added disappear_actions
  • Added new variable type: dict
  • Added new types of content-alignment: space-between, space-around, space-evenly
  • Added new property of container separators: margins

Android Client:

Additions:

  • Supported multiple RenderScript contexts

Fixes:

  • Fixed patch applying to pager
  • Fixed animation of disappearing views
  • Fixed black screen and state saving after detach in video-custom
  • Fixed black screen at the end of playback after onPause
  • Fixed VariableController potential memory leaks

iOS Client:

Fixes:

  • Fixed cursor offset in DivInput
  • Deserialization optimization

Web Client:

Additions:

  • disappear_actions is now supported
  • Added a new video component
divkit - 25.1.0

Published by grechka62 over 1 year ago

JSON Schema:

Additions:

  • Added pause_actions and fatal_actions to div-video

Changes:

  • Combined stream and video source types in div-video

Android Client:

Additions:

  • Supported DivVideo

Fixes & Changes:

  • Fixed center alignment of elements with margins in containers
  • Rolled back of DivCustomContainerViewAdapter
  • Fixed double closing of DivStorage database on cards removing
  • Extended API of DivPlayer.Observer
  • Fixed array validation at JSON parsing

iOS Client:

Additions:

  • Supported DivVideo

TypeScript JSON Builder:

Updates:

  • Optimized rewriteTemplateVersions
divkit - 25.0.0

Published by 4eb0da over 1 year ago

JSON Schema:

  • Added input valdator
  • Moved input mask's raw_text_variable into the base mask

Android Client:

Fixes:

  • Fixed crash at hardware accelerated bitmap animation
  • Fixed binding indicator with pager within gallery items
  • Fixed various DivStorage concurrency issues
  • Fixed various currency input mask issues

iOS Client:

  • Removed metal, selecting feature flags
  • Supported getValue functions
  • Supported stretch parameter for DivImage

Web Client:

Additions:

  • Supported expressions in tabs title
  • Added currency mask for the input

Fixes:

  • Fixed select sizes, paddings and other size-related properties
  • Fixed select hint show logic to match other platforms
  • Fixed several cases with incorrect json processing (color is not a string, etc)
  • Changed actions without url processing logic to match other platforms (previusly they was ignored as incorrect)
  • Fixed input cursor logic for the Safari (for the iOS in partucular)
divkit - 24.3.0

Published by Ceramic00 over 1 year ago

JSON Schema:

Additions:

  • Added div-video.json to schema
  • Actualized supported features on Android

Android Client:

Additions:

  • Added the ability to stretch background images without saving aspect ratio
  • Added z-order modes for video-custom

Fixes:

  • Fixed redundant re-measurement in an overlapping container
  • Fixed incorrect name of the Linear Layout class in accessibility mode
  • Fixed deletion and insertion bugs in fixed_length input masks
  • Added workaround for bug in View.isLaidOut

iOS Client:

Additions:

  • Implemented select component

Web Client:

Additions:

  • extensions support
  • SizeProvider extension
  • Lottie extension
  • Implemented select component
  • Implemented an input mask for a text with a fixed number of characters

Fixes:

  • Fixed markup update after url change in the action
divkit - 24.2.0

Published by Ceramic00 over 1 year ago

JSON Schema:

Additions:

  • Added stretch image scale type
  • Added div-select.json to schema
  • Added currency mask schema

Changes:

  • Moved raw_text_variable to input mask
  • Updated platforms field in schema

Android Client:

Additions:

  • Implemented wrap_content constrained size for gallery items
  • Implemented stretch image scale type
  • Implemented aspect-based height for vertical and horizontal containers

Fixes & Changes:

  • Fixed base sizes for wrap_content constrained in linear container
  • Skip paddings when content does not fit into container
  • Allowed DivCustom childView creation from any thread
  • Disabled incorrect child height warning when aspect-based size is defined
  • Improved DivImage preview performance
  • Fixed error counter breaking overlap container with match_parent height
  • Fixed expression evaluation cache
  • Fixed linear container accessibility

iOS Client:

  • Removed TemplateSupport module.

Web Client:

Additions:

  • stretch image scale type
  • Ability to build custom DivKIt lib with a limited set of components and disabled expressions

Fixes:

  • no_scale image scale type should now work properly

Kotlin JSON Builder:

Changes:

  • Changed Int to Long
divkit - 24.1.0

Published by vyaivanove over 1 year ago

JSON Schema:

Fixes & Changes:

  • Removed selection input schema
  • Updated platforms field in schema

Android Client:

Additions:

  • Implemented aspect height in wrap container

Fixes & Changes:

  • Made gallery scroll slower
  • Removed observers in clearBinding method
  • Fixed visibility animations on disappear
  • Fixed triggering changes after variable declaration

iOS Client:

Additions:

  • Added aspect support for vertical wrap container

Fixes & Changes:

  • Made solid and gradient background behaviors the same
  • Made initializer for gradient failable
  • Passed elements errors in DeserializationResult for templates
  • Replaced fatalError with assertionFailure where possible
  • Removed selection input implementation

Web Client:

Fixes:

  • The aspect property in the container should work better in combination with the height property
divkit - 24.0.0

Published by ttokarev over 1 year ago

JSON Schema:

  • Added raw_text_variable for div_input
  • Added new keyboard type

Android Client:

Breaking changes:

  • Changed Int to Long
  • Inherit Div2View from FrameContainerLayout

Additions:

  • Added new keyboard type
  • Added getValue functions
  • Added size_provider extension

Fixes & Changes:

  • Replaced DivSnappyRecyclerView with DivRecyclerView + PagerSnapHelper
  • Optimization AND expression
  • Opt-in primary constructors of div models
  • Fixed crash on set_state in trigger actions

iOS Client:

Additions:

  • Added new keyboard type

Fixes & Changes:

  • Increased support version for iOS to 11
  • Increased size of Integer
  • Removed selection input method into DivInput
  • Renamed base modules
  • Fixed string arrays parsing
  • Fixed DivGallery actions handling
  • Fixed CFString parsing
  • Fixed shimmer-view block reuse
  • Fixed constrained logic in wrap container

Web Client:

Breaking changes:

  • The setVariable / GetVariable methods have been removed (these methods were deprecated long time ago before opensource, in web version 1.11.0)
  • DivKit now uses BigInt internally if it is supported by the current platform. This also means that variable methods such as subscribe can now return bigint values instead of number (and accept such values in json). integer values in expressions are now limited to 64 bits instead of 32, and the minimum/maximum value for integer variables has been changed. Note that outside of expressions, DivKit restricts values to 32-bit integers, as was the case in previous versions. Also note that the js builtin methods, such as JSON.parse, return a simple number, so these values may lose accuracy outside the logic of DivKit. Make sure that your values are in the range -2^53 — 2^53 or a custom json parsing function is used

Kotlin JSON Builder:

  • Added new keyboard type
divkit - 23.7.0

Published by ttokarev over 1 year ago

Android Client:

Additions:

  • Added cache for expressions

Fixes:

  • Fixed concurrent modification exception in div storage
  • Fixed IndexOutOfBoundsException in DivGallery
  • Fixed declaration of new local variables
  • Fixed scroll view for demo-app

iOS Client:

  • Added overflow parameter support in actions for DivTabs
  • Allowed zero duration

Web Client:

  • Removed missing template field warning
divkit - 23.6.0

Published by lunarstill over 1 year ago

Android Client:

Additions:

  • Added format date function
  • Added trigger logging

Fixes:

  • Fixed image preview
  • Fixed ripple animation duplication
  • Fixed alignment in DivGallery

iOS Client:

  • Added overflow parameter support in div-action for DivPager navigation.
  • Fixed constrained element size calculation inside DivContainer.
  • Fixed MetalImageView images rendering.

Web Client:

Additions:

  • toUrl / toColor functions
divkit - 23.5.0

Published by lunarstill over 1 year ago

Android Client:

Additions:

  • Sampling for div-blur
  • Masks for div-input
  • Cache for evaluated expressions

Fixes and changes:

  • fixed image binding perfomance

iOS Client:

  • added selection input method into DivInput.
  • added error level into externalLogger.
  • fixed DivImage layout trait check.

Web Client:

Additions:

  • Functions for getting datetime components
  • Functions for getting value of a variable, if it exists. getStringValue, getIntegerValue, etc

Fixes and changes:

  • timers ticks should now be more accurate and reliable. Time intervals would correct time error, there is also an extra tick before end the duration if the ticks doesn't trigger in time
  • visibility_action actions will now evaluate expressions on the trigger, and not when the creating the component
divkit - 23.4.0

Published by villanellex2 over 1 year ago

Android Client:

Added:

  • Added shimmer extension
  • Supported aspect ratio in overlap container
  • Supported min/max sizes for containers with wrap_content constrained size

Fixes:

  • Fixed timers in Div2View inside RecyclerView
  • Fixed ellipsize containing image span
  • Fixed focus when accessibility is turned on
  • Fixed transition_animations in state layout

iOS Client:

Added:

  • added images support for ellipsis in DivText

Fixes:

  • fixed alignment inside wrap DivContainer
  • fixed views reuse in DivContainer
  • fixed concurrency issues in DivTriggersStorage
  • fixed transition animations inside DivGallery/DivPager

Web Client:

Added:

  • aspect support for container (aspect-ratio css property support is required!)

Fixes:

  • Updated missing function error text, to better match other platforms
  • Fixed error in gallery after destroy
  • Fixed element wrap_content sizes with constrained in grid
divkit - 23.3.0

Published by vastausf over 1 year ago

Android Client:

  • Fixed algorithm of indicator attach to specified pager
  • Fixed accessibility type binding for gallery
  • Fixed NPE in DecodeBase64ImageTask

iOS Client:

  • Fixed corners in DivIndicator
  • Fixed wrapped DivContainer layout
divkit - 23.2.0

Published by grechka62 over 1 year ago

Android Client:

  • Added support of max_size property
  • Added support of wrap_content size with constraints
  • Added border to indicator
  • Added sharing non-local variables between contexts
  • Fixed filters not being applied to image preview
  • Fixed visibility change of gallery items

iOS Client:

  • Added SizeProviderExtensionHandler
  • Added plus operator support for strings
  • Fixed last tick action in DivTimer
  • Fixed text selection in DivInput
  • Fixed multithreading in DivVariableStorage
divkit - 23.1.0

Published by grechka62 over 1 year ago

Android Client:

  • Added time interval functions
  • Added support of shape properties to slider

iOS Client:

  • Added functions for DateTime
  • Fixed padStart/padEnd functions

Web Client:

Added:

  • indicator can now be rendered in two ways, placement field is now supported
  • indicator can now have a border inside every point, shape objects have been updated to support background_color and border properties. Several fields in indicator are now deprecated, including space_between_centers, inactive_item_color, active_item_color, shape and active_item_size. Shape objects support in slider was also updated

Fixed:

  • padStart / padEnd now will work properly with an empty pad_str argument
  • Default width match_parent should work more predictable in rare cases
  • separator and line_separator in container now will not block clicks and other events on component and it's descendants
  • constrained size logic in rare cases
divkit - 23.0.0

Published by grechka62 over 1 year ago

JSON Schema:

  • Added div-shape-base to div-circle-shape

Android Client:

  • Added support of timers
  • Added div-indicator style based on div-rounded-rectangle-shape
  • Added subscription to image preview changes
  • Fixed border clipping in transition animations
  • Fixed patch application to child of container with id

iOS Client:

  • Added ShimmerImagePreviewExtension
  • Added aspect size support in DivContainer
  • Added batch actions handling, DivActionURLHandler.UpdateCardAction refactoring

Web Client:

Fixed:

  • image preview size and filters support
  • gallery arrows on the desktop should now appear faster

TypeScript JSON Builder:

  • Speed up object walking in several operations
divkit - 22.0.0

Published by peasemaker over 1 year ago

JSON Schema:

  • Added aspect in div-container
  • Added background_color and stroke in div-rounded-rectangle-shape

Android Client:

  • Added extension for Rive animations
  • Added function to get time component from datetime
  • Fixed layout of linear container children with match parent size
  • Fixed background blur radius updating by variable

iOS Client:

  • Added border in DivIndicator
  • Added minSize/maxSize for constrained elements
  • Added CustomImagePreviewExtensionHandler
  • Added errors view in DivKit Playground

Web Client:

Fixes:

  • Fixed tint_color update for Safari
divkit - 21.1.0

Published by lunarstill almost 2 years ago

JSON Schema:

  • updated translations

Android Client:

  • Fixed baseline alignment in linear container
  • Fixed minor layout issues
  • Fixed rare crash when animating not laid out view
  • Clear warnings after setting new data to Div2View

iOS Client:

  • Added functions for time intervals
  • Added padStart, padEnd functions
  • Added stretching DivIndicator support
  • Fixed temporary param in set-state action
  • Fixed DivSlider thumbs
  • Fixed nowLocal function

Web Client:

Added:

  • min_size / max_size for the wrap_content size
  • Functions padStart / padEnd
  • Functions for time intervals

Changed:

  • Allow wrap_content size for the galleries on the main axis
  • Fixed timers start with incorrect values