- Getting Started
- Architecture
- The Basics
- Digging Deeper
-
EDGE Components
- Introduction
- Activity Indicator
- Badge
- Bottom Navigation
- Bottom Sheet
- Button
- Button Group
- Canvas
- Carousel
- Checkbox
- Chip
- Column
- Divider
- Gesture Area
- Icon
- Image
- Lazy Grid
- Layout & Styling
- List
- Menus
- Modal
- Pressable
- Progress Bar
- Radio Group
- Refreshable
- Row
- Scroll View
- Select
- Shapes
- Side Navigation
- Slider
- Spacer
- Stack
- Tab Row
- Text
- Text Input
- Toggle
- Top Bar
- Virtual List
- Web View
- Plugins
- Testing
- Publishing Your App
Changelog
For changes prior to v4, see the v3 documentation.
4.0.0-rc.1#
Released: July 15, 2026
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: https://github.com/NativePHP/mobile-air/compare/3.3.6...4.0.0-rc.1
NativePHP
Bring your
Laravel
skills to the
desktop.
Cloud Platform
Bifrost
Build your NativePHP apps
in the cloud.
Ship it!
Plans from $10/mo
Plugin Dev Kit
Build native plugins with
Claude Code
Learn More
NativePHP Ultra
All NativePHP plugins, teams & priority support from
$35/mo
Learn More
The Vibes
The unofficial Laracon US
Day 3
Grab Your Spot
Only 100 tickets!
The Masterclass
Go from zero to
published app
in no time
in no time
Learn More