Reference
Changelog
What changed in the Mobile SDK and its docs, newest first, including breaking changes.
Use this page to see what changed in the SDKs and whether an upgrade needs code changes. Entries come from the project history for the SDKs and their docs, grouped by the day they landed. For how versions are numbered, see Versioning.
Breaking changes
These two changes affect code that names the toast style.
| Platform | Change | What you do |
|---|---|---|
| iOS (Swift) | PresentationStyle.toast(seconds:) gained a second associated value: toast(seconds: Double, top: Bool = false). | Constructing .toast(seconds: 5) still compiles. A pattern match such as case .toast(let s) must become case .toast(let s, _). |
| Android (Kotlin) | PresentationStyle.Toast(seconds) gained a top parameter. | Source-compatible, because top has a default. It is not binary-compatible, so recompile any module or library that calls Toast. |
Web, React Native and Flutter APIs are not affected.
2026-10-12
- Presentation options.
PresentOptionson iOS and Android, and the matching options in React Native and Flutter, gainedonClose,onSkip,maxContentWidth,closeOnBackdrop,sizeandposition. They have the same names and meaning as in the Web SDK and override the placement's display settings the waystyledoes. Defaults keep the old behavior. On iOS,closeOnBackdropset to false also blocks swiping the sheet down. See Present a screen. - Download limits. Images larger than 10 MB and fonts larger than 5 MB are not loaded. A larger
Content-Lengthis refused before the body is read; a body without a length, or with a wrong one, is cancelled as soon as it passes the limit. A refused image is not shown and a refused font falls back to the system font. The SDK logs it and does not crash. On iOS the body is now read in chunks instead of byte by byte, which is faster for large files. See Limits. - Busy card. While a purchase or restore runs, the spinner sits on a small rounded card in the middle of the screen. Button sizes do not change.
- Fixes. Android no longer cuts the last letter of a text, and the keyboard no longer covers sheets.
2026-10-11
- Android Back in flows. In a multi-screen flow, the system Back button goes to the previous screen instead of closing the whole flow.
- Allowed apps. The SDK sends the app ID (
X-Miniwall-App) so a key can allow only your iOS and Android apps. See API keys. - Audience facts. Audiences can use
os_version,app_versionandcountry.app_versionsupportsgt,gte,ltandlte, compared segment by segment (2.10is greater than2.9). See Targeting attributes. - Events. Each event carries
platform,sdkVersionandappVersion. The SDK cleans the app version before sending it. - Icons and fonts from the server. Delivery responses include the SVG of Lucide icons and the font file links, so a screen shows its icons without a call to a third-party icon host. Other icons still load from their own link.
- Fixes. iOS: banner and toast no longer crash on iOS 27, clipped text lines, a VoiceOver crash on downloaded fonts, and icons reload when a link changes.
2026-10-10
- Mobile SDK. Native SDKs for iOS (Swift Package
MiniwallSDK) and Android (Compose,com.miniwall:sdk), plus React Native and Flutter wrappers that call the native SDKs. They render published screens without a WebView and follow the Web SDK's layout and logic. See iOS, Android, React Native and Flutter. - App triggers.
startAutoPlacementsandtrackrun placements with theapp_open(every N opens),event(by name) anddelaytriggers. See Auto placements. - Custom fonts and Dynamic Type. The SDK downloads the screen's custom fonts and applies their weight. Text follows the system text size (Dynamic Type on iOS, font scale on Android), capped by
maxFontScale(default 1.6). Disabled and dimmed buttons are announced by screen readers. - SVG icons. Icons are drawn as vector paths, in one color.
- Fixes after review. System bars follow the page color on Android, the SDK queues up to 5
trackcalls while a screen is open, andMiniwall.stopAutoPlacements()stops auto placements.