NativePHP: Build Mobile Apps with PHP & Laravel
Chapters6
A teaser run-through of getting the native PHP mobile app off the ground: scanning a QR, installing the app with a three-finger swipe, and hinting at the app’s readiness and the creator’s subscriber audience message.
Native PHP makes mobile app development with PHP & Laravel feel surprisingly seamless, including live reload, device plugins, and a Byrost-backed CI/CD workflow.
Summary
Nuno Maduro introduces Native PHP as an open-source approach to building mobile apps with PHP and Laravel, highlighting a slick install flow and instant on-device previews. He walks through a simple composer install, the native PHP CLI workflow (composer require native PHP mobile, then native PHP run), and demonstrates selecting iOS as the target platform. The demo shows a QR-based app deployment (Jump) for quick provisioning, plus live hot-reloading on a simulator, which makes iteration incredibly fast. He digs into how the app bundle is prepared: Laravel is packaged, unnecessary bits are stripped away, and a SQLite database ships with the app while the actual database lives outside Laravel. Byrost is explained as the CI/CD-like platform for native PHP apps, offering lifecycle management, team visibility, and GitHub-based builds that can stream to devices with a single click. The discussion shifts to native device capabilities via plugins—network status, device info, battery, flashlight, vibration—and how you can access these from both Livewire and JavaScript. Finally, a Jump session demonstrates instant app distribution to a real device by scanning a QR code, plus the ability to pull builds from Byrost for team-wide testing. Overall, the video blends a practical install flow with a live dev workflow, showing Native PHP as a compelling bridge between PHP/Laravel and mobile platforms.
Key Takeaways
- Installing Native PHP mobile is straightforward: run composer require native php mobile, then native PHP install and native PHP run to start a local build.
- The app bundles Laravel code with a tiny runtime and ships a SQLite database inside the app asset directory, while the actual database lives outside Laravel.
- Byrost acts like a dedicated CI/CD and build lifecycle tool for native PHP apps, enabling team collaboration and GitHub-based branch builds for testing on devices.
- Jump lets you wirelessly install the app on a device by scanning a QR code, creating an instant on-device app instance for rapid testing.
- Live reload is highlighted as a core UX benefit, allowing real-time UI updates when you modify app.blade.php or other code.
- Plugins expose native device capabilities: network status (Wi-Fi, roaming, expensive), device info (model, memory, battery), and features like flashlight and vibration.
- Using the native PHP approach, you can combine Laravel’s backend strengths with mobile capabilities, achieving a cohesive development flow across devices.
Who Is This For?
Essential viewing for Laravel developers curious about mobile development workflows, and for teams evaluating Native PHP as a bridge between PHP/Laravel and mobile platforms and CI/CD tooling.
Notable Quotes
"This is Jump, baby. I can share my screen. Take over, man. That's a good idea."
—Demonstrating the Jump app workflow to sideload the app via QR code.
"We ship with a SQLite database. We take your whole Laravel application. We take away all the stuff you don't need… and unzip it when you do this."
—Explaining how the app bundle is prepared and what lives inside the packaged asset.
"For native PHP what Laravel Forge is for Laravel. Am I right?"
—Analogy used to describe Byrost as the deployment/CI analogy for Laravel Forge.
"Jump will automatically put the app on my phone just by scanning the QR code."
—Showing the instant deployment workflow via Jump.
"Live reload, by the way, I love the hot reloading."
—Highlighting the developer experience of fast feedback loops.
Questions This Video Answers
- How does Native PHP mobile install work with composer and the native PHP CLI?
- What is Byrost and how does it compare to Laravel Forge for native PHP apps?
- Can you deploy Native PHP mobile apps to iOS from Windows?
- How does the Jump app distribute updates to devices via QR codes?
- What native device plugins are available in Native PHP and how do you use them with Livewire?
Native PHPNative PHP MobileLaravelByrostJump appSQLite on deviceCI/CD for native appsReal-time hot reloadDevice pluginsNetwork status plugin
Full Transcript
This is jump, baby. I'm going to scan this QR code. It's unpacking. It's ready. We just use three fingers to swipe right. And uh and there we go. We've got our app. Our brand new app is right here on the device. Poser required. Native PHP mobile. The next command seems to be PHP art. It's a native install. Native PHP run. Oh boy. Oh boy. Oh boy. Oh boy. Oh boy. [ __ ] It's coming. What's up everyone? Just a reminder that more than 50% of the people watching this video are not subscribers. So if you enjoy my content, subscribe the channel and now enjoy the video.
What's up beautiful PHP family? How everyone is doing today? Today we are going to dive into native PHP which is finally open source. Man, I don't know numbers wise but the feeling is super hype. So first thing I'm going to do type composer require native PHP mobile. Let's do that. I'm clear this stuff and type this. All right, that's a very simple installation. We do see a few dependencies. Um, the next command seems to be PHP art. It's a native install. Let's do it. So, here's the question. Installing native PHP for mobile. What should be your app bundle ID?
Do I care about this or I just type enter? For local development, this is fine. Um, so when you are ready to release to the Play Store, that's when you're going to have to decide like this reverse DNS com.nunaduro, you know, whatever the app name is. Which platforms do you want to install? I want to install iOS. Bam. Enter. No development team found what we see here. This is this is a nice logo here. Can you briefly explain what is byrost? Byrost is number one. It's the name of our company. Byrost the product is our SAS.
Okay. So if you are on a Windows machine and you want to deploy to Apple play store, good luck. You just can't do it from a Windows machine. Uh but also if you're on a team and you want to see what other people on your team are deploying, it's a complete build life cycle CI/CD pipeline kind of management tool for your native PHP mobile and very soon desktop apps. So byrost is for native PHP what Laravel Forge is for Laravel. Am I right? It's exactly our analogy that we use. Yep. Start your app. So I just have to do this now and I will see my app like in some sort of simulator.
I guess it'll ask you which device you want to deploy on. Three commands. Composer require native PHP. PHPR is native PHP install. Native PHP run. Which platform would you like to run? I'm going to choose the iOS. Is that okay? Yeah, I guess. Bam. Running native PHP for iOS. Which uh target simulator? I want to be on the latest one. So, it's currently building uh from my understanding. Installing composer dependencies, removing unnecessary files, resolving swift package dependencies, installing cocoa pod. So, it's kind of doing the full story. Oh boy. Oh boy. Oh boy. Oh boy.
Oh boy. [ __ ] It's coming. W mobile development with PHP. Here we go. [ __ ] And now I sail the world using Laravel shed. You know the I honestly there's a few things I never thought in 2026. Number one, I never thought AI will steal my job. That's the first one. Okay. Number two, seeing PHP for the mobile. It's kind of badass. Okay. What I actually want you to do, if you go into your app.blade.php, there's a class I want you to add there. native PHP area PHP hyphen area. Oo, there you go. So, WHAT THAT DID IS OH, that was clear what it did.
Literally just moved the Oh, let me see something though. What happens if I do this now? Oh my god, I love the hot reloading by the way. Nice. This looks [ __ ] fantastic. Especially using PHP and Laravel, the best stack in the planet. Wavel by the way everyone. Okay, by the way, sounds great so far. I I Dude, I have a question. I just literally registered a user on this app right here. What the [ __ ] the data went to? Like is this using SQLite behind the scenes? Yep. So we ship with a SQLite database. We take your whole Laravel application.
We take away all the stuff you don't need uh to make it as small as possible. We zip it up. We put it inside of a directory inside of the app like an asset sort of directory and we unzip it when you do this. The database though however has to live outside of Laravel. So we've spent a lot of time playing with this. This is looking fantastic. So from my understanding, everything really just works so far. I want to kind of jump a little bit into understanding how can I use the native capacities of my uh device.
For example, do you have a plugin that you think would be nice to demo here? You could do network. What does the plugin allows me to do? Uh this just tells you if you're on cellular, on Wi-Fi, if you're on airplane mode, if you're on with iPhone, too, it can detect if you're roaming or not. And it's called it calls it expensive. Oh. Um, basically what we have is if I want to see this current status of the network through livewire, I can just use this kind of easy peasy lemon squeezy really just works. Or if I want to do it JavaScript code, I use this um await network status and that will tell me like if I'm connected, how I'm connected, and if I expensive blah blah blah blah blah blah blah.
Let's uh so what cloth code I've done is a button with network with network statues. will collect the statues in the sync way and then just display that information. Okay, so let's see what we have. Ooh, it is working now. Connecting via Wi-Fi. Yep, yep, yep, yep, yep. That's badass. By the way, also get this is expensive. Uh what means is expensive. By the way, uh so this is only for iOS, but um is expensive is if you're roaming. So you might be roaming and you you know like uh if you uh like download a Netflix video and you're not on Wi-Fi, right?
It's going to say it's going to say this this could be an expensive thing for your data usage. So, it's kind of similar to that. Correct. Nice nice nice. I think another one that's good for utility is the I think it's device and I think you want system installed as well. So, let's install both device and system because device will give you like a bunch of like uh device information. What's the ID of the device? What how much uh memory you might be using? You know, all that kind of stuff. I like this one. I like this one.
I'm going to try to do it my own. PHP composer require native PHP mobile device. Bam bam bam bam done. What kind of info do I have? Oh, I have information about the flashlight about the information about my device. Get battery info. Nice. This is cool stuff. Yeah. So, the get info is going to give you back a bunch of information. The It's not information about your flashlight. It will actually turn your flashlight on or off, but you don't have one on your uh on your simulator, of course. Right. Okay. Okay. device info. Device info.
Oh my god, this is good. And apparently it's vibrating my device, but I cannot see it. Oh, no. No, you're not. Yeah. So, because I'm a simulator, right? But, uh, if I would this wasn't my device, I would just feel it, right? Yep. Yep. So, this is the ID. This is the UID stuff right here. UID. This is the the iOS. I believe this is the 100% battery. Let's just console.log the info. We can see all of the info that comes back from that. Yeah, let's do it. Let's do it. Great. What do we have here?
Operating system iOS. Yeah. Yeah. iOS web view version platform. The model, the name kind of more. Yep. Yep. Yep. Look at that. How much memory is used? Yeah. All sorts of cool stuff there. Nice. Battery level, if it's charging, like we get access to that as well. This is cool stuff. Like, you know, really, really cool stuff. By the way, everyone wp by the way. Okay. Can you try jump? What is jump? So, yeah, you can try jump. Uh, let's do it. Let's do it. Oh, boy. I can share my screen. Take over, man. That's a good idea.
Take over. You want to do it? Let's do it. So, here we go. We've got a uh we've got fresh Laravel application. So, I'm I've got uh native PHP installed and I'm going to do native jump. And then I'm going to say I'm going to select iOS for my target device. And now on my phone. Oh, what is what is this? This is Jump, baby. This is Jump. So, on my phone on my phone, I've got the Jump app. Yep. And uh we can go into what those are, but we're going to stick with Jump.
I'm going to click the plus button. You're going to see my my dirty office, right? And I'm going to I'm going to scan this QR code. Oh, that will automatically just put the app on your phone. It will automatically put the app on my phone. new. Now it's unpacking. It's ready. We just use three fingers to swipe right and uh that'll exit us. So we say got it. And there we go. We've got our app. Our brand new app is right here on the device. Now all of the all of the current plugins that we've got, you can actually use all of those with this.
Anything additional, any like other plugins that you might want to build or add later, they won't work uh just because the way the the just the way that this works. But we could do alert, we could do all that stuff. We can do all that stuff uh with this. That was a little bit ridiculous though. Like that was too good almost. Oh my god. So there's there's new donation. And now what's cool remember I was telling you about byrost, right? This is the way that you can actually uh deploy and build apps, right? If I go to byrost, these are actually I'm logged in to my Bifrost account.
If I go into settings, right? Um and now that I'm now that I'm logged in there, I can see all my Bifrost uh all my apps that I've got there. So say you and I are working on a team, right? And I said, "Nuno, I need you to go fix this or do something." And you went into this native PHP app here, and you created a new branch. So, this is actually pulling from GitHub in real time, all the branches that we have for that project. And you just did this test new BFF builds. I can click on that, click download and run.
It's going to do a little build. And now I've already built it on the on the server. So, it's going to pull in that cached version of that. It's going to compile everything, all the work that you just did, put it on my device in action. I can actually just test it out right here. Oh my god. Yo, let's go. We've been busy. iOS 26 liquid glass. We got all that. That's sick, man. Got all sorts of stuff, man. W Shane, by the way, everyone, W Shane on the chat. Jesus [ __ ] Christ. That's ridiculous, dude.
More from nunomaduro
Get daily recaps from
nunomaduro
AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.









