https://a.storyblok.com/f/270183/1368x665/3972a482c9/26mar_dev-blog_android-apps-native-php.jpg

奇妙な科学NativePHPでAndroidアプリを作る

最終更新日 March 31, 2026

所要時間:1 分

私は今、PHPの技術革新について話すというループにはまっているようだ。私の悩みのひとつは、PHPの進化のペースについていけないことです。

でも、追いついたよ。NativePHPの NativePHPララコンUS2023年は、眉をひそめるには十分でしたが、その時点では、どの程度普及するか、初期の段階ではよくわからなかったと思います。

早いもので、2026年の年明けにNativePHPのクリエイターである サイモン・ハンプシェーン・ローゼンタールが2026年を予告した。NativePHPが次のようなイベントで無料公開されることが発表された。 ララコン・インディアでNativePHPの無料化が発表されることを知り、とても驚かされた。そして、NativePHPを使った新しいビルド・プロセスを見ることができた。 ジャンプアプリ.Jumpのデモ、そしてBifrost PaaSのデモは機能が多すぎてついていけない。そして MimiNativePHP用のAI IDEだ。

この記事ではチュートリアルを通して、古典的なToDoアプリをコーディングする。 Vonage メッセージ API.そして、NativePHPがこのアプリをビルドし、ツールを使ってパッケージを取り込み、Android上でアプリを実行します。

NativePHPって何?クリエイターインタビュー

NativePHPは Laravelアプリケーションをターゲットデバイス上でネイティブに動作するように構築するために設計されています:Windows、Linux、MacOS、Android、iOSです。NativePHPの機能は徐々に進化しているので、クリエイターにいくつかの質問を投げかけ、彼ら自身の言葉で詳しい話を聞くのがベストだと思った。

Photograph of Shane and SimonShane and Simon, NativePHP's creators

NativePHPのアイデアはどのようにして生まれ、現在の形に進化したのですか?

NativePHPはもともと、デスクトップアプリ用のElectronのラッパーとして始まりました。私たちはそれを3年以上(Mac、Linux、Windows)構築してきた。2024年、サイモンはコードを解読し、iOS用にPHPをコンパイルした。その後すぐに、シェーンがAndroidでも同じことを行い、それ以来、私たちは限界に挑戦し続けています。

デスクトップでは、静的にコンパイルされたPHPバイナリと(今のところ)PHPの組み込みWebサーバーを使用して、Electronシェルとの通信を可能にしています。しかし、モバイル、特にiOSではそうはいきません。複数のバックグラウンドプロセスを実行したり、好きなときにウェブサーバーをスピンアップしたりするアプリを持つことはできません。

通常のWebサーバーのセットアップでは、PHPは通常動的にコンパイルされるため、実行時に拡張機能をロードしたりアンロードしたりすることができますが、これは高度に設定可能な反面、より複雑になり、PHPエンジンを配布するのが難しくなります。

スタティックバイナリは、PHPを「インストール」したり「設定」 したりする必要がないことを意味します。必要な拡張モジュールはすべてコンパイルする必要があるので、 変更するのは簡単ではありませんが、一度関連プラットフォーム用に コンパイルしてしまえば、あとはすべて動作します。PHPは、ダイナミックライブラリを読み込む際に遅くなる可能性のあるチェックを行う必要がないため、これによってパフォーマンスが少し向上します。

しかし、PHP(エンジン)は最も単純な形では単なるパーサーに過ぎないということに気づいたとき、大きな鍵が開けました。PHPは、PHPコードをパースするために作られ、実に得意としているのだ。誰が知っているんだ!?PHPは、PHPファイルを非常に高速に読み込んで処理することができる、 非常に優秀で高速なインタプリタなのです。

しかし、PHPにはそのような文脈でのみ使用することを強制するような ものはありません。実際、長年にわたり、PHPは完全に優れたCLIツールであり、 多くのアプリケーションがPHPの強力なCLIサポートに依存しています。

PHPのあまり知られていない特徴として、埋め込み可能なCライブラリとしてコンパイルできることがあります。この技術的な詳細がわかったので、SwiftやJava/KotlinシェルアプリケーションにPHPをコンパイルし、Laravelアプリを埋め込んで実行させることができました。

非常に軽量なカスタムPHPエクステンションのおかげで、iOSやAndroid上で実行する場合、PHPスクリプトはデバイスの機能に完全にアクセスできるようになります。

つまり、PHPやLaravelなど、ウェブ開発の世界で使い慣れたツールを使って、完全に配布可能な、オフラインファーストの、クロスプラットフォームのネイティブ・モバイル・アプリケーションを構築できるようになったのです。

そして、それはほんの始まりに過ぎない!

Laracon India 2026で、NativePHPは無料だと発表されました。どうしてそんなことができるのですか?

たくさんのことを発表しました!最も重要なことは、NativePHP for Mobileのコア部分が 完全にフリーでオープンソース誰でもiOSやAndroid用のモバイルアプリを作ることができます。私たちはこれを NativePHP Air.

もう一つの大きな要素は プラグイン.私たちは、誰でも何でも作れるようにアーキテクチャをオープンにしています。そして、あなたは本当に あらゆるデバイスのネイティブ機能を利用できる。私たちは、プロジェクトの資金源になればと思い、プレミアムなファーストパーティプラグインをいくつか用意しています(しかし、決して必須ではありません)。ほとんどのプラグインはフリーでオープンソースです。

また プラグイン・マーケットプレイスサードパーティの開発者が自身のプラグインを共有できるようにするためです。 販売サードパーティの開発者が自分たちのプレミアムプラグインをマーケットプレイスで販売できるようにする予定です。

当初からNativePHPを無料にしたかったのですが、当時はコア製品しかなかったので、開発資金を調達する方法がありませんでした。NativePHPを早い段階でプレミアム製品にしたおかげで、他の製品、特にBifrostを開発するのに十分な資金を調達することができました。

Bifrostのサブスクリプションとプレミアムプラグインの成功により、当初考えていたよりもずっと早くコアの無料化に踏み切ることができました。私たちは、無料ツールの開発とメンテナンスのコストを相殺するために、コミュニティがこれらの他の製品で私たちをサポートし続けることを願っています。

NativePHPとBifrostの違いを教えてください。

NativePHPはLaravelのようなフレームワークで、BifrostはLaravel ForgeやLaravel CloudのようなSaaSです。Bifrostはクラウドベースのプラットフォームで、複数のプラットフォーム向けにアプリを並行してコンパイルし、アプリストアにビルドを公開するプロセスをスムーズにする。

インドの発表の一部には、ビフロストの特集もあった:ジャンプとミミ。

ジャンプは、携帯電話(iOSとAndroidで動作)にインストールする無料のネイティブアプリで、コンパイルやプロビジョニングの必要なく、開発マシン(またはBifrostプロジェクト)から直接NativePHPアプリを携帯電話にデプロイできます。XcodeやAndroid Studioは一切必要ありません。デバイス上でJumpを実行し、NativePHP AirをLaravelアプリにインストールすれば、コマンド1つでアプリをスマホ上で動作させることができます。

ミミはパズルの最後のピースで、ローカル開発環境なしでアプリケーションを構築できます。NativePHPで動作するように特別に構成された最先端のエージェントAIモデルを使用することで、アプリケーションをこれまで以上に迅速に構築することができます。また、Bifrostの一部であるため、数分でアプリストアに対応できます。

Bifrostには多くの力を注いでおり、今年後半にはさらに多くの機能を予定している。

最も楽しみにしている機能は何ですか?

(シェーン)私のリストのトップは、完全なネイティブUIのレンダリングです。私たちは競合他社(MetaとGoogle)と、彼らが実装した戦略のいくつかを見てきましたが、Laravel/PHP開発者向けに、少なくとも同等のソリューション(少し優れていないとしても)を提供できると確信しています。

(サイモン)NativePHPのパフォーマンスに飛び込むことにとても興奮しています。NativePHPは素晴らしいモバイルアプリを作るための確かな選択肢ですが、私たちはそれを 最高のにしたい。マルチスレッド、バックグラウンドタスク、並列化などのPoCはすでにいくつかできています。私たちは限界に挑戦し続け、人々が「できない」「やるべきではない」と言うことをやり続けたいのです。

また、モバイル側で行った進歩をすべてデスクトップ側に戻し、Electronを完全に取り除く可能性があることにも興奮しています。そうすれば、ウェブとネイティブ・アプリケーションのための真のクロスプラットフォーム・ツールが完成するかもしれません。

SMS通知でLaravelのToDoアプリを構築する

私はAndroid端末を持っていて、それはToDoアプリになる予定です。しかし、ちょっとだけ機能を追加するために、最初に MaterialUIでスタイリングし、アイテムにチェックが入るたびにVonage Messages API経由でSMSを送るようにしたい。

でやった クロード& カーソルを使って Laravel Boost- を使用している。 Vonage PHPクライアントの依存性注入を使用するServiceコンテナに本当に苦労しました)、かなりスムーズに進みました。派手なことは何もしていません。 Eloquentそして LivewireがフロントエンドでToDoのステートを処理した。

アプリのソースコードは アプリのソースコードはこちら

Screenshot showing my mobile application with the ability to add, edit, and delete tasks.Quick and dirty UI for a classic mobile app素晴らしい。自分で調べてみてください。

前提条件

  • ギット

  • PHP 8.3 以上

  • Node 23+ & npm

  • 作曲家

  • Vonageアカウント

ウェブアプリのセットアップ

  1. あなたのマシンにリポジトリを取得します: https://github.com/Vonage-Community/blog-messages_native_php

  2. 依存関係をインストールします: composer install

  3. マイグレーションを実行する: php artisan migrate

  4. npmを実行する: npm i

  5. コマンドラインで、Viteを次のように実行する。 npm run dev

  6. 例をコピーする envをコピーして env: cp .env.example .env

  7. Vonageの認証情報を .envファイルに追加します。

最後のステップを行うには、Vonage Dashboardで新しいアプリケーションを作成し、Messages API機能をアプリケーションに追加し(この機能は使用されないので、ダミーのデータをWebhooksセクションに置くことができます)、ダウンロードした private.keyをプロジェクトのコードのルートに移動します。作成されたアプリケーションIDを控えておいてください。

  • アプリケーションを作成するには アプリケーションの作成ページでアプリケーションの名前を定義します。

  • Webhooksを使用するAPIを使用する場合は、秘密鍵が必要です。Generate public and private key "をクリックすると、自動的にダウンロードが始まります。この鍵は紛失すると再ダウンロードできません。この鍵は紛失しても再ダウンロードできません。 private_<あなたのアプリID>.key.この鍵はAPIコールの認証に使用できます。 注意:アプリケーションを保存するまで、キーは機能しません。

  • 必要な機能(Voice、Messages、RTCなど)を選択し、必要なWebhook(イベントURL、応答URL、受信メッセージURLなど)を提供します。これらはチュートリアルで説明します。

  • 保存してデプロイするには、"Generate new application "をクリックして設定を確定します。これでアプリケーションはVonage APIで使用する準備が整いました。

これらの値を .envファイルに差し込むことができる:

VONAGE_APPLICATION_ID="<YOUR_APPLICATION_ID_HERE>"
VONAGE_PRIVATE_KEY_PATH="./private.key"
VONAGE_TO="<YOUR-NUMBER-HERE>"

アプリを提供する必要があります。私は Laravel Herd.インストール方法は インストール手順は.あるいは、コマンドラインから組み込みのPHPサーバーを実行することもできます: php artisan serve

これで、基本的なアプリを立ち上げて実行することができるはずです。次は...

NativePHPジャンプでAndroid上でアプリを実行する

アンドロイドでこれを実行するには、4つのステップしかない。 つのステップ! これだけ.さあ、始めよう:

  1. Androidデバイスで ビフロストジャンプアプリ.これは、QRコードからNativePHPでビルドされたアプリケーションを取り込むラッパーとして機能します。

  2. ComposerでNativePHPをインストールします: composer require nativephp/mobile

  3. ジャンプアプリのためにアプリを作りましょう: php artisan native:jump

  4. 自動的にブラウザが起動し、QRコードが表示されます。お使いの携帯電話でジャンプアプリを開き、QRコードをスキャンします。

Me holding up a four-step NativePHP appR U Being Serious Right Now?これでToDoモバイルアプリケーションの準備は整った。ToDoにチェックを入れて、何が起こるか見てみよう。

Vonage Messages APIを使用したAndroidからのSMS送信

Screenshot of my phone with messages sent from my NativePHP appSMS delivered Natively from Android via. VonageアプリでToDoにチェックを入れると、携帯電話にSMSが届きます!特にデベロッパー・エクスペリエンスについて書くときは、思い込みや欠落が多くなりがちだ。しかし、これは... ただ動く.

次はどうする?

PHPで本物のモバイル・アプリを作るのがいかに簡単か、お分かりいただけたと思う。私は、当社の ネットワーク・パワー・ソリューション例えば Identity Insights APIをデモとして使うなど、私たちのNetwork-Powered Solutionsを実装しようと考えていますが、NativePHPのプラグイン・マーケットプレイスをチェックして、モバイル開発者がどんな機能を使えるかを確認するのも楽しみです。そう、ここでは「PHP開発者」ではなく「モバイル開発者」という表現を使っている。なぜなら、これはゲームチェンジャーだからだ。

ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。

最新の開発者向けニュース、ヒント、イベント情報をお届けします。

シェア:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeシニアPHPデベロッパー

スタンダップ・コメディーの学位論文を持つ俳優の訓練を受け、ミートアップ・シーンを経てPHP開発に携わるようになった。技術について話したり書いたり、レコード・コレクションから変わったレコードを再生したり買ったりしています。