4.0.0-rc.1
Pre-release
Pre-release
·
166 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
- SuperNative — fully native UI powered by SwiftUI on iOS and Jetpack Compose on Android, and the new default for v4 apps
- Livewire-like native components — each screen is a PHP NativeComponent class holding its state and behavior, re-rendering the native UI as your properties change
- Shared memory between PHP and the native layer — no serialization overhead or web view bridge between your code and the UI
- Web view as a component — the classic web-view-first approach is now opt-out: render a single native route with a full-screen web view to keep building the v3 way
- Layouts — declare shared chrome (nav bars, tab bars) once in a NativeLayout class and attach it to a route or group of routes
- Native navigation stack — register screens with Route::native(), then push, pop, and replace them with native transitions
- Component testing suite — mount a NativeComponent, drive interactions, and assert on state and output entirely in-process, with no device or simulator
- Device, Dialog, File and System Plugins are now core built-ins —
nativephp/mobile-device,nativephp/mobile-dialog,nativephp/mobile-file, andnativephp/mobile-systemplugins have moved intonativephp/mobile. Remove the standalone plugins before upgrading (see the Upgrade Guide). The facades and events are unchanged, so no application code changes are needed. - The Vite dev server is now opt-in — native:run / native:watch no longer start Vite automatically. Pass --vite to enable JS/CSS HMR. The --no-vite flag still works but is now redundant. See Hot Reloading.
- Fix: Remove stray tag by @martin-ro in #158
New Contributors
- @martin-ro made their first contribution in #158
Full Changelog: 3.3.6...4.0.0-rc.1