feat: introduce kmp sdk & demo app (#1749)

* add kotlin debug app

* add specs

* first kmp sdk version

* add deploy script

* save working nfc implementation

* save demo app flow wip

* agent feedback

* show viewfinder on mrz

* save working scan

* add kotlin formatting

* remove mrz overlay

* fix expiry date

* add feedback to mrz san

* save improved nfc scanning

* save wip

* save gitignore and md state

* add logging and error handling. get iOS demo app working

* format

* add swift formatting

* enable iOS camera

* save ios mrz implementation

* nfc scanning works

* final optimizations

* add tests

* fixes

* better linting

* agent feedback

* bug fixes

* formatting

* agent feedback

* fix app breaking on run

* consolidate kotlin and swift clean up commands

* fix pipeline by installing swiftlint

* fix blurry scanning

* fix ci

---------

Co-authored-by: turnoffthiscomputer <colin.remi07@gmail.com>
This commit is contained in:
Justin Hernandez
2026-02-15 12:03:12 -08:00
committed by GitHub
parent 3298e13e60
commit 9ad5388f05
138 changed files with 12977 additions and 1 deletions

55
.github/workflows/kmp-ci.yml vendored Normal file
View File

@@ -0,0 +1,55 @@
name: KMP CI
on:
pull_request:
paths: ["packages/kmp-sdk/**", "packages/kmp-test-app/**"]
push:
branches: [dev, staging, main]
paths: ["packages/kmp-sdk/**", "packages/kmp-test-app/**"]
jobs:
kmp-sdk-tests:
runs-on: ubuntu-latest
timeout-minutes: 60
defaults:
run:
working-directory: packages/kmp-sdk
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- uses: ./.github/actions/cache-gradle
- uses: gradle/actions/setup-gradle@v4
with:
cache-disabled: true
- run: ./gradlew :shared:jvmTest
- uses: actions/upload-artifact@v4
if: always()
with:
name: kmp-sdk-test-results
path: packages/kmp-sdk/shared/build/reports/tests/
kmp-test-app-tests:
runs-on: ubuntu-latest
timeout-minutes: 60
defaults:
run:
working-directory: packages/kmp-test-app
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- uses: ./.github/actions/cache-gradle
- uses: gradle/actions/setup-gradle@v4
with:
cache-disabled: true
- run: ./gradlew :composeApp:testDebugUnitTest
- uses: actions/upload-artifact@v4
if: always()
with:
name: kmp-test-app-test-results
path: packages/kmp-test-app/composeApp/build/reports/tests/

View File

@@ -91,6 +91,12 @@ jobs:
- name: Install Dependencies
uses: ./.github/actions/yarn-install
- name: Install SwiftLint
run: |
curl -sL "https://github.com/realm/SwiftLint/releases/download/0.57.1/swiftlint_linux.zip" -o /tmp/swiftlint.zip
unzip -o /tmp/swiftlint.zip -d /tmp/swiftlint
sudo install /tmp/swiftlint/swiftlint /usr/local/bin/swiftlint
- name: Build workspace dependencies
run: yarn build