Skip to content

About

v12 Sample Apps (Android/iOS/Flutter/React Native)

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Smile ID sample apps (v12)

Four sample apps (Android, iOS, Flutter and React Native with Expo) that integrate the Smile ID v12 SDKs exactly the way a partner does. Every app resolves its SDK from the public registry (Maven Central, Swift Package Manager, pub.dev, npm), never from a local checkout.

That constraint is the point. It makes these apps both the reference integration partners copy and a test of what we publish: a defect that exists only in the published SDK, such as a missing dependency, a file absent from the package, or a keep rule that fails only under minification, shows up here first.

Try the apps

The Android and iOS apps are both published as Smile ID: iOS on the App Store, Android on Google Play and on Huawei AppGallery for Huawei phones.

Download on the App Store Get it on Google Play

The Android app's store screenshots: products, token scanning, verifications, a verification's details and settings

What each app shows

  • Every v12 product: SmartSelfie™ Enrollment and Authentication, Biometric KYC, Document Verification, Enhanced Document Verification, Residency Document Verification and Enhanced KYC, each composed with the flow builder.
  • Token sessions: link the app to a real account by scanning or pasting a v3 token, with no API key in the app. When the token already carries the user's details and consent, the app skips those steps.
  • Verifications: every submitted job, stored on the device, with its status refreshed from GET /v3/status.
  • Profiles for different partners or test users, and an appearance (System, Light or Dark) carried through to the SDK's screens.
  • Languages: English, French, Arabic and Hebrew, for the app and the SDK's screens. The app follows the device's language, or one picked in Settings.
  • Probes for automation and debugging: a scenario drawer, an on-screen result card and callback counters.

Runs go to the Smile ID sandbox unless a linked token names production. Simulate a successful scan on the scan sheet reaches every screen without a real token.

App size

Adding Smile ID makes an app this much bigger to download, for SDK 12.2.0:

Your app is built with Selfie only Selfie and documents
Android (Kotlin) +2.9 MB +9.9 MB
iOS (Swift) +4.3 MB +4.3 MB
Flutter, on Android +3.6 MB +11.0 MB
Flutter, on iOS +3.2 MB +3.6 MB
React Native (Expo), on Android +8.1 MB +15.2 MB
React Native (Expo), on iOS +8.6 MB +8.7 MB

"Selfie only" covers SmartSelfie™ and Biometric KYC. "Selfie and documents" adds document capture, which every document product needs.

These figures are what a user's phone downloads from the store. App size has the space each takes once installed, these apps' own sizes for comparison, and how they are measured.

Run an app

Prerequisites

Platform Needs
Android JDK 21 or newer, and an Android SDK with API 37
iOS Xcode 27.1, and XcodeGen
Flutter The Flutter stable channel
Expo Node 20.19 or newer, and pnpm 9

Android

cd android
./gradlew installPlayDebug        # or installAppgalleryDebug: adds Huawei's HMS analyzers, picked per device
adb shell am start -a android.intent.action.VIEW -d "usesmileid-sample-android://products"

In debug builds, Settings → Network logs opens the app's and the SDK's requests from the last hour, in Chucker, with credential headers redacted.

iOS

cd ios/App && xcodegen generate && open UseSmileIDSample.xcodeproj

The Xcode project is generated from ios/App/project.yml and is not committed. In debug builds, shake the device to read the app's own network traffic, with credentials redacted.

Flutter

cd flutter/app && flutter run

Expo

cd expo && pnpm install
cd app && pnpm prebuild && pnpm android    # or: pnpm ios

The Expo app needs react-native-worklets/plugin as the last Babel plugin (expo/app/babel.config.js), or capture does not run.

Deep links

Every route in spec/routes.json opens by deep link on each app's URL scheme: usesmileid-sample-android://, usesmileid-sample-ios://, usesmileid-sample-flutter:// and usesmileid-sample-expo://.

Check a change

Each platform has one script that is its definition of done, and CI runs the same script on every pull request:

android/verify.sh
ios/verify.sh
flutter/verify.sh
expo/verify.sh

Guides

Guide Answers
Architecture How the four apps are built and kept identical, and where the SDK is called
Token sessions How to run verifications from a v3 token instead of an API key
Theming How the apps theme themselves and the SDK
Localisation How the apps are translated, and how to add a language
Testing How to test an integration like this one
App size What Smile ID adds to an app's size, on each platform
Submitting to the stores What the SDK means for your App Store and Google Play submission
Releasing How these apps reach the stores
Backlog Known gaps, if you want to contribute

The SDK reference is at docs.smileidentity.com.

Layout

Path What lives there
spec/ The cross-app contract as data: scenarios, routes, launch arguments, result-card fields, test ids, design tokens
android/ The Android app (app/) and its sample-ui library
ios/ The iOS app (App/) and the SampleUI Swift package
flutter/ The Flutter app (app/) and the sample_ui package
expo/ The Expo app (app/) and the sample-ui TypeScript package

Each platform splits into a thin app shell (the SDK dependency, native configuration and flow host) and a sample-ui library holding every screen a partner sees. AGENTS.md is the full contributor guide, for people and coding agents alike.

Contributing and security

See CONTRIBUTING.md. Report security problems privately, as SECURITY.md describes, never in a public issue. Never commit a token, partner id or API key.

Licence

The code is MIT-licensed (LICENSE). Bundled fonts, icons and Smile ID marks keep their own terms (NOTICE).

About

v12 Sample Apps (Android/iOS/Flutter/React Native)

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages