DivKit is an open source Server-Driven UI (SDUI) framework.

Overview

DivKit Playground app

GitHub stars

DivKit ๐Ÿ‹ is an open source Server-Driven UI (SDUI) framework. It allows you to roll out server-sourced updates to different app versions. Also, it can be used for fast UI prototyping, allowing you to write a layout once and then ship it to iOS, Android, and Web platforms. DivKit is an excellent choice to start using server-driven UI in your project because it can be easily integrated as a simple view in any part of your app. At the starting point, you donโ€™t need a server integration. You can include all JSON on the client-side to try it in a real-world application.

Also, weโ€™ve made a sandbox for you to experiment with. You can try different samples in the web editor and see the results on the web or in the Android demo app, both of which are available on Google Play. Weโ€™ll publish the iOS demo app shortly. The UI in the demo can be updated live: the sandbox connects to the demo app via web sockets. You can use the DivKit website to find a lot of handy samples and documentation, but feel free to ask us anything here in the comments or via the Telegram community chat.

Documentation | Medium tutorial | Habr tutorial.

Telegram: News | English-speaking chat | ะงะฐั‚ ะฝะฐ ั€ัƒััะบะพะผ.

Twitter

Demo App

Get it on Google Play

Project structure

Client

Client side libraries for rendering UI on Android, iOS and Web.

Android, iOS, Web

Json-builder

Server side libraries for building JSON in DivKit format.

TypeScript, Kotlin

Schema

JSON schema that describes DivKit data format.

Api Generator

Used for generating general Api for all platforms from Schema.

Test data

Samples and test data.

You might also like...
List tree data souce to display hierachical data structures in lists-like way. It's UI agnostic, just like view-model and doesn't depend on UI framework
List tree data souce to display hierachical data structures in lists-like way. It's UI agnostic, just like view-model and doesn't depend on UI framework

SwiftListTreeDataSource List tree data souce to display hierachical data structures in lists-like way. It's UI agnostic, just like view-model, so can

Swift extensions for UIKit.framework.

XUIKit Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation XUIKit is a

The Napp Drawer module extends the Appcelerator Titanium Mobile framework.
The Napp Drawer module extends the Appcelerator Titanium Mobile framework.

Titanium Napp Drawer Module Description The Napp Drawer module extends the Appcelerator Titanium Mobile framework. The module is licensed under the MI

๐Ÿ“น Framework to Play a Video in the Background of any UIView
๐Ÿ“น Framework to Play a Video in the Background of any UIView

SwiftVideoBackground is an easy to use Swift framework that provides the ability to play a video on any UIView. This provides a beautiful UI for login

Flexible UI Framework Designed for Swift

Overlay Overlay is a very flexible UI framework designed for Swift. Note: Overlay is still under development and many things are subject to change. Fe

Shadow - Syntactic sugar for shadows in the SwiftUI framework

Shadow Syntactic sugar for shadows in the SwiftUI framework. import SwiftUI impo

SwiftCrossUI - A cross-platform SwiftUI-like UI framework built on SwiftGtk.

SwiftCrossUI A SwiftUI-like framework for creating cross-platform apps in Swift. It uses SwiftGtk as its backend. This package is still quite a work-i

UI framework that allows developers to integrate an amazing selection interface into their applications

UI framework that allows developers to integrate an amazing selection interface into their applications! Each bubble has a set of parameters, which could be configured individually.

An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps

PeerKit An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps Usage // Automatically detect and attach to

An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps

PeerKit An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps Usage // Automatically detect and attach to

๐Ÿ”Œ  Non-blocking TCP socket layer, with event-driven server and client.
๐Ÿ”Œ Non-blocking TCP socket layer, with event-driven server and client.

Original authors Honza Dvorsky - http://honzadvorsky.com, @czechboy0 Matthias Kreileder - @matthiaskr1 At the request of the original authors, we ask

๐Ÿ”Œ  Non-blocking TCP socket layer, with event-driven server and client.
๐Ÿ”Œ Non-blocking TCP socket layer, with event-driven server and client.

Original authors Honza Dvorsky - http://honzadvorsky.com, @czechboy0 Matthias Kreileder - @matthiaskr1 At the request of the original authors, we ask

๐Ÿ”Œ  Non-blocking TCP socket layer, with event-driven server and client.
๐Ÿ”Œ Non-blocking TCP socket layer, with event-driven server and client.

Original authors Honza Dvorsky - http://honzadvorsky.com, @czechboy0 Matthias Kreileder - @matthiaskr1 At the request of the original authors, we ask

A Kotlin multiplatform library for building dynamic server-driven UI
A Kotlin multiplatform library for building dynamic server-driven UI

Component Box ยท A Kotlin multiplatform library for building dynamic server-driven UI. Material Component-Based Interoperable Dynamic What You See Is W

SwiftUI directed Server Driven UI

Server Driven UI (SDUI) Intentions Make a Server Driven UI module for SwiftUI applications that has a direct use. That way the application maintainer

Server Driven UI can enable faster iterations and allowing apps to instantly update on multiple platforms.

Pets App Server Driven UI can enable faster iterations and allowing apps to instantly update on multiple platforms Steps to run Pets-Web: Download or

Server-driven SwiftUI - Maintain iOS apps without making app releases.

ServerDrivenSwiftUI Maintain ios apps without making app releases. Deploy changes to the server and users will receive changes within minutes. This pa

compiler-driven, structured, type-safe source generation. never use gyb again!

factory 2022-09-10-a factory is a structured, type-safe source generation tool. It is intended to be a replacement for (and improvement over) the gyb

Start your next Open-Source Swift Framework ๐Ÿ“ฆ
Start your next Open-Source Swift Framework ๐Ÿ“ฆ

SwiftKit enables you to easily generate a cross platform Swift Framework from your command line. It is the best way to start your next Open-Source Swi

Comments
  • Can't build android client: Could not install Gradle  from app artifactory.yandex.net

    Can't build android client: Could not install Gradle from app artifactory.yandex.net

    looks like artifactory.yandex.net is not reachable: Could not install Gradle distribution from 'https://artifactory.yandex.net/artifactory/gradle-distributions/distributions/gradle-7.4.1-all.zip'.

    bug 
    opened by Cher80 3
  • divkit website down?

    divkit website down?

    For two days I get when trying to visit your website. I tried using several VPN's. No issue with other websites/services.

    This site canโ€™t be reacheddivkit.techโ€™s DNS address could not be found. Diagnosing the problem. DNS_PROBE_STARTED

    opened by kasperkamperman 2
  • Possible perfomance issue

    Possible perfomance issue

    https://github.com/divkit/divkit/blob/310b5fe043c58433ab2c3e3b61d4568a8050267b/json-builder/typescript/src/helper.ts#L23

    Implementation of Array.shift can be slow

    https://bugs.chromium.org/p/v8/issues/detail?id=12730

    opened by alexey-sh 0
  • Make some suggestions

    Make some suggestions

    Data-driven views have always shone in the web space, like low code, no code, etc.

    What's different about divkit is that it's not just for web, but also for android and iOs, which is cool.

    Speaking from experience in the web domain, the focus of data-driven views is in three directions.

    1. specification of data protocols
    2. building the material ecology
    3. NCLC platform

    When combined with no code, it greatly extends the application area and speeds up view generation.

    Can be a reference. image

    enhancement 
    opened by Tomotoes 0
Releases(21.0.0)
  • 21.0.0(Dec 26, 2022)

    21.0.0

    JSON Schema:

    • Added timers support

    Android Client:

    • Removed warning about element's wrong size in case when it doesn't affect its parent size

    iOS Client:

    • Added timers support

    Web Client:

    • Added timers support
    • Added customization of the link protocols that should be rendered as native link (builtinProtocols)
    Source code(tar.gz)
    Source code(zip)
  • 20.0.0(Dec 19, 2022)

    20.0.0

    Android Client:

    • Updated gradle wrapper to version 7.6
    • Added tapjacking protection
    • Added separation of wrap_content and wrap_content constrained logic

    Kotlin JSON Builder:

    • Updated gradle wrapper to version 7.6
    Source code(tar.gz)
    Source code(zip)
  • 19.0.0(Dec 12, 2022)

    19.0.0

    Android Client:

    • Added backgrounds for ranges of text
    • Added cache for background spans
    • Added implementation of wrapping list control to single item for accessibility
    • Removed redundant layout steps in gallery

    iOS Client:

    • Added custom for rive animations
    • Added memoization for image placeholders

    Web Client:

    Added:

    • mix property for a custom class name
    • customization render property for a desktop gallery

    Fixed:

    • Incorrect container spacing with separators
    Source code(tar.gz)
    Source code(zip)
  • 18.0.0(Dec 5, 2022)

    18.0.0

    JSON Schema:

    • Added Min/max sizes in schema
    • Added type=list to accessiblity
    • Changed command format for timers

    Android Client:

    • Added border support to div-customs
    • Added accessibility hint and mode subscriptions
    • Fixed state patches
    • Fixed exta actions bind
    • Fixed linear layout params
    • Removed module com.yandex.div:div-core-views. Classes moved to com.yandex.div:div
    • Removed Div2Context#div2Component. In order to update global variables use Div2Context#globalVariableController
    • Log and Assert is internal now. Use DivKit class methods in oder to toggle logging and assertions

    iOS Client:

    • Added backgrounds for ranges of text
    • Optimize escaping in expression resolving
    • Fixed getting preview from url starts with data:image/png;base64

    Web Client:

    Added:

    • background and border for the text ranges
    • baseline vertical alignment

    Fixed:

    • Background redraw on variables change (with additional conditions)
    • CSS names conflict on production build, now css classes are longer
    • Artifacts near conrers, if both radius and stroke are used
    • Updated image preview / placeholder logic
    • Fixed tint_mode = multiplyto better match Android logic
    Source code(tar.gz)
    Source code(zip)
  • 17.0.0(Nov 29, 2022)

    17.0.0

    JSON Schema:

    • Added indicator items stretching mode

    Android Client:

    • Added baseline alignment in wrap container
    • Fixed patch applying
    • Fixed crash on invalid patch field
    • Fixed blur when radius is 0

    iOS Client:

    • Fixed redrawing after blur radius changed
    • Fixed slider failure.
    • Fixed height for linear container
    • Fixed line height in wrap container
    Source code(tar.gz)
    Source code(zip)
  • 16.0.0(Nov 29, 2022)

    16.0.0

    Android Client:

    • Added baseline alignment in linear container

    iOS Client:

    • Added blur and tint mode support
    • Added baseline alignment in DivContainer
    • Improved DivErrorsStorage
    Source code(tar.gz)
    Source code(zip)
  • 15.0.0(Nov 29, 2022)

    15.0.0

    JSON Schema:

    • Added div-timer
    • Added zero blur radius support
    • Added border and background for text range

    Android Client:

    • Align elements in wrap container rows by default
    • Added generated method to apply patch
    • Fixed expressions serialization
    • Fixed shadows in DivGallery

    Web Client:

    • Added separators support in DivContainer
    Source code(tar.gz)
    Source code(zip)
  • 14.0.0(Nov 29, 2022)

    14.0.0

    JSON Schema:

    • Added div-blur and div-blur-background
    • Added baseline_alignment to div-container

    Android Client:

    • Added blur implementation
    • Added extensions unbind for DivCustom
    • Added static method for version name
    • Added hyphenation support for DivText with custom ellipsis
    • Fixed DivCustom behaviour in regression tests
    • Fixed overlap DivContainer children size measure
    • Fixed applying paths in Playground
    • Fixed missing ellipses
    • Open url if DemoActivity opened from intent

    iOS Client:

    • Added image blur implementation
    • Added separators support in DivContainer
    • Fixed DivPager last page layout
    • Fixed overlap DivContainer children size measure
    • Fixed memory leak in PinchToZoomExtensionHandler
    • Fixed screen capture for web preview

    Web Client:

    Additions:

    • Added setTheme instance method
    • filters (only blur is supported so far) implemented for the image and image background

    Fixed:

    • Enter handling in multiline input

    TypeScript JSON Builder:

    • Synchronized version number with DivKit version
    Source code(tar.gz)
    Source code(zip)
  • 13.0.0(Oct 31, 2022)

    13.0.0

    JSON Schema:

    • Added tint_mode for images in div-text

    Android Client:

    • Added circle shape
    • Implemented Nine-patch background
    • Implement separators in wrap container
    • Implemented tint_mode for images in div-text
    • Fixed applying patches in demo app
    • Fixed escaping symbols processing in expressions
    • Fixed expression result conversion for string properties

    iOS Client:

    • Updated Lottie dependency to 3.5.0
    • Added Lottie prefetching
    • Combined video and images prefetching
    • Supported nested ternary operator
    • Added rendering time in Playground
    • Fixed pager state change behaviour
    • Fixed Lottie animation strarting
    • Fixed escaping symbols processing in expressions
    • Fixed animations for div-text

    Web Client:

    • Added circle shape support
    • Supported no_animation and native values for the action_animation
    • Supported tint_mode
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v13.0.0-b31-release.apk(15.17 MB)
  • 12.0.0(Oct 25, 2022)

    12.0.0

    JSON Schema:

    • Added Nine-patch background

    Android Client:

    • Added separators in linear layout
    • Fixed text style change after slider position change
    • Fixed invalid view visibility on change state
    • Fixed gallery pages position

    iOS Client:

    • Added text gradient support
    • Implemented Nine-patch background
    • Fixed animation traits

    Web Client:

    • Implemented Nine-patch background
    • Supported for the selected_actions in pager
    • Fixed color values convertion
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v12.0.0-b30-release.apk(15.17 MB)
  • 11.0.0(Oct 18, 2022)

    11.0.0

    JSON Schema:

    • Added cross_spacing support for gallery
    • Added tint_mode for div-image
    • Added separator in DivContainer
    • Added circle shape to schema
    • Updated description for longtap_actions and doubletap_actions

    Android Client:

    Additions and changes:

    • Implemented support external theme in DivContext
    • Implemented tint_mode for DivImage
    • Implemented cross_spacing for Gallery
    • Implemented wrap_content_constrained
    • Added divider between elements in container to schema
    • Added avoid creating DivBorderDrawer if it will not used
    • Added show warning on wrap_content container with match_parent child size Fixes:
    • Fixed list of expressions generating

    iOS Client:

    • Added cross_spacing support in DivGallery.
    • Added radial gradient support.
    • Improved match_parent items behaviour in DivContainer and DivGallery.
    • Fixed invisible items size.
    • Fixed actions handling in Sample app.

    Web Client:

    Additions:

    • Support for the wrap layout mode in a container
    • Support for the cross_spacing property in gallery
    • doubletap_actions and longtap_actions are now supoorted in actionable components
    • Support for the appearance_animation in image
    • Support for the restrict_parent_scroll property in tabs, gallery and pager
    • Root states are now properly supported Changes and fixes:
    • Updated the wrap_content logic, this would lead to a different layout in some corner-cases
    • Boolean values from exressions are now correctly converted to the string false / true in the text block
    • The layout of the slider has been changed to sync with other platforms, now the text offset will not change the size of the component. Also now there may be more than 20 ticks
    • Updated color functions according to the latest changes. Now several of them would return the type color instead of string (rgb, rgba, setColorRed and others)
    • Components will now correctly unregister when destroyed, so recreated elements will work properly (for example, actions to change the current element in the gallery, nested state elements and others)
    • Fixed logic of expression processing Previously, if a string was considered an "expression", it was processed as it, otherwise it would be used as a simple string. But sometimes this check worked incorrectly and processed expressions as a string. This is now fixed. It also means that some strings will now require proper escaping, so be sure to check this in your project (previously,these strings "just worked" without escaping because they were not treated as expressions)
    • Now elements with custom actions can be focused, as it was with simple URLs. This would result to better accessibility in such cases (these elements also accept the keyboard input!)
    • Fixed the visibility of the gallery arrows on desktops in several cases
    • Fixed a case wheretransition_in, transition_out and transition_change incorrectly discarded the alpha component property
    • Component actions will now wait for the result of each of them. This means that you can create an array using 2 actions: one to change the state, and the second to change the created component inside the state
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v11.0.0-b29-release.apk(15.16 MB)
  • 10.0.0(Oct 11, 2022)

    Android Client:

    • Implements alignments in wrap layout
    • Android radial gradient impl
    • Allow patch multiple view with same id
    • Add visibility transition on variable change
    • UI tests for input
    • Warnings on slider ticks overlap each other

    iOS Client:

    • Div deserialization errors tests
    • Android radial gradient impl
    • Fixed Lottie extension params parsing
    • Using RWLock in Atomic implementation.
    • Warnings on slider ticks overlap each other
    • Updated tests

    Web Client:

    • Android radial gradient impl
    • Warnings on slider ticks overlap each other

    TypeScript JSON Builder:

    • Fix templates copying and export SafeExpression
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v10.0.0-b27-release.apk(15.20 MB)
  • 9.0.0(Oct 3, 2022)

    JSON Schema:

    • Clarification of wrap container documentation
    • Added radial gradient schema

    Android Client:

    Additions and changes:

    • Implemented WrapLayout - layout with transfer of elements to the next line if they don't fit in the previous one
    • Implemented showing of rendering time in demo activity
    • Improved snapshot tests Fixes:
    • Fixed concurrent modification of variables
    • Fixed tint_color observing on element's rebind
    • Fixed lottie resources providing for tests

    iOS Client:

    • Added Swift Package Manager support
    • Fixed concurrency issues in DivStateManager and DivVariablesStorage
    • Improved DivContainer height calculation
    • Improved snapshot tests

    Web Client:

    Added:

    • radial_gradient support
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v9.0.0-b25-release.apk(15.19 MB)
  • 8.0.0(Sep 26, 2022)

    Android Client:

    Additions and changes:

    • Added image change subscription
    • Moved observeTintColor into bind method
    • Refactored DivBorderDrawer
    • Parsing patch from JSON
    • Changed host tag
    • Disabled bind on attach
    • Implemented replacing of link or json when paste from buffer in demo-app
    • Supported true/false literals into variables
    • Bind input type for accessibility Fixes:
    • Fixed regression screen at release builds of demo-app
    • Fixed image blinking on rebind
    • Fixed text alignment in input when rtl enabled
    • Fixed extensions reuse

    iOS Client:

    Additions and changes:

    • Added true/false values support in set_variable actions
    • Added wrap mode in DivContainer
    • Added interactive snapshot tests
    • Improved public API
    • Improved dark mode in DivKit Playground
    • Updated bool values parsing in set_variable actions Fixes:
    • Fixed transition animations
    • Fixed DivContainer error messages

    Web Client:

    Additions and changes:

    • BooleanInt props now accepts booleans too
    • Implemented boolean values for boolean variables
    • Reworked container layout
    • Added package tests
    • Downgraded babel-preset-jest, so it is possible to run divkit tests with an older version of the node.js Fixes:
    • Fixed zero-values in action_animation
    • Fixed grid recalculation
    • Fixed layout of pager child elements when their size is too small

    Kotlin JSON builder

    Addition:

    • Implemented flags for hash files
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v8.0.0-b24-release.apk(15.17 MB)
  • 7.0.0(Sep 19, 2022)

    Android Client:

    Additions and changes:

    • improve actions binding
    • cover generator with tests Fixes:
    • use public gradle distribution url

    iOS Client:

    • Added test data into DivKit Playground
    • Added color themes support in DivKit Playground
    • Added DivInput tests
    • Improved public API
    • Fixed DivInput keyboard behavior
    • Fixed boolean values serialization

    Web Client:

    Addition:

    • transform is now supported for the base component
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v7.0.0-b23-release.apk(15.17 MB)
  • 6.0.0(Sep 14, 2022)

    6.0.0 (September 12, 2022)

    Android Client:

    Additions and changes:

    • Supported rotation transformation
    • Switched to new API Generator Fixes:
    • Fixed build configuration

    iOS Client:

    • Added LottieExceptionHandler
    • Added focus support in DivInput
    • Renamed DivKit Demo to DivKit Playground
    • Fixed DivData states transition
    • Fixed visibility actions for transitioning blocks
    • Fixed text alignment in DivInput
    • Fixed camera initialization in DivKit Playground
    • Improved parseDivData methods in DivKitComponents
    • Improved Sample app

    Web Client:

    • Updated input to sync with the schema, also fixed text_color and height
    • Fixed the behavior of transition_in / transition_out (when to start and when not to start animation)
    • Fixed the default value of variable_trigger.mode
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v6.0.0-b22-release.apk(15.25 MB)
  • 5.0.0(Sep 14, 2022)

    5.0.0 (September 5, 2022)

    JSON Schema

    Fixes:

    • Minor fixes in documentation

    Android client

    Changes and additions:

    • Added code samples to sample app
    • Added README
    • Minor UI tweaks in Playground app

    iOS client

    Changes and additions:

    • Added sample app
    • Supported alignment, max_visible_lines and select_all_on_focus for div-input
    • Minor UI tweaks in Demo app
    • Text selection in div-input can be cleared by tap to outside area

    Fixes:

    • Fixed scale animation with zero factor
    • Fixed text selection in multiline inputs

    Web client

    Changes and additions:

    • Messages of expression parsing errors made more informative
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v5.0.0-b81-release.apk(15.15 MB)
  • 4.0.0(Aug 30, 2022)

    4.0.0 (August 29, 2022)

    JSON Schema

    Changes and additions:

    • Added translations for property descriptions
    • max_lines renamed to max_visible_lines

    Android client

    Changes and additions:

    • Redesigned demo activity in Playground app
    • Removed unnecessary permissions for Playground app
    • Removed theme setting from Playground app
    • Updated Playground app icon
    • Added sample app

    Fixes:

    • Fixed flickering during video loading

    iOS client

    Changes and additions:

    • text_variable, highlight_color and keyboard_type support in DivInput
    • Demo app refactoring and redesign

    Web client

    Fixes:

    • Fixed action_animation on iOS

    Kotlin JSON builder

    Fixes:

    • Fixed serialization of overloaded template properties
    Source code(tar.gz)
    Source code(zip)
    divkit-demo-app-v4.0.0-b20-release.apk(20.50 MB)
๐Ÿ’ปThis is an open source project of the Windows 11 desktop client implemented using SwiftUI.

?? ??This is an open source project of the Windows 11 desktop client implemented using SwiftUI.

ๆ™‹ๅ…ˆๆฃฎ 173 Jan 2, 2023
URLEmbeddedView automatically caches the object that is confirmed the Open Graph Protocol.

URLEmbeddedView Features Simple interface for fetching Open Graph Data Be able to display Open Graph Data Automatically caching Open Graph Data Automa

Taiki Suzuki 643 Dec 20, 2022
Protocol oriented, type safe, scalable design system foundation swift framework for iOS.

Doric: Design System Foundation Design System foundation written in Swift. Protocol oriented, type safe, scalable framework for iOS. Features Requirem

Jay 93 Dec 6, 2022
A child view controller framework that makes setting up your parent controllers as easy as pie.

Description Family is a child view controller framework that makes setting up your parent controllers as easy as pie. With a simple yet powerful publi

Christoffer Winterkvist 246 Dec 28, 2022
Material, a UI/UX framework for creating beautiful iOS applications

Material Welcome to Material, a UI/UX framework for creating beautiful applications. Material's animation system has been completely reworked to take

Cosmicmind 12k Jan 2, 2023
Neumorphism framework for UIKit.

NeumorphismKit is neumorphism framework for UIKit. Requirements iOS 12.0+ Swift 5.1+ Versions NeumorphismKit version Xcode version 1.0.0 Xcode 11+ 1.1

y-okudera 42 Dec 13, 2022
Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, gantt chart or timetable as if you are using Excel.

kishikawakatsumi/SpreadsheetView has moved! It is being actively maintained at bannzai/SpreadsheetView. This fork was created when the project was mov

Kishikawa Katsumi 34 Sep 26, 2022
Lightweight framework for Unsplash in Swift

Lightweight framework for Unsplash in Swift

Pablo Camiletti 12 Dec 30, 2022
A framework which helps you attach observers to `UIView`s to get updates on its frame changes

FrameObserver is a framework that lets you attach observers to any UIView subclass and get notified when its size changes. It doesn't use any Method S

null 11 Jul 25, 2022