Repository navigation
What's Changed
- Keep bridge call parameters and results out of release logcat by @prosenthal828 in #523
- Strip Composer's auth.json from bundled apps by @simonhamp in #542
- Draw dashed, dotted and per-side borders natively by @simonhamp in #548
- Let apps use their own SVG icons by @simonhamp in #544
- Bump PHP binaries to 4.1.0 by @simonhamp in #531
- Use PNG compression level 6 for Android resources by @PrestaEdit in #535
- Turn on Gradle build and configuration caches by @simonhamp in #514
- Skip build steps whose inputs haven't changed by @simonhamp in #513
- Fix text-input and the mobile-ui requirement in the Boost skill by @simonhamp in #503
- Warn on native:run when the installed PHP binaries aren't the pinned release by @simonhamp in #556
- Keep async completions across a screen transition's reset by @simonhamp in #555
- Let NATIVEPHP_BIN_BRANCH install a prerelease binaries build by @simonhamp in #559
- Stop FlexContainer merging its children's alignment guides by @simonhamp in #551
- Free what a bridge call or a render pass autoreleases on PHP's threads and the shadow thread by @gwleuverink in #547
- Keep the CA files up to date by @simonhamp in #570
- Check PHP binary downloads against the manifest's checksums and signature by @simonhamp in #573
- Start the Android async lane before the first screen runs by @simonhamp in #568
- Don't publish a frame the native side already has by @simonhamp in #569
- Only put an iOS node through the modifiers it uses by @simonhamp in #576
- Keep a list's unchanged rows when it gains or loses rows on iOS by @simonhamp in #575
- Size a flex row from its flexed children's real height by @simonhamp in #571
- Name the image fit values with an ImageFit enum by @simonhamp in #572
- Add the phone's timezone to Device.GetInfo by @simonhamp in #566
- Honour a11y_label on top-bar actions; make MaterialIcon honour contentDescription by @wojt-janowski in #550
- Honour a11y-label on pressable and layout containers by @wojt-janowski in #580
- Keep the extracted Laravel bundle out of Android backups by @simonhamp in #579
- Accept route() and external URLs in navigate(), replace() and exitToWeb() by @shanerbaner82 in #578
- Create singleton Compose state on the main thread before the first composition by @thelemon2020 in #577
- fix: swipes that start on press-* elements don't scroll (iOS) by @SRWieZ in #524
- Stop the keyboard-dismiss taps cancelling UIKit controls by @simonhamp in #545
- Measure each flex child once per proposal by @nlo-tronet in #564
- Flush focused Android input before interactive actions by @wojt-janowski in #565
- Keep profileable Android builds minified by @simonhamp in #553
- Don't stop Gradle after 600 seconds by @simonhamp in #500
- Keep Prompts output on the build after a plugin hook runs by @simonhamp in #509
- Put the agent guide in the Boost skill: a worked screen, tests and build output by @simonhamp in #517
- fix: Android crashes when a positional node ID changes type by @SRWieZ in #436
- Stop iOS re-extracting the bundle on every launch by @simonhamp in #543
- Fail loudly on element tags nothing can render by @simonhamp in #502
- Hand unrouted app links back to the browser, warm and cold by @simonhamp in #558
- Let BroadcastsGlobally events reach native screens, and add a when filter to #[On] by @gwleuverink in #539
- Let iOS plugins declare scene configurations by @bkuhl in #541
- iOS: deliver Home Screen quick actions through a scene delegate by @prosenthal828 in #530
- feature: font-rounded selects the rounded system font design by @SRWieZ in #529
- Stop the runloop waking a sleeping phone by @shanerbaner82 in #511
- Make native:validate aware of plugin elements by @simonhamp in #501
- iOS: keep the per-tab node cache out of the SwiftUI update pass by @sandermj in #461
- Report a started biometric prompt as started by @prosenthal828 in #522
- Parse arbitrary percent widths/heights as percentages by @prosenthal828 in #499
- feat: opt-in image prop on top-bar actions by @prosenthal828 in #537
- Android: stretch column children like iOS, gated on a definite parent width by @sandermj in #451
- iOS: start animate-loop on every appearance path by @sandermj in #447
- Render the nav bar when it carries only actions (iOS + Android) by @sandermj in #441
- Reconcile native navigation by router stack depth; direction-aware Android stack transitions by @sandermj in #439
- fix: skip the farewell frame when back() answers a system back by @SRWieZ in #370
- Let a deep link path ending in * claim a prefix on Android by @simonhamp in #557
- Shared-element morph transitions (
ref+@navigate.morph) by @shanerbaner82 in #372 - feat: run native route middleware on in-app navigation by @shanerbaner82 in #348
- fix: deliver native events to nested child components by @shanerbaner82 in #344
- Keep the query when a native screen exits to a web route by @simonhamp in #583
- Add NativeComponent::query() helper for a screen's query string by @simonhamp in #401
- Android: forward deep link queries still percent-encoded by @simonhamp in #581
- iOS: find a screen's owning tab by its path by @simonhamp in #585
- Bound TailwindParser's parse cache by @prosenthal828 in #586
- Sign the iOS simulator app with the app's entitlements by @simonhamp in #582
- Explain that the version and build number decide re-extraction by @simonhamp in #584
- Drop the iOS caveats from the ImageFit docblocks by @simonhamp in #589
- Keep events fired with event() at the screen by @simonhamp in #593
- Remove the empty nativephp.sqlite committed by accident by @simonhamp in #594
- Only show Android classic-mode crash details in debug builds by @simonhamp in #592
- iOS: boot cold deep links to native screens natively by @simonhamp in #591
- Scroll-view auto-scroll-to in Blade + chrome collapse seam by @shanerbaner82 in #241
- Keep embedded php webviews out of app-level state by @simonhamp in #587
- Build the HTTP kernel before ScreenGuard expands middleware groups by @simonhamp in #595
- iOS: start animate-loop without animating unrelated views by @simonhamp in #598
- Headless build/verify commands, durable fatal capture, and report() for EDGE exceptions by @shanerbaner82 in #305
- Only show persistent and webview lane crash details in debug builds by @simonhamp in #597
- Read the platform from NATIVEPHP_PLATFORM and deprecate Platform by @simonhamp in #596
- Open off-host redirects outside the app on Android by @simonhamp in #599
- Open native routes from the php webview on the native stack by @simonhamp in #600
- Add text-outline for hollow outlined text by @simonhamp in #549
- Restart a native session that PHP dies in, and raise the memory limit by @simonhamp in #561
- Send border colours to native without a width, and stop dividers turning black by @simonhamp in #601
- Move the iOS node decorations into a modifier so Release builds compile by @simonhamp in #602
- Let a gesture area keep zoomed content on screen by @simonhamp in #603
- Build the iOS project in Debug and Release on CI by @simonhamp in #604
- Harden the web-view-reachable bridge surface by @simonhamp in #609
- Keep async completions that land while a transition is signalled by @simonhamp in #615
- Pop every level the iOS back history menu pops by @simonhamp in #616
- fix(android): app crashes if the phone rotates while it's starting by @SRWieZ in #525
- feature: show-label on top-bar actions by @SRWieZ in #527
- feat(mobile): support custom native tab bar presentations by @victorycodedev in #560
- Add HasVirtualListWindow::scrollVirtualListTo() to open a virtual list at a row by @wojt-janowski in #608
- fix(android): a screen's bg-* doesn't reach the edges in landscape by @SRWieZ in #528
- Stop iOS builds guessing a build number when App Store Connect fails by @simonhamp in #619
- Close a leaving screen's sheets and modals in its farewell frame by @martin-ro in #617
- Open a pressable's menu on a long press with :context-menu by @simonhamp in #621
- Stop bundling .claude and give rsync and adb install more time by @simonhamp in #622
- Let a row's shrinking children wrap short of a fixed sibling on Android by @simonhamp in #623
- WIP - Re-inject the root web view's safe-area insets on rotation on iOS by @bkuhl in #624
- Fix QR scans and other device events not reaching web-view pages on iOS by @bkuhl in #611
- Fix QR scans and other device events not reaching web-view pages on Android by @bkuhl in #613
- Let a gesture area's pan settle on snap points by @simonhamp in #625
- Add wav(), maxDuration() and level() to the microphone by @simonhamp in #626
- Fix double encoding characters in external deep link paths by @bkuhl in #605
- Test against patched Laravel versions so Composer 2.11 can install by @simonhamp in #628
- Move SECURITY.md to the root and point it at nativephp.com/security by @simonhamp in #627
- Add CONTRIBUTING.md pointing to nativephp.com/contributing by @simonhamp in #629
- Opt-in Laravel validation for native screens by @wojt-janowski in #614
New Contributors
- @prosenthal828 made their first contribution in #523
- @nlo-tronet made their first contribution in #564
- @victorycodedev made their first contribution in #560
Full Changelog: 4.6.0...4.7.0