インストーラー生成、SQLiteによるデータ保持、CSV・PDF出力、バックアップ・復元、アプリ更新時のデータ保持までWindows実機で確認しました。
プロジェクト概要
| 区分 | 自主技術検証 / 公開PoC |
|---|---|
| 検証対象 | Windowsインストール型・オフライン業務アプリ |
| サンプルアプリ | Offline Work Order Manager |
| 用途 | オフライン作業依頼・受注管理 |
| 技術構成 | Laravel / PHP / NativePHP / SQLite |
| 検証環境 | Windows 11実機 |
| 検証結果 | PoC合格 |
| 公開範囲 | ソースコード・仕様・検証証跡をGitHubで公開 |
検証の背景
業務システムでは常にWebアプリが最適とは限りません。インターネット接続を前提にできない現場も存在し、Windows PC単体で利用する小規模業務システムという選択肢もあります。
Windows業務アプリの構成候補を増やすための検証として、PHP / Laravelの知見を活かせる方式であるNativePHP Desktopを用いたPoCを構築しました。
今回検証したこと
- Windows向けインストーラーを生成できるか
- 開発用PHPをインストールしていないPCで動作するか
- システムNode.jsへ依存せず動作するか
- インターネット接続なしで利用できるか
- SQLiteへ業務データを保存できるか
- アプリ再起動後もデータを保持できるか
- CSV / PDFなど一般的な業務機能を実装できるか
- バックアップ / 復元が成立するか
- アプリ更新時に既存データを保持できるか
構築したサンプル業務アプリ
Offline Work Order Manager — オフライン作業依頼・受注管理アプリ
顧客管理
- 登録・編集・削除・一覧・検索
- CSV出力・CSV取込
受注・作業依頼管理
- 登録・編集・削除・一覧・検索
- ステータス絞り込み・顧客絞り込み
- CSV出力・日本語PDF出力
データ保全
- SQLiteバックアップ・復元
- 不正SQLite / 不正スキーマの拒否
- 再起動後のデータ保持
技術構成
| 言語・フレームワーク | PHP 8.4.x / Laravel 12.x |
|---|---|
| デスクトップ基盤 | NativePHP Desktop 2.2.1 / Electron 38.5.0 |
| データベース | SQLite |
| UI | Blade + CSS |
| DOMPDF |
Node.js / Composerは開発・ビルド環境として使用しています。利用者PCへの導入は不要です。
Windows実機検証結果
配布・起動
- Windows向け正式ビルド成功
- NSISインストーラー生成
- PHP未導入環境でインストール・起動
- 開発用Composerなしで起動
- システムNode.jsへ依存せず起動
オフライン利用
- オフライン起動
- オフライン検索
- オフラインCSV処理
データ
- SQLite書き込み
- 再起動後のデータ保持
- 日本語データ
- CSVエラー時のロールバック
- バックアップ / 復元
業務機能
- 顧客検索
- 受注検索・絞り込み
- CSV取込・出力
- 日本語PDF出力
自動テスト
PoCで実装した機能に対して自動テストを実施しました。
58 tests / 158 assertions — PASS
アプリ更新・データ保持検証
v0.1.0からv0.2.0への上書きインストールを行い、以下を確認しました。
- 既存顧客データ保持
- 既存受注データ保持
- migration適用
- v0.2で新規データ登録
- 再起動後データ保持
- オフライン動作
結果: 合格
更新試験時には一時的な独自migration hookを利用していたため、NativePHP標準migration機構だけによる更新を単独で実証したものではありません。
検証結果
Laravel / PHP資産を活用しながら、Windowsインストール型・オフライン業務アプリを構築する技術選択肢として一定の成立性を確認できました。
NativePHPを今後のWindows業務アプリ開発方式として正式採用したという意味ではありません。案件ごとにTauri、C#、Webアプリなどを含めて選定します。
未検証・制約
未検証
- PHP / Node.js / Composerが一切入っていない完全クリーンWindows VM
- PC A → PC Bへのバックアップ移行
PoC対象外
- コード署名
- 本番用自動アップデート
- GitHub Releasesからのインストーラー配信
- 商用ライセンス管理
- ユーザー認証
- LAN / 複数PC同期・クラウド同期・API連携
- ハードウェア連携・Windowsサービス
- 本番レベルの暗号化バックアップ
今回のPoCではソースコードを公開する技術検証を目的としており、製品配布向けのSecure app bundleやコード署名は検証対象外としています。
関連する技術記事
今回のPoCについて、検証全体とアプリ更新時のデータ保持をそれぞれ技術記事としてまとめています。
Laravel + NativePHPでWindowsオフライン業務アプリを作れるか実機検証した
インストール、オフライン動作、SQLite、CSV・PDF、バックアップ、アプリ更新まで、PoC全体の検証内容と結果をまとめています。
Zennで検証全体の記事を読む →Laravel + NativePHPアプリを上書き更新してSQLiteデータが残るかWindows実機で検証した
v0.1.0からv0.2.0へ上書き更新し、SQLiteの既存データ保持、migration適用、更新後の継続利用をWindows実機で確認した内容をまとめています。
Qiitaで更新検証の記事を読む →業務に合ったシステム構成からご相談いただけます
Webシステム、Windowsアプリなどの方式を最初から決める必要はありません。利用場所、ネットワーク環境、既存システム、運用方法を確認し、業務に合った構成を検討します。
業務システムについて相談する