はじめに
医療ITエンジニアの三浦です。
Laravel / PHPエンジニア向けに、NativePHPの概要と可能性を紹介します。
なぜ今クロスプラットフォーム開発?
クロスプラットフォーム開発とは、1つのコードで複数環境のソフトウェアを構築する開発手法のことです。その背景には、
- 対応プラットフォームの増加
- 開発スピードとコスト最適化
- 技術成熟と品質向上
- ビジネス要求の変化
があります。
対応プラットフォームの増加
以前はWindows対応だけで十分なケースも多くありました。現在はMac、iOS、Linux、Windows、Web、と様々な環境に対応した製品でないと選ばれにくくなりました。
医療現場でもiOSやAndroidの端末が普通に使われるようになっています。
開発スピードとコスト最適化
複数環境のソフトウェアを、複数の開発者が、複数のプログラミング言語で開発を行うと時間とコストが掛かります。
クロスプラットフォーム開発は、これらを大きく改善する開発手法です。
技術成熟と品質向上
当初のクロスプラットフォーム技術は「ハイブリッドアプリ」と呼ばれる、ブラウザコンポーネントにWebアプリを埋め込んだ簡易的なものでした。
最近ではFlutterやReact Nativeなど、独自描画やOS APIを直接利用できる、「よりネイティブらしい」開発環境が実用レベルとなっています。
ビジネス要求の変化
さらに近年のビジネスでは、アイデアを素早く最小限の形で市場に投入し、フィードバックを得ながら製品を成長させることが求められています。
NativePHPとは?
クロスプラットフォーム開発で使用する開発言語はWeb系のものが多いです。その中でも歴史の長いPHP言語で開発できる環境がNativePHPです。
以下の特徴があります。
- Laravel / PHPでデスクトップアプリを開発
- PHPの知識だけで、Windows・macOS向けのネイティブアプリを作成可能
- Web技術 × ネイティブ機能
- BladeやLivewireを使いつつ、ファイル操作・通知などOS機能に対応
- クロスプラットフォーム対応
- 1つのコードベースで複数OSに配布でき、業務アプリ開発と相性が良い
- デスクトップアプリの開発は無料
- モバイルアプリの開発は有料(Free~\$200/年~\$350/年)
※ 執筆時点のライセンス体系。詳細は公式サイト参照。
PHP+Composer+Laravel
NativePHPアプリの内部構成は次のようになります。
- PHP+Composer+LaravelでWebアプリを作成
- NativePHP+NodeでElectronやフロントエンドを作成
※ Node.js はElectronの実行・ビルド用途で使用
NativePHPv2では実行環境としてElectronが必須となっています。
Laravelアプリの開発者は、いつものようにアプリを作った後、NativePHPでネイティブアプリ化するという流れになります。
NativePHPでWindowsアプリをビルド
必要環境
以下が必要です。
- PHP 8.3+
- Laravel 11 or higher
- Node 22+
- Windows 10+ / macOS 12+ / Linux
まずはComposerとPHPのバージョン確認です。
>composer -V
Composer version 2.9.3 2025-12-30 13:40:17
PHP version 8.4.16 (C:\work\tmp\php\php-8.4.16\php.exe)
Run the "diagnose" command to get more detailed diagnostics output.
PHP拡張機能も必要なので、php.iniで以下を有効化します。
- fileinfo
- mbstring
- openssl
- pdo_sqlite
- sqlite3
- zip
Laravelアプリ作成
適当なフォルダでLaravelアプリを作成します。
>composer create-project laravel/laravel my-app
Creating a "laravel/laravel" project at "./my-app"
Installing laravel/laravel (v12.11.1)
- Installing laravel/laravel (v12.11.1): Extracting archive
Created project in C:\work\tmp\php\my-app
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 111 installs, 0 updates, 0 removals
- Locking brick/math (0.14.1)
- Locking carbonphp/carbon-doctrine-types (3.2.0)
(以下省略)
試しに実行してみます。
>cd my-app
>php artisan serve
INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
実行できました。

ここまでは普通のLaravelアプリ(Webアプリ)です。
NativePHPビルド
LaravelアプリにNativePHP依存関係を追加します。
>composer require nativephp/desktop
./composer.json has been updated
Running composer update nativephp/desktop
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
- Locking nativephp/desktop (2.0.2)
- Locking nativephp/php-bin (1.1.1)
(以下省略)
NativePHPをインストールします。
>php artisan native:install
Would you like to publish the Electron project? (yes/no) [no]
❯
Would you like to install the NativePHP NPM dependencies? (yes/no) [yes]
❯
Installing NPM dependencies (This may take a while)...
Installing NPM dependencies using the npm package manager...
Installing composer scripts
Installing `composer native:dev` script alias...
native:dev script installed!
Installing `native:install ` post-update-cmd script
post-update-cmd script installed!
Publishing NativePHP Service Provider...
INFO Publishing [nativephp-provider] assets.
Copying file [C:\work\tmp\php\my-app\vendor\nativephp\desktop\resources\stubs\NativeAppServiceProvider.php.stub] to [C:\work\tmp\php\my-app\app\Providers\NativeAppServiceProvider.php] DONE
INFO Publishing [nativephp-config] assets.
Copying file [C:\work\tmp\php\my-app\vendor\nativephp\desktop\config\nativephp.php] to [C:\work\tmp\php\my-app\config\nativephp.php] DONE
Would you like to start the NativePHP development server: (yes/no) [no]
❯
NativePHP scaffolding installed successfully.
3回質問されますが、すべてデフォルト(そのままEnter)で進めます。
①Electronプロジェクトを発行するか...いいえ
Would you like to publish the Electron project? (yes/no) [no]
②NativePHP NPM依存関係を解決するか...はい
Would you like to install the NativePHP NPM dependencies? (yes/no) [yes]
③NativePHP 開発サーバーを起動するか...いいえ
Would you like to start the NativePHP development server: (yes/no) [no]
実行します。
>php artisan native:run
Starting NativePHP dev server…
Fetching latest dependencies…
Installing NPM dependencies (This may take a while)...
Installing NPM dependencies using the npm package manager...
Starting NativePHP app
Running the dev script with npm...
まとめ
Laravel / PHPエンジニアは、NativePHPを使うことでWebアプリだけでなく、ネイティブアプリも開発できるようになりました。
PHPエンジニアにとって、数あるクロスプラットフォーム開発環境の中で、NativePHPは有力な選択肢となるでしょう。

