Skip to content

Add SwiftUI and JVM consumers plus Android calendar handoff - #12

Merged
Alox1d merged 3 commits into
mainfrom
feat/platform-integrations
Oct 22, 2026
Merged

Alox1d merged 3 commits into
mainfrom
feat/platform-integrations

Conversation

@Alox1d

@Alox1d Alox1d commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

Why

The reminder walkthrough needs complete examples that developers can run in their own environment. The existing KMP consumer also configures Android, so trying the published parser on a JVM still required an Android SDK.

Changes

  • Add an independent Kotlin/JVM application that resolves DateParser Kotlin 0.1.3 from Maven Central. It has deterministic EN/RU examples, date-order and timezone options, a CLI, and clear exit codes.
  • Add a checked-in SwiftUI Xcode project backed by the published KMP consumer. A small Kotlin adapter exposes strings and epoch milliseconds through a locally built static framework. The form requires review, retains both range endpoints, and keeps confirmed reminders in memory.
  • Extend the Android Compose example with separate editable start/end values and an ACTION_INSERT handoff to a calendar editor. A single instant requires an explicit duration before export. Missing calendar handlers leave the reviewed values on screen.
  • Add focused tests and runnable instructions; update the EN/RU READMEs and English walkthrough.
  • Run the standalone JVM consumer, Android app test builds, and SwiftUI simulator suites in CI; retain the Apple test results as artifacts.
  • Fix two Swift test assumptions exposed by the first simulator execution: Foundation's UTC/GMT canonicalization and the example menu's enclosing Form accessibility row.

The Android app uses the local :dateparser project. The independent consumers and SwiftUI host resolve the published dependency. This change does not publish a new library release or a standalone Swift package.

Validation

  • Pull-request CI and push CI passed on 17fe3ee: independent JVM consumer, JVM/Android, and Apple jobs.
  • SwiftUI executed 8 view-model tests and 2 UI tests on the iOS simulator with zero failures. Both Apple jobs report TEST SUCCEEDED, and their .xcresult bundles are retained as workflow artifacts.
  • The standalone JVM job runs the Maven Central consumer tests and examples with ANDROID_HOME and ANDROID_SDK_ROOT unset.
  • The JVM/Android job now also runs the Android app unit tests and builds its APK and instrumentation APK. The existing shared KMP consumer checks and Apple native publication/consumption checks passed.
  • Documentation checks passed for the same commit. Shell syntax, Swift test source parsing, and git diff --check also passed before the final push.

Additional validation recorded during implementation:

  • Independent JVM consumer: 12 tests and the example suite passed without Android SDK configuration. Invalid calendar-range input returns a readable error and application exit code 2.
  • Android app: 9 unit tests passed; 2 instrumentation tests passed on the dedicated API 35 emulator. All three Maestro flows passed: editing invalidates review, explicit confirmation/ambiguity/ranges, and calendar duration/missing-handler behavior. The stock calendar package was restored after the missing-handler check.
  • Shared Maven Central consumer: 21 JVM tests and 21 Android host tests passed. Earlier Apple CI artifacts also recorded 82 library tests and 21 KMP consumer tests on the iOS simulator.

The calendar Intent tests inspect its action, URI, title, timezone and exact start/end values. Calendar Save/Cancel remains with the chosen calendar app; neither demo schedules notifications.

@Alox1d
Alox1d marked this pull request as ready for review October 22, 2026 00:51
@Alox1d
Alox1d merged commit df11e50 into main Oct 22, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant