Add native wrapper apps for iOS and Android (native/) - #87
Open
savrum wants to merge 1 commit into
Open
Conversation
Plain Swift/WKWebView and Kotlin/WebView shells, no dependencies, ~500 KB per platform. The bundled deck is a build input (native/scripts/fetch-deck.sh prefers a local build:single output, falls back to the latest release). iOS implements the full document cycle: decks from Files/Mail open in place, bento's retained-handle saves write back through a File System Access shim, plus a native logo menu, text-edit affordance, keyboard and gesture fixes, and a UserDefaults-backed localStorage bridge. Android is the minimal shell (WebView, SAF save/open, OTA) pending the same treatment. Integration points and known gaps are documented in native/README.md.
nyblnet
added a commit
that referenced
this pull request
Jul 26, 2026
One line — preferences.isElementFullscreenEnabled — and presenting on a phone stops being a compromise. iPhone Safari has never offered element fullscreen to web pages, so Bento's present mode falls back to filling its view; that is why present.ts treats a denied requestFullscreen as the normal tab-fill path. WKWebView exposes it as an opt-in, so a document hosted here presents properly where the SAME FILE in Safari cannot. That makes this the first place the wrapper does something the browser cannot, rather than restoring parity with desktop. Spotted in #87, which sets the same flag. Two analyses disagreed about whether iPhone WebKit supports this at all, so it was settled by testing rather than by picking a side. VERIFIED on iPhone 17 Pro Max: tapping Slideshow hides the status bar, the host nav bar and Bento's toolbar; the deck letterboxes on black with a native ✕ control and a 1/12 counter; swiping advances to 2/12 with Bento's own touch navigation intact. This also retires the limitation the README recorded — the nav bar cannot intrude on a slideshow, because a slideshow is now genuinely fullscreen. It is editing chrome only.
nyblnet
added a commit
that referenced
this pull request
Jul 26, 2026
Two faults reported side by side with #87, both ours. 1. THE PAGE DID NOT REACH THE EDGES. contentInsetAdjustmentBehavior was left at its default, so UIKit inset the scroll view by the safe area and a landscape slideshow showed bands down the left, right and bottom. Set to .never: the document owns its margins, the host adds none. #87 had this right and we did not — found by comparing directly. 2. THE FLOATING EXIT SAT ON TOP OF THE SLIDESHOW. Presenting is supposed to shed chrome, and the host was adding its own back. webView.fullscreenState is now observed, and entering fullscreen hides the nav bar and the floating exit together; leaving restores whatever the orientation calls for. Worth recording: an earlier analysis concluded fullscreenState was not a usable trigger because iPhone WebKit has no element fullscreen. It does — that was settled by testing — and the observation works. VERIFIED in landscape: the editor now runs to all four edges, and presenting shows the deck full-bleed with only WebKit's own ✕ and the 1/12 counter — the chevron is gone. The temporary rotation hook used to reach landscape is removed again in this commit.
This was referenced Jul 26, 2026
deepmindru-afk
pushed a commit
to deepmindru-afk/bento
that referenced
this pull request
Jul 26, 2026
… work Two contributors have now independently built something already open as a PR — math (nyblnet#68, superseded by the Temml work) and a native wrapper (nyblnet#87, overlapping the bento/tray branch). Neither could have known: the README roadmap says which APPS are coming and nothing about what is being built right now, and CONTRIBUTING never asked anyone to check. - README gains a Community section pointing at Discussions (Q&A, Ideas, Show and tell) with bugs still going to issues and security to SECURITY.md. - CONTRIBUTING gains 'Before you build something substantial': check open PRs and the pinned What's-in-flight issue, and open an issue or Idea before writing anything large — with a specific warning that PLATFORM.md §1-2 (the single-file promise, the splice contract) cannot be bent however good the code is. That is exactly what sank nyblnet#68. - CONTRIBUTING gains an AI-assisted contributions policy: welcome, provided you have read and understood what you submit and can answer for it, and commits are authored under your own name rather than a bot identity. Notes that an AI will produce something locally coherent that violates a plainly stated rule, so checking against PLATFORM.md is worth more than polish.
nyblnet
added a commit
that referenced
this pull request
Jul 27, 2026
… work Two contributors have now independently built something already open as a PR — math (#68, superseded by the Temml work) and a native wrapper (#87, overlapping the bento/tray branch). Neither could have known: the README roadmap says which APPS are coming and nothing about what is being built right now, and CONTRIBUTING never asked anyone to check. - README gains a Community section pointing at Discussions (Q&A, Ideas, Show and tell) with bugs still going to issues and security to SECURITY.md. - CONTRIBUTING gains 'Before you build something substantial': check open PRs and the pinned What's-in-flight issue, and open an issue or Idea before writing anything large — with a specific warning that PLATFORM.md §1-2 (the single-file promise, the splice contract) cannot be bent however good the code is. That is exactly what sank #68. - CONTRIBUTING gains an AI-assisted contributions policy: welcome, provided you have read and understood what you submit and can answer for it, and commits are authored under your own name rather than a bot identity. Notes that an AI will produce something locally coherent that violates a plainly stated rule, so checking against PLATFORM.md is worth more than polish.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Just created a pull request on very minimal ios and android wrappers. I've injected JS to act for normal filesystem routines. Worth a check.