FlexForm Mobile SDKKMP, Android & iOS Native
Embed FlexForm forms natively in your Android or iOS app with one SDK. Server-driven UI means you can add, update, or remove form fields without pushing an app store release.
Everything your app needs for forms
One SDK that handles rendering, validation, logic, and submission on every platform
One SDK, Three Platforms
Single Kotlin codebase renders natively on Android (Compose), iOS (UIKit/SwiftUI), and Kotlin Multiplatform apps.
Server-Driven UI
Form fields are defined on the server. Update questions, add fields, or change logic without touching app code or waiting for store approval.
Offline Drafts
Users can fill forms without connectivity. Drafts persist locally with Room database (Android) and bundled SQLite (iOS) and sync when back online.
Conditional Logic
Skip pages, show/hide fields, and branch to different form paths based on previous answers — all defined server-side, evaluated client-side.
Full Theming
Override colors, typography, and spacing to match your app's design system. Dark mode supported natively.
44 Element Types
Short answer, multiple choice, file upload, signature, date picker, rating scale, location map, and 37 more — all rendered natively with no WebView.
Choose your platform
Same SDK, platform-optimised delivery
Android SDK
Jetpack Compose rendering. AAR via Maven Central. minSdk 28, compileSdk 36.
Setup guide →iOS SDK
SwiftUI via UIViewControllerRepresentable. XCFramework via SPM and CocoaPods. iOS 14+.
Setup guide →Kotlin Multiplatform
Share one Compose Multiplatform codebase across Android and iOS. Ktor, Room, and Koin — all KMP-compatible.
Setup guide →Quick start
Two calls. Any Composable. Any platform.
// 1. Initialize once (Application class or app startup)
FlexFormSDK.init(platformContext)
// 2. Render a form in any Composable
@Composable
fun MyScreen() {
FlexFormView(
formId = "your-form-id",
config = FlexFormConfig(autoSaveDraft = true),
onEvent = { event ->
when (event) {
is FlexFormEvent.Submitted -> { /* handle submission */ }
is FlexFormEvent.Error -> { /* handle error */ }
else -> {}
}
}
)
}Mobile SDK FAQs
Common questions about embedding FlexForm in Android and iOS apps
What platforms does the FlexForm SDK support?
The FlexForm SDK supports Android (Jetpack Compose, minSdk 28), iOS (SwiftUI/UIKit via UIViewController, iOS 14+), and Kotlin Multiplatform projects. A single KMP dependency covers all three platforms from one shared codebase.
Do I need to release a new app version to update a form?
No. FlexForm uses a server-driven UI model — form fields, logic, and validation are defined on the server and fetched at runtime. You can add fields, change questions, update conditional logic, or reorder pages without touching app code or submitting to the App Store or Play Store.
What element types are supported in the mobile SDK?
The SDK supports 44 element types including short answer, long answer, email, multiple choice, dropdown, checkbox, rating scale, date picker, time picker, file upload, image upload, signature capture, location map, phone input, and display elements like headings, paragraphs, and banners.
How does offline support work?
The SDK uses Room database (Android) or bundled SQLite (iOS) to persist form drafts locally. Users can fill forms without connectivity and their progress is saved automatically. When connectivity is restored, drafts can be resumed and submitted.
How do I customize the form's appearance?
Pass a FlexFormTheme override in FlexFormConfig to control primary color, background, text colors, typography, spacing, and button styles. The SDK supports dark mode and integrates with your app's Material3 theme baseline on Android.
Where can I get the SDK?
The Android AAR is available via Maven Central. The iOS XCFramework is available via Swift Package Manager and CocoaPods. Contact hi@flexform.ai for beta access credentials.
Ready to Embed Forms in Your App?
Add FlexForm to your Android or iOS app in minutes. Server-driven forms that update without app store releases.