v2.3.0
- Server-driven Dynamic Widgets — Dynamic Widgets can now fetch their own props from your server on a schedule, per placement, instead of relying on the app to push updates.
- Configurable widgets on Android — each placed widget can hold its own settings (e.g. one showing London, another New York) via
setWidgetInstanceConfiguration, and those settings now survive a launcher backup/restore. - Dynamic Live Activities (experimental, iOS) — Live Activities can now be driven with small JSON prop updates instead of a full re-rendered payload each time, with hot reload while you build.
ArcProgressIndicatorfor Android — a new determinate arc gauge widget component, with configurable stroke width, angles, rounded/flat ends, and gradient fills.
What's Changed
- feat(ios): add dynamic Live Activities by @V3RON in #239
- docs(v2): trim, dedupe, and split the docs for clarity by @V3RON in #241
- fix(cli): apply iOS changes per build configuration by @V3RON in #245
- feat(cli): accept per-build-configuration iOS values by @V3RON in #246
- docs(v2): document per-build-configuration iOS values by @V3RON in #247
- ci: run CI on pull requests targeting any base branch by @V3RON in #258
- fix(android): support widgets on Android 7.0-11 (API 24-30) by @V3RON in #250
- fix(android): guard the API 26 notification builder and declare the real minSdk floor by @V3RON in #251
- fix(android): guard the remaining NewApi lint findings by @V3RON in #252
- ci(android): run Android Lint and let it fail the build by @V3RON in #254
- fix(android): always emit widget minWidth and minHeight by @V3RON in #253
- feat(android): support widget resize bounds by @V3RON in #256
- fix: derive Voltra version from package metadata by @V3RON in #238
- fix(ios): keep last server response across widget timeline reloads by @V3RON in #260
- fix(android): widget receiver if applicationId differs from namespace by @Minishlink in #259
- fix(android): resolve widget kind before updates and isolate Dynamic placeholder reads by @V3RON in #261
- refactor(android)!: split payload-driven and Dynamic widget code into separate packages by @V3RON in #262
- fix(cli): import VoltraRuntime module in generated widget bundle by @V3RON in #265
- fix(ios): apply activityBackgroundTint to small family in Dynamic Live Activities by @V3RON in #267
- docs(adr): server-driven Dynamic Widgets by @V3RON in #266
- feat: server-driven Dynamic Widgets by @V3RON in #271
- feat: support react-native imports in widget code by @V3RON in #270
- feat(android): add ArcProgressIndicator widget component by @V3RON in #268
- feat(charts): scale the y-axis to the data and add a yScale prop by @V3RON in #269
- feat(ios): add widget
kindoption to keep placed widgets across migrations by @rlods in #272 - fix(ios): stop the config plugin dropping the app's URL schemes by @rlods in #280
- feat(android): configure Dynamic Widgets per placed instance by @V3RON in #285
- feat: fetch server-driven Dynamic Widget props per configuration by @V3RON in #286
- feat(android): keep instance configuration across a launcher restore by @V3RON in #288
- refactor(ios): compile the payload AST without SwiftUI by @V3RON in #281
- fix(ios): resolve payload references before they reach element identity by @V3RON in #282
New Contributors
- @Minishlink made their first contribution in #259
- @rlods made their first contribution in #272
Full Changelog: v2.2.0...v2.3.0