Replace Slint UI to restore native iOS interaction behavior #9
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The Slint-based iOS UI does not provide the standard UIKit interaction behavior users expect: text fields lack reliable copy, paste, cut, selection, and long-press loupe behavior; pull-to-refresh does not look or behave like the native control; gesture handling is inconsistent; and returning from a detail screen resets the source list scroll position. Adding custom edit buttons or manually reproducing UIKit navigation behavior would be brittle workarounds. Replace the UI layer with UIKit while keeping application logic in Rust through UniFFI. Preserve current functionality and layout, use native text editing and refresh controls, keep list navigation state, use a flat list style, default repository filtering to All branches, and retain repeatable UI test coverage.
Implemented in
f201814. The Slint UI was replaced with UIKit backed by the existing Rust app logic through UniFFI. Native UIKit text fields restore the standard edit menu, selection, long-press, and paste behavior; UIRefreshControl provides native pull-to-refresh; navigation controllers retain list scroll position; and the flat iOS layout, All-branch default, native symbols, settings placement, and repeatable UI testing documentation are included. Verified in the iOS simulator and installed on the paired iPhone.Reverified
f201814on current main. All required Rust gates pass (format, warning-free check, Clippy, and 10 tests), and the arm64 simulator build succeeds on iPhone 17 Pro / iOS 26.5. Installed and launched the app; visually confirmed the native flat repository and issue lists, UIKit filter menu, native text and secure-text fields, navigation, and the All-branches default. The issue remains closed.