PHPエンジニアなら一度は考える「PHPでデスクトップアプリ作れないの?」という疑問。その疑問を解決するのが NativePHP です。今回は、実際にNativePHPを使ってGUIアプリを立ち上げるまでを試してみました。
NativePHPとは?
NativePHPは、LaravelベースでGUIアプリケーションを構築できる新しいフレームワーク。ElectronやTauriと連携し、PHPで書いたコードをネイティブアプリとして動作させます。
Laravelとの親和性◎
- クロスプラットフォーム(macOS, Windows, Linux)
- モバイル対応も今後視野に
- ファイル操作や通知、SQLite操作も可能
🚀 セットアップ手順
以下は、Laravel + NativePHP プロジェクトを作る手順です。
1. Laravelプロジェクトを作成(既存プロジェクトでも可)
$ laravel new native-app
_ _
| | | |
| | __ _ _ __ __ ___ _____| |
| | / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V / __/ |
|______\__,_|_| \__,_| \_/ \___|_|
┌ Would you like to install a starter kit? ────────────────────┐
│ › ● No starter kit │ ✨一旦デフォルトの「No starter kit」を選択。
│ ○ Laravel Breeze │
│ ○ Laravel Jetstream │
└──────────────────────────────────────────────────────────────┘
┌ Which testing framework do you prefer? ──────────────────────┐
│ › ● PHPUnit │ ✨一旦デフォルトの「PHPUnit」を選択。
│ ○ Pest │
└──────────────────────────────────────────────────────────────┘
┌ Would you like to initialize a Git repository? ──────────────┐
│ ○ Yes / ● No │ ✨一旦デフォルトの「No」を選択。試したいだけなので。
└──────────────────────────────────────────────────────────────┘
┌ Which database will your application use? ───────────────────┐
│ ○ MySQL │
│ ○ MariaDB │
│ ○ PostgreSQL │
│ › ● SQLite │ ✨一旦標準っぽい「SQLite」を選択。
│ ○ SQL Server │
└──────────────────────────────────────────────────────────────┘
2. アプリのディレクトリに移動
$ cd native-app
3. Composerを使ってNativePHPをインストール
$ composer require nativephp/electron
┌ Would you like to install the NativePHP NPM dependencies? ───┐
│ ● Yes / ○ No │ ✨一旦デフォルトの「Yes」を選択。
└──────────────────────────────────────────────────────────────┘
┌ Would you like to start the NativePHP development server ────┐
│ ● Yes / ○ No │ ✨一旦動かしたいので「Yes」を選択。
└──────────────────────────────────────────────────────────────┘
数秒でこんな画面が立ち上がりました✨
これだけでElectronアプリが起動し、Laravelアプリがネイティブで動きます。感動!
少し変更してみる
// routes/web.php
Route::get('/', function () {
return view('welcome');
});
// resources/views/welcome.blade.php
<!DOCTYPE html>
<html>
<head>
<title>NativePHP Hello World</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100">
<div class="container mx-auto p-8">
<h1 class="text-3xl font-bold mb-4">文章は適宜変更してください</h1>
<p class="mb-4">これはLaravelからNativePHPで作成したデスクトップアプリです。</p>
</div>
</body>
</html>
デフォルトで開発者ツールも立ち上がるようです。
普段開発者ツールを使っているエンジニアの方にとっては、馴染みもあり、すんなり開発に入れそうですね!これで、既存のLaravelスキルをそのまま活かしながら、デスクトップアプリケーションを動かせることをご確認頂けたでしょうか?
🔄 ホットリロードにも対応
ホットリロードを使え、サクサク開発できます。
✨ 感想
PHP+Laravelのスキル資産を活かしてデスクトップGUIを作れるのは革命的です!5分程で導入できt簡単でした!