@@ -4,40 +4,31 @@ order: 2
44---
55
66## JavaScript/TypeScript Library
7- A brand-new JavaScript bridge library with full TypeScript declarations for Vue, React, Inertia, and vanilla JS apps. This enables calling native device features directly from your frontend code. Read more about it [ here ] ( ) .
8-
9- ---
7+ A brand-new JavaScript bridge library with full TypeScript declarations for Vue, React, Inertia, and vanilla JS apps.
8+ This enables calling native device features directly from your frontend code. Read more about it
9+ [ here ] ( ../the-basics/native-functions#run-from-anywhere ) .
1010
1111## EDGE - Element Definition and Generation Engine
1212A new native UI system for rendering navigation components natively on device using Blade. Read more about it [ here] ( ../edge-components/introduction ) .
1313
14- ---
15-
1614## Laravel Boost Support
17- Full integration with Laravel Boost for AI-assisted development. Read more about it [ here] ( ../getting-started/development#laravel-boost-support ) .
15+ Full integration with Laravel Boost for AI-assisted development. Read more about it [ here] ( ../getting-started/development#laravel-boost ) .
1816
19- ---
2017## Hot Module Replacement (HMR) Overhauled
2118Full Vite HMR for rapid development. Read more about it [ here] ( ../getting-started/development#hot-reloading ) .
2219
2320Features:
24- - Custom vite plugin
21+ - Custom Vite plugin
2522- Automatic HMR server configuration for iOS/Android
26- - PHP protocol adapter for axios on iOS (no more inertia patch command!)
27- - Automatic WebView reload fallback when Vite isn't running
23+ - PHP protocol adapter for axios on iOS (no more ` patch-inertia ` command!)
2824- Works over the network even without a physical device plugged in!
2925
30- ---
31-
3226## Fluent Pending API (PHP)
33- All [ Asynchronous Methods] ( ../the-basics/events#understanding-async-vs-sync ) now implement a fluent api for better IDE support and ease of use.
27+ All [ Asynchronous Methods] ( ../the-basics/events#understanding-async-vs-sync ) now implement a fluent API for better IDE support and ease of use.
3428
3529### PHP
3630``` php
37- // Alerts with correlation IDs
3831Dialog::alert('Confirm', 'Delete this?', ['Cancel', 'Delete'])
39- ->id('delete-confirm')
40- ->event(MyCustomEvent::class)
4132 ->remember()
4233 ->show();
4334```
@@ -47,7 +38,6 @@ Dialog::alert('Confirm', 'Delete this?', ['Cancel', 'Delete'])
4738import { dialog , on , off , Events } from ' #nativephp' ;
4839const label = ref (' ' );
4940
50-
5141const openAlert = async () => {
5242 await dialog .alert ()
5343 .title (' Alert' )
@@ -64,49 +54,49 @@ onMounted(() => {
6454});
6555```
6656
67- ---
68-
6957## ` #[OnNative] ` Livewire Attribute
70- Learn more about the new OnNative support [ here] ( ) .
58+ Forget the silly string concatenation of yesterday; get into today's fashionable attribute usage with this drop-in
59+ replacement:
7160
72- ---
61+ ``` php
62+ use Livewire\Attributes\OnNative; // [tl! remove]
63+ use Native\Mobile\Attributes\OnNative; // [tl! add]
64+
65+ #[On('native:'.ButtonPressed::class)] // [tl! remove]
66+ #[OnNative(ButtonPressed::class)] // [tl! add]
67+ public function handle()
68+ ```
7369
7470## Video Recording
75- Learn more about the new Video Recorder support [ here] ( ) .
71+ Learn more about the new Video Recorder support [ here] ( ../apis/camera#coderecordvideocode ) .
7672
77- ---
7873## QR/Barcode Scanner
79- Learn more about the new QR/Barcode Scanner support [ here] ( ) .
74+ Learn more about the new QR/Barcode Scanner support [ here] ( ../apis/scanner ) .
8075
81- ---
82- ## Microhone
83- Learn more about the new Microphone support [ here] ( ) .
76+ ## Microphone
77+ Learn more about the new Microphone support [ here] ( ../apis/microphone ) .
8478
85- ---
8679## Network Detection
87- Learn more about the new Network Detection support [ here] ( ) .
80+ Learn more about the new Network Detection support [ here] ( ../apis/network ) .
8881
89- ---
9082## Background Audio Recording
9183Just update your config and record audio even while the device is locked!
9284
9385``` php
9486// config/nativephp.php
9587'permissions' => [
9688 'microphone' => true,
97- 'microphone_background' => true, // NEW
89+ 'microphone_background' => true,
9890],
9991```
100- ---
10192## Push Notifications API
102- New fluent API for push notification enrollment with ID correlation and session tracking :
93+ New fluent API for push notification enrollment:
10394
10495### PHP
10596``` php
10697use Native\Mobile\Facades\PushNotifications;
10798use Native\Mobile\Events\PushNotification\TokenGenerated;
10899
109- // Simple enrollment (auto-executes)
110100PushNotifications::enroll();
111101
112102#[OnNative(TokenGenerated::class)]
@@ -143,23 +133,22 @@ onUnmounted(() => {
143133- ` enrollForPushNotifications() ` → use ` enroll() `
144134- ` getPushNotificationsToken() ` → use ` getToken() `
145135
146- ---
147-
148136## Platform Improvements
149137
150138### iOS
151139- ** Platform detection** - ` nativephp-ios ` class on body
152140- ** Keyboard detection** - ` keyboard-visible ` class when keyboard shown
153141- ** iOS 26 Liquid Glass** support
154- - ** Improved device selector** showing last-used device
155- - ** Load Times** dramatically decreased by 60-80%!
142+ - ** Improved device selector** on ` native:run ` showing last-used device
143+ - ** Load Times** dramatically improved. Now 60-80% faster !
156144
157145### Android
158- - ** Android 16+ 16KB page size** compatibility
146+ - ** Complete Android 16+ 16KB page size** compatibility
159147- ** Jetpack Compose UI** - Migrated from XML layouts
160148- ** Platform detection** - ` nativephp-android ` class on body
149+ - ** Keyboard detection** - ` keyboard-visible ` class when keyboard shown
161150- ** Parallel zip extraction** for faster installations
162- - ** Load Times** dramatically decreased by ~ 40%!
151+ - ** Load Times** dramatically improved. ~ 40% faster !
163152- ** Page Load Times** dramatically decreased by ~ 40%!
164153---
165154
@@ -190,20 +179,24 @@ onUnmounted(() => {
190179'location' => 'Location is used to find nearby stores.',
191180```
192181
193- ---
194-
195182## New Events
196183
197184- ` Camera\VideoRecorded ` , ` Camera\VideoCancelled ` , ` Camera\PhotoCancelled `
198185- ` Microphone\MicrophoneRecorded ` , ` Microphone\MicrophoneCancelled `
199186- ` Scanner\CodeScanned `
200187
201- All events now include optional ` $id ` parameter for correlation.
188+ ## Custom Events
202189
203- ---
190+ Many native calls now accept custom event classes!
191+
192+ ``` php
193+ Dialog::alert('Confirm', 'Delete this?', ['Cancel', 'Delete'])
194+ ->event(MyCustomEvent::class)
195+ ```
204196
205197## Better File System Support
206- NativePHP now symlinks your filesystems! Persisted storage stays in storage but is symlinked to the public dir for display in the webview! Plus a pre-configured ` mobile_public ` filesystem disk.
198+ NativePHP now symlinks your filesystems! Persisted storage stays in storage but is symlinked to the public directory for
199+ display in the web view! Plus a pre-configured ` mobile_public ` filesystem disk.
207200
208201``` dotenv
209202FILESYSTEM_DISK=mobile_public
@@ -215,18 +208,13 @@ $imageUrl = Storage::url($path);
215208<img :src =" $imageurl" />
216209```
217210
218- ---
219-
220-
221211## Bug Fixes
222212
223- - Fixed infinite recursion in some Laravel setups
213+ - Fixed infinite recursion during bundling in some Laravel setups
224214- Fixed iOS toolbar padding for different device sizes
225215- Fixed Android debug mode forcing ` APP_DEBUG=true `
226216- Fixed orientation config key case sensitivity (` iPhone ` vs ` iphone ` )
227217
228- ---
229-
230218## Breaking Changes
231219
232220- None
0 commit comments