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

Verrückte Wissenschaft: Android-Anwendungen mit NativePHP erstellen

Zuletzt aktualisiert am March 31, 2026

Lesedauer: 10 Minuten

Ich scheine im Moment in einer Schleife festzustecken, und diese Schleife besteht darin, über Innovationen in PHP zu sprechen. Eines meiner Probleme ist, dass ich mit den neuen Dingen, die in PHP auftauchen, nicht ganz Schritt halten kann, weil die Entwicklung so schnell voranschreitet.

Aber ich hole auf. Ich beobachte die Einführung von NativePHP auf Laracon US 2023 war genug, um die Augenbrauen zu heben, aber ich glaube, ich war mir damals nicht sicher, wie sehr es sich durchsetzen würde.

Spulen wir ins Jahr 2026 vor, und zu Beginn des Jahres haben die Erfinder von NativePHP Simon Hamp und Shane Rosenthal einen Ausblick auf das kommende Jahr. Es haut mich aus den Socken, dass NativePHP auf der Laracon India als kostenlos angekündigt wird. Laracon Indien in einem Monat angekündigt wird. Dann kann ich mir den neuen Build-Prozess mit ihrer Sprung-Anwendung. Die Demo von Jump und dann die Bifrost PaaS hat so viele Funktionen, dass ich nicht mithalten kann. Dann kommt Mimieine KI-IDE für NativePHP.

In diesem Artikel werden wir ein Tutorial durchgehen; wir werden eine klassische To-Do-App mit einer netten kleinen Funktion programmieren, die eine SMS an ein ausgewähltes Gerät über die Vonage Messages API. Anschließend wird NativePHP die App erstellen, das Paket über seine Tools einlesen und die App auf Android ausführen.

Moment mal, was ist NativePHP? Ein Interview mit seinen Schöpfern

NativePHP wurde entwickelt, um die Laravel Applications so zu entwickeln, dass sie nativ auf den Zielgeräten laufen: Windows, Linux, MacOS, Android, iOS. Die Funktionen wurden schrittweise weiterentwickelt, daher dachte ich, es wäre wohl am besten, den Entwicklern ein paar Fragen zu stellen, damit wir mehr in ihren eigenen Worten hören können.

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

Wie ist die Idee zu NativePHP entstanden und wie hat es sich zu dem entwickelt, was es heute ist?

NativePHP wurde ursprünglich als Wrapper um Electron für Desktop-Anwendungen entwickelt. Daran haben wir über 3 Jahre lang gearbeitet (Mac, Linux, Windows). Im Jahr 2024 hat Simon den Code geknackt und PHP für iOS kompiliert, sodass wir PHP-Code auf dem Gerät nativ verwenden können. Kurz darauf tat Shane das Gleiche für Android, und seitdem haben wir die Grenzen immer weiter verschoben.

Auf dem Desktop verwenden wir statisch kompilierte PHP-Binärdateien und (vorerst) den in PHP integrierten Webserver, um die Kommunikation mit der Electron-Shell zu ermöglichen. Aber das funktioniert nicht auf mobilen Geräten, insbesondere auf iOS. Sie können keine Anwendungen mit mehreren im Hintergrund laufenden Prozessen haben oder Webserver hochfahren, wann immer Sie wollen.

In einem normalen Webserver-Setup wird PHP in der Regel dynamisch kompiliert, so dass Erweiterungen zur Laufzeit geladen und entfernt werden können. Dies ist zwar in hohem Maße konfigurierbar, aber auch komplexer, was die Verbreitung der PHP-Engine erschwert.

Statische Binärdateien bedeuten, dass Sie PHP nicht 'installieren' oder 'konfigurieren' müssen; Sie können einfach eine einzige ausführbare Datei für die jeweilige Plattform verteilen und sie so funktionieren lassen, wie sie kompiliert wurde. Alle Erweiterungen, die Sie benötigen, müssen einkompiliert werden, so dass es nicht so einfach ist, sie zu ändern, aber sobald Sie es für die entsprechende Plattform kompiliert haben, funktioniert alles. PHP erhält dadurch sogar einen kleinen Leistungsschub, weil es einige Prüfungen nicht durchführen muss, die beim Laden dynamischer Bibliotheken langsamer sein können.

Aber die große Erleichterung kam, als ich erkannte, dass PHP (die Engine) in seiner einfachsten Form nur ein Parser ist. Es wurde speziell für das Parsen von PHP-Code entwickelt - und ist wirklich gut darin. Wer hätte das gedacht!? Es ist einfach ein sehr guter, sehr schneller Interpreter, der PHP-Dateien sehr schnell lesen und verarbeiten kann.

Normalerweise machen wir daraus Web-Frameworks, aber es gibt nichts in PHP, was es zwingt, nur in diesem Kontext verwendet zu werden. Tatsächlich ist PHP seit vielen Jahren ein perfektes CLI-Tool, und viele Applikationen verlassen sich auf seine robuste CLI-Unterstützung.

Ein wenig bekanntes Merkmal von PHP ist jedoch, dass es auch als einbettbare C-Bibliothek kompiliert werden kann, was bedeutet, dass Sie die PHP-Engine in jede andere Anwendung integrieren können. Mit diesem technischen Detail waren wir in der Lage, PHP in unsere Swift- und Java/Kotlin-Shell-Applikationen zu kompilieren und eine eingebettete Laravel-Applikation laufen zu lassen.

Dank einer sehr leichtgewichtigen benutzerdefinierten PHP-Erweiterung, die einige neue globale PHP-Funktionen hinzufügt, haben Ihre PHP-Skripte bei der Ausführung auf iOS und Android vollen Zugriff auf die Gerätefunktionen.

Das bedeutet, dass Sie jetzt vollständig verteilbare, offline-first, plattformübergreifende native mobile Applications mit PHP und Laravel und all den anderen Tools erstellen können, die Sie aus der Welt der Webentwicklung gewohnt sind.

Und das ist erst der Anfang!

Auf der Laracon India 2026 wurde angekündigt, dass NativePHP kostenlos sein wird. Wie können Sie das tun?

Wir haben eine Menge Dinge angekündigt! Die wichtigste davon ist, dass der Kern von NativePHP for Mobile jetzt komplett kostenlos und quelloffen istDamit kann jeder damit mobile Anwendungen für iOS und Android entwickeln. Wir nennen es NativePHP Air.

Der andere große Teil davon ist Plugins. Wir haben die Architektur geöffnet, damit jeder alles bauen kann. Und Sie können wirklich in jede nativen Funktionen des Geräts nutzen. Wir haben einige Premium-Plugins von Erstanbietern, von denen wir hoffen, dass sie zur Finanzierung des Projekts beitragen (aber sie sind keineswegs erforderlich). Die meisten Plugins sind außerdem kostenlos und quelloffen, und wir haben vor, viele, viele weitere zu entwickeln.

Wir haben auch einen Plugin-Marktplatz um Entwicklern von Drittanbietern die Möglichkeit zu geben, ihre eigenen Plugins zur Verfügung zu stellen, und in den kommenden Wochen werden wir Drittanbietern die Möglichkeit geben, ihre zu verkaufen. ihre eigenen Premium-Plugins über unseren Marktplatz zu verkaufen.

Von Anfang an wollten wir NativePHP kostenlos anbieten, aber wir hatten damals nur das Kernprodukt, so dass es keine Möglichkeit gegeben hätte, dessen Entwicklung zu finanzieren. Dadurch, dass wir es schon früh zu einem Premium-Produkt gemacht haben, konnten wir genug Kapital aufbringen, um andere Angebote, insbesondere Bifrost, zu entwickeln.

Durch den Erfolg der Bifrost-Abonnements in Verbindung mit unseren Premium-Plugins waren wir in der Lage, den Sprung zum kostenlosen Kernprodukt viel schneller zu schaffen, als wir uns ursprünglich erträumt hatten. Wir hoffen, dass die Community uns auch weiterhin mit diesen anderen Produkten unterstützen wird, um die Kosten für die Entwicklung und Pflege der kostenlosen Tools zu decken.

Können Sie den Unterschied zwischen NativePHP und Bifrost erklären?

NativePHP ist das Framework, wie Laravel; Bifrost ist das SaaS, eher wie Laravel Forge oder Laravel Cloud. Bifrost ist eine Cloud-basierte Plattform, die den Prozess der parallelen Kompilierung Ihrer Anwendungen für mehrere Plattformen und die anschließende Veröffentlichung der Builds in den App-Stores vereinfacht.

Teil unserer Indien-Ankündigungen waren auch Bifrost-Funktionen: Jump und Mimi.

Springen ist eine kostenlose native App, die Sie auf Ihrem Telefon installieren (funktioniert für iOS und Android) und mit der Sie Ihre NativePHP-Apps direkt von Ihrem Entwicklungsrechner (oder von Ihren Bifrost-Projekten) auf Ihrem Telefon bereitstellen können, ohne dass Sie kompilieren oder bereitstellen müssen. Sie benötigen weder Xcode noch Android Studio. Wenn Jump auf Ihrem Gerät läuft und NativePHP Air in Ihrer Laravel-Anwendung installiert ist, genügt ein einziger Befehl, um Ihre Anwendung auf Ihrem Telefon zu starten.

Mimi ist das letzte Puzzlestück, mit dem Sie Anwendungen ganz ohne lokale Entwicklungsumgebung erstellen können. Mithilfe hochmoderner agentenbasierter KI-Modelle, die wir speziell für die Arbeit mit NativePHP konfiguriert haben, können Sie Ihre Applications schneller denn je erstellen. Und da es Teil von Bifrost ist, können Sie Ihre Anwendungen in wenigen Minuten für den App Store bereitstellen.

Wir geben uns viel Mühe mit Bifrost und haben für später in diesem Jahr noch viele weitere Funktionen geplant.

Auf welche neuen Funktionen freuen Sie sich am meisten?

(Shane) Ganz oben auf meiner Liste steht das Rendern einer vollständig nativen Benutzeroberfläche. Wir haben uns unsere Konkurrenten (Meta und Google) und einige der von ihnen umgesetzten Strategien angesehen und sind fest davon überzeugt, dass wir eine mindestens ebenso gute (wenn nicht sogar etwas bessere) Lösung für Laravel/PHP-Entwickler anbieten können.

(Simon) Ich freue mich sehr darauf, die Leistung von NativePHP zu verbessern. NativePHP ist bereits eine solide Wahl für die Entwicklung toller mobiler Anwendungen, aber wir wollen es zum beste Wahl machen. Wir haben bereits einige funktionierende PoCs für Dinge wie Multithreading, Hintergrundaufgaben und Parallelisierung. Wir wollen die Grenzen immer weiter hinausschieben und Dinge tun, von denen die Leute sagen, dass sie nicht möglich sind oder nicht gemacht werden sollten.

Ich freue mich auch darauf, all die Fortschritte, die wir auf der mobilen Seite gemacht haben, auf die Desktop-Seite zu übertragen und Electron möglicherweise ganz abzuschaffen. Dann könnten wir am Ende ein wirklich plattformübergreifendes Tool für Web- und native Anwendungen haben.

Aufbau einer Laravel To-Do-App mit SMS-Benachrichtigungen

Ich habe ein Android-Gerät, und es wird eine ToDo-App sein. Um jedoch eine kleine Prise zusätzlicher Funktionalität hinzuzufügen, möchte ich sie zunächst mit MaterialUIgestylt werden und außerdem eine SMS über die Vonage Messages API senden, wenn ein Punkt abgehakt wird.

Ich habe es in Claude & Cursor mit Laravel Boost - für den größten Teil (es war wirklich schwierig mit dem Service-Container, der Dependency Injection für den Vonage PHP-Klient), verlief es ziemlich reibungslos. Nichts allzu Ausgefallenes - alle Berechtigungen wurden entfernt, ich habe eine ToDo-Entität in Eloquentund Livewire verwaltete den ToDo-Status im Frontend.

Sie finden den Quellcode der App hier

Screenshot showing my mobile application with the ability to add, edit, and delete tasks.Quick and dirty UI for a classic mobile appSehr gut. Überprüfen Sie es selbst.

Voraussetzungen

  • git

  • PHP 8.3+

  • Node 23+ & npm

  • Komponist

  • Ein Vonage Account

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

Einrichten der Webanwendung

  1. Holen Sie das Repository auf Ihren Rechner: https://github.com/Vonage-Community/blog-messages_native_php

  2. Abhängigkeiten installieren: composer install

  3. Migrationen durchführen: php artisan migrate

  4. Führen Sie npm aus: npm i

  5. In der Befehlszeile starten Sie Vite mit npm run dev

  6. Kopieren Sie das Beispiel env um es zu einem Live env: cp .env.example .env

  7. Fügen Sie Ihre Vonage-Anmeldedaten in die Datei .env Datei hinzu.

Für den letzten Schritt müssen Sie eine neue Anwendung im Vonage Dashboard erstellen, der Anwendung die Messages API-Fähigkeit hinzufügen (Sie können Dummy-Daten im Abschnitt Webhooks platzieren, da diese Funktion nicht verwendet wird) und die heruntergeladene private.key in das Stammverzeichnis Ihres Projektcodes. Notieren Sie sich die erstellte Application ID.

  • Um eine Anwendung zu erstellen, gehen Sie auf die Seite Erstellen einer Anwendung auf dem Vonage Dashboard und legen Sie einen Namen für Ihre Anwendung fest.

  • Wenn Sie eine API verwenden möchten, die Webhooks nutzt, benötigen Sie einen privaten Schlüssel. Klicken Sie auf "Generate public and private key", der Download sollte automatisch starten. Bewahren Sie ihn sicher auf; dieser Schlüssel kann bei Verlust nicht erneut heruntergeladen werden. Er folgt der Namenskonvention privat_<Ihre App-ID>.key. Dieser Schlüssel kann nun zur Authentifizierung von API-Aufrufen verwendet werden. Hinweis: Ihr Schlüssel funktioniert erst, wenn Ihre Anwendung gespeichert ist.

  • Wählen Sie die benötigten Funktionen (z. B. Voice, Nachrichten, RTC usw.) und stellen Sie die erforderlichen Webhooks bereit (z. B. Ereignis-URLs, Antwort-URLs oder URLs für eingehende Nachrichten). Diese werden im Lernprogramm beschrieben.

  • Zum Speichern und Bereitstellen klicken Sie auf "Neue Anwendung generieren", um die Einrichtung abzuschließen. Ihre Anwendung ist nun bereit für die Verwendung mit Vonage-APIs.

Sie können diese Werte dann in die .env Datei einfügen, zum Beispiel:

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

Sie müssen Ihre Anwendung bereitstellen. Ich empfehle die Verwendung von Laravel Herd. Sie finden die Installationsanleitung finden Sie hier. Alternativ können Sie den integrierten PHP-Server über die Befehlszeile ausführen: php artisan serve

Sie sollten nun Ihre Basis-App zum Laufen gebracht haben. Jetzt ist es Zeit für...

Ausführen der App auf Android mit NativePHP Jump

Es sind nur vier Schritte nötig, um diese Anwendung unter Android zum Laufen zu bringen. Vier Schritte! Das war's. Los geht's:

  1. Laden Sie auf Ihrem Android-Gerät die Bifrost Jump-App herunter.. Diese fungiert als Wrapper, der eine mit NativePHP erstellte Anwendung über einen QR-Code einlesen kann.

  2. Installieren Sie NativePHP mit Composer: composer require nativephp/mobile

  3. Erstellen Sie Ihre Anwendung für die Jump-Anwendung: php artisan native:jump

  4. Es wird automatisch ein Browser mit einem QR-Code angezeigt, der hochgefahren wird. Öffnen Sie Ihre Jump-App auf Ihrem Telefon und scannen Sie den QR-Code.

Me holding up a four-step NativePHP appR U Being Serious Right Now?Die mobile Anwendung ToDo ist nun einsatzbereit. Es ist Zeit, einen ToDo-Punkt abzuhaken, und wir werden sehen, was passiert...

Senden von SMS von Android mit der Vonage Messages API

Screenshot of my phone with messages sent from my NativePHP appSMS delivered Natively from Android via. VonageWir haben eine SMS auf unser Telefon bekommen, wenn wir ein ToDo in der App abgehakt haben! Normalerweise bin ich kein Befürworter von "es funktioniert einfach", vor allem nicht, wenn ich über die Erfahrung von Entwicklern schreibe, bei der man oft eine Menge Wissen voraussetzt oder Teile fehlen. Aber das hier hat einfach... einfach funktioniert.

Wie geht es weiter?

Jetzt, wo Sie gesehen haben, wie einfach es ist, echte mobile Anwendungen mit PHP zu erstellen, was werden Sie selbst bauen? Ich habe darüber nachgedacht, unsere Netzwerk-gestützte Lösungen, wie die Verwendung der Identitätseinblicke-API als Demo zu verwenden, aber ich freue mich auch darauf, den NativePHP-Plugin-Marktplatz zu erkunden, um zu sehen, welche Möglichkeiten mobile Entwickler nutzen können. Und ja, ich spreche hier von "mobilen Entwicklern", nicht von "PHP-Entwicklern". Denn: Das ist ein entscheidender Schritt nach vorn.

Haben Sie eine Frage oder möchten Sie etwas mitteilen? Beteiligen Sie sich am Gespräch auf dem Vonage Community Slackund bleiben Sie auf dem Laufenden mit dem Entwickler-Newsletter, folgen Sie uns auf X (früher Twitter), abonnieren Sie unseren YouTube-Kanal für Video-Tutorials, und folgen Sie der Vonage Entwickler-Seite auf LinkedInein Raum für Entwickler, um zu lernen und sich mit der Community zu vernetzen. Bleiben Sie in Verbindung, teilen Sie Ihre Fortschritte und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!

Teilen Sie:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeSenior PHP Entwickler Advocate

Als ausgebildeter Schauspieler mit einer Dissertation in Standup-Comedy bin ich über die Meetup-Szene zur PHP-Entwicklung gekommen. Man findet mich, wenn ich über Technik spreche oder schreibe, oder wenn ich seltsame Platten aus meiner Vinylsammlung spiele oder kaufe.