0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPだけでデスクトップアプリ開発!Laravel×NativePHPで始めるクロスプラットフォーム対応

Posted at

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」を選択。
 └──────────────────────────────────────────────────────────────┘

数秒でこんな画面が立ち上がりました✨

NativePHP起動画面.png

これだけで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>

NativePHP起動画面-HelloWorld.png

デフォルトで開発者ツールも立ち上がるようです。

普段開発者ツールを使っているエンジニアの方にとっては、馴染みもあり、すんなり開発に入れそうですね!これで、既存のLaravelスキルをそのまま活かしながら、デスクトップアプリケーションを動かせることをご確認頂けたでしょうか?

🔄 ホットリロードにも対応

ホットリロードを使え、サクサク開発できます。

✨ 感想

PHP+Laravelのスキル資産を活かしてデスクトップGUIを作れるのは革命的です!5分程で導入できt簡単でした!

🔗 参考

📝 より詳しい解説や実例は以下のブログにまとめています

👉 PHP×Laravelでスマホアプリを構築!NativePHPの使い方と実践例

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?