Skip to content

feat(ui): platform-native design with ui-native-components - #751

Merged
farfromrefug merged 11 commits into
mainfrom
feat/native-ui-redesign
Oct 24, 2026
Merged

farfromrefug merged 11 commits into
mainfrom
feat/native-ui-redesign

Conversation

@farfromrefug

@farfromrefug farfromrefug commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • ui-native-components 1.1.0: every ui-material-* plugin is replaced by the @nativescript-community/ui-* packages (button, switch, slider, textfield, textview, dialogs, bottomsheet, snackbar, progress, segmentedbar, appbar...). mdbutton becomes uibutton.
  • List screens (documents, cards, trash): native app bar with inline search. Android: M3 search bar that hosts the actions and filters the list in place, floating selection toolbar, view/sort options as a native menu. iOS: inline title, glass bar items, bottom search + camera button, native selection toolbar, system colors with the app color as tint, inset-card rows. Catalyst: right click menus, Cmd+F, Cmd+,.
  • Mac Catalyst: build configuration (entitlements, @nativescript/ios runtime for Catalyst, window helper).
  • Native libs: workflow and scripts to build tesseract (release/debug) and OpenCV for Android, iOS and Catalyst by version.
  • Platform config: iOS 17 target, scene manifest (required by the iOS 27 SDK), Material 1.14 on Android.

Testing

  • yarn svelte-check 0 errors, npx vitest run 308/308, ns build android and ns build ios succeed.
  • Checked by running on an Android emulator (light/dark, selection, folders, search, floating toolbar) and the iOS 27.0 simulator; Mac Catalyst launches, its right click menus and selection mode were not verified. CardWallet and the camera screen were not checked, and the iOS bar blur shows as an opaque band on the iOS 27 simulator (needs a real iOS 26 device).
  • Depends on the shared tools submodule: points to feat(ios): window menu commands, window tint and android status bar refresh Akylas/app-tools#14 (branch feat/native-ui-app-support). Merge that first, then bump the pointer to the merged commit.

farfromrefug and others added 8 commits October 24, 2026 18:42
Replace every ui-material-* plugin with the @nativescript-community/ui-* ones (button, switch,
slider, textfield, textview, dialogs, bottomsheet, snackbar, progress, activityindicator,
segmentedbar) so the app and the shared tools components use one set of plugins.

- rename `mdbutton` to `uibutton` (kept as an alias for the shared components) and update the
  css selectors to the new element types
- keep the sqlite 3 database wrapper in app/db: the shared one needs sqlite-core 4
- add the Mac Catalyst window helper, the @nativescript/ios runtime for Catalyst and the
  prepare/run catalyst scripts

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Replace the custom action bar of the document and card lists with ui-appbar:

- M3 search bar hosting the actions on Android, large-less inline title, glass bar items and
  bottom search on iOS; search filters the current list in place
- primary and import actions come from one `actions` list: FABs on Android, "+" menu and bottom
  toolbar button on iOS
- selection actions use the bottom toolbar (floating toolbar on Android, UIToolbar on iOS)
- Catalyst only: right click context menus and Cmd+F / Cmd+, shortcuts

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Resolve the grouped background, label and separator colors from the system on iOS, use the app
primary color as the window tint and restyle the list rows as inset cards.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…le windows

- raise the deployment target to 17 (liquid toasts of ui-snackbar, Xcode 27 minimum)
- add UIApplicationSceneManifest: apps built with the iOS 27 SDK refuse to launch without scenes
- set UIRequiresFullScreen to false for the resizable Mac Catalyst window
- build simulator pods for arm64 only

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… from the metadata

Material 1.14 provides the floating toolbar and search bar styles of ui-appbar. Remove the app bar,
floating action button and SearchView classes from the plugin-shared metadata blacklist.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add the Catalyst entitlements and build settings (sandbox, JIT, camera, photos, user selected
files) and link the Catalyst tesseract, leptonica and png libraries in plugin-nativeprocessor.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ersion

Build tesseract (with leptonica, libpng and libjpeg) and fetch OpenCV for Android, iOS and Mac
Catalyst from pinned versions, in release and debug variants, and publish them as release assets.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…h on Android

Pass the collection view id as `scrollTargetId` so the bar follows it without walking the view
tree, and host a ui-textfield in the Android inline search.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
farfromrefug and others added 3 commits October 24, 2026 18:46
…sion

Points to the app-tools branch with the ui-native-components packages, the Mac Catalyst window helper
and the additions used by the app (window menu commands, window tint, Android status bar refresh).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
systemui 1.1.26 owns the page status bar style, so a live dark / light switch updates the status
bar icons without the Android workaround; point tools to the branch without that workaround.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The shared tools now only tint the window when asked: enable it for this app.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@farfromrefug
farfromrefug marked this pull request as ready for review October 24, 2026 17:43
@farfromrefug
farfromrefug merged commit 94bc560 into main Oct 24, 2026
1 check failed
@farfromrefug
farfromrefug deleted the feat/native-ui-redesign branch October 24, 2026 17:43
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