Skip to content

feat: support Android Native UI extensions with Kotlin and Compose - #290

Merged
rdlabo merged 2 commits into
mainfrom
feat/android-native-ui-extensions
Oct 18, 2026
Merged

rdlabo merged 2 commits into
mainfrom
feat/android-native-ui-extensions

Conversation

@rdlabo

@rdlabo rdlabo commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Android apps can now render app-local Native UI extensions with Kotlin and Jetpack Compose, using the same DOM readers, props and action targets as iOS. Standard Ionic and HTML controls remain on the Web; Android supports element placement only, without Vertical Bars or tab accessories.

  • Replace the Android stub with a Kotlin plugin and public Compose registration API.
  • Share DOM discovery, geometry tracking, state updates and markForCheck(); convert source frames to dp and forward native actions to their original DOM targets with acknowledgement.
  • Handle suspension, Activity pause/resume, source removal and teardown, while keeping unsupported or rejected extensions on the Web.
  • Document Kotlin/Compose setup and platform support in the existing user guides. Exclude Android build output from Git and formatting checks.

Validation:

  • Package build, lint and package archive/consumer verification passed.
  • Web unit tests: 79 passed across 15 files.
  • Android debug library and sample APK builds passed; 3 Kotlin snapshot validation tests passed.
  • Local Android emulator: Compose rendering, DOM click acknowledgement and state updates, Activity background/foreground, shell suspend/resume, and source position/size changes verified. Standard HTML buttons retained Web presentation.

Android smoke testing used a temporary Capacitor app; no additional demo Android project is included.

@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Playwright test results

passed  456 passed

Details

stats  456 tests across 24 suites
duration  5 minutes, 7 seconds
commit  2ec6b32
info  This detailed result covers Ionic 9 only. Ionic 8 runs against the same screenshots in a separate matrix job; check the workflow run for both results. To update the screenshots, comment with /update-screenshots.

github-actions Bot added a commit that referenced this pull request Oct 18, 2026
@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

📊 Ionic 9 Playwright Test Report

View the detailed Ionic 9 report: https://rdlabo-dev.github.io/ionic-theme-ios27/pr-290/

Ionic 8 runs against the same screenshots in a separate matrix job. View both results in the workflow run.

@rdlabo
rdlabo merged commit 73643ce into main Oct 18, 2026
11 checks passed
github-actions Bot added a commit that referenced this pull request Oct 18, 2026
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