The Vibes — the unofficial Laracon US Day 3 event. Early Bird tickets available until March 31!
Blog

Your First NativePHP Mobile App in 5 Minutes ⚡

You're a Laravel developer. You know Blade, Livewire, maybe some Vue or React. You've never touched Swift or Kotlin.

Good news: you don't have to.

NativePHP for Mobile lets you build real, native iOS and Android apps using the skills you already have. And I'm going to prove it — you'll have an app running on your phone in the next 5 minutes.

In this post:

The Fastest Path: Jump#

Forget downloading Xcode (40GB). Forget configuring Android Studio. Forget all of it.

Jump is a free app that lets you test NativePHP apps on your real device instantly — no compilation required.

Step 1: Install Jump on Your Phone#

Download Jump from bifrost.nativephp.com/jump

Step 2: Create a Laravel App#

Copied!
laravel new my-mobile-app
cd my-mobile-app

Step 3: Add NativePHP#

Copied!
composer require nativephp/mobile

Step 4: Start the Jump Server#

Copied!
php artisan native:jump

A QR code appears in your terminal.

Step 5: Scan and Go#

Open Jump on your phone, scan the QR code, and... that's it.

You just built a mobile app. With PHP. In 5 minutes.

What Just Happened?#

  1. Embeds PHP — A pre-compiled PHP runtime runs natively
  2. Runs Laravel — Your app runs on the device, not a server
  3. Bridges to Native — PHP connects to native iOS/Android APIs
  4. No Web Server — Works completely offline

This isn't a web view wrapper running a server-based app. This is real PHP running natively on device.

The Full Install#

For App Store / Play Store builds:

Copied!
composer require nativephp/mobile
php artisan native:install
php artisan native:run

Your First Native Feature#

Let's prove this is actually native with haptic feedback — something web apps can't do.

PHP (Livewire)#

Copied!
<button wire:click="vibrate">Feel This</button>
Copied!
use Native\Mobile\Facades\Device;
 
public function vibrate()
{
Device::vibrate();
}

JavaScript (Vue/React/Inertia)#

Copied!
<template>
<button @click="vibrate">Feel This</button>
</template>
 
<script setup>
import { Device } from '@nativephp/mobile';
 
const vibrate = async () => {
await Device.vibrate();
};
</script>

Tap the button. Feel that? That's native hardware feedback. Web apps can't do this. But you just did.

Next Steps#


You're a mobile developer now. Welcome to the club. 🎉