Een app bouwen met NativePHP
Dirk Jan Laros · 10 minuten leestijd · Gepubliceerd op 19-5-2025

Een app bouwen met NativePHP

Al enige tijd houden wij de ontwikkelingen rondom het bouwen van offline desktop apps in de gaten. Eerder deden we onderzoek naar Electron. Dat had nog wat nadelen, waardoor we dit niet actief hebben aangeboden aan onze klanten.

NativePHP

De ontwikkelingen gaan ondertussen door en is er een hele interessante nieuwe speler op de markt: NativePHP. Al enige tijd is de bèta beschikbaar maar nu zijn ze officieel live en claimen eenvoudige ontwikkeling voor desktop én mobile! Wat doet NativePHP anders? En wat maakt het zo interessant voor ons als Laravel-specialist? Je leest het in deze blog.

Wat is NativePHP?

Op 9 april 2025 is de officiële eerste release van NativePHP live gegaan. Op 1 april 2023 was het plan geboren om een framework te ontwikkelen dat PHP-ontwikkelaars in staat stelt om snel en eenvoudig native desktop- en mobiele applicaties te bouwen. NativePHP maakt gebruik van de tools en technologieën die ontwikkelaars al kennen, zoals HTML, CSS, JavaScript en PHP. NativePHP benadrukt vooral dat het geen volledig nieuw framework is dat je moet leren. Het zou dus naadloos moeten integreren met bestaande mogelijkheden van Laravel.

NativePHP biedt dus ook de mogelijkheid naast desktop, mobiele apps te bouwen. Omdat dit betaalde features zijn laten we dit buiten beschouwing in de rest van deze blog.

Waar is NativePHP voor bedoeld?

NativePHP is bedoeld voor het bouwen van verschillende soorten desktopapplicaties. Toepassingen waarvoor NativePHP geschikt is zijn voornamelijk op zichzelf staande applicaties; voor intern gebruik binnen bedrijven, zoals dashboards, rapportagetools, notitie-apps of eenvoudige taakbeheerders. Synchronisatie met de cloud moet echt apart opgezet worden.

NativePHP is met name geschikt voor op zichzelf staande applicaties

Local filesystem

Een belangrijke extra mogelijkheid ten opzichte van webapplicaties is dat je eenvoudig kunt integreren met het local filesystem. Je kunt dus dingen doen met lokale bestanden. Het is belangrijk om te vermelden dat het PHP-proces dezelfde rechten heeft als de aangemelde gebruiker. Dit betekent dat de applicatie bestanden kan lezen en schrijven waar de gebruiker ook toe geautoriseerd is.

Kan je met NativePHP één codebase gebruiken voor zowel web, desktop, iOS en Android?

Een grote vraag die nog open staat is: hoe eenvoudig kan je een codebase omzetten naar een nieuw platform? Hoe ver gaat die magie? Het antwoord daarop is: heel ver, met een belangrijke “maar”.

Hoe eenvoudig kan je een codebase omzetten naar een nieuw platform?

De magie is dat het framework een engine opzet waarin een browser, database en webserver aanwezig zijn. Bovendien ook specifieke zaken als bijvoorbeeld queues worden geregeld. Eigenlijk is het dus een app met een browservenster waarmee je slechts één (lokale) website bekijkt. Is je ontwerp ook responsive? Dan ben je in principe klaar om gebruik te maken van de mogelijkheden voor mobiele applicatie. Zelfs je .env-bestand wordt meegenomen in de build.

Veiligheid & database

De laatste opmerking brengt me op een belangrijk aandachtspunt in het kader van veiligheid. Want eigenlijk bouw je een app voor local-use only. Als je een webapp omzet naar een desktop app moet je met een online database communiceren. Om die connectie op te zetten moet je een aparte API met veilige API-keys opzetten, en niet een connectie met username and password via het .env-bestand.

Je hebt een moederschip met API, en daaraan koppel je via een API alle lokale apps. In principe is dit hetzelfde als gewone mobile apps. Elke app heeft dus een lokale database die gesynchroniseerd moet worden met de online database.

Structuur

Hoe installeer je NativePHP?

Installatie gaat via de overbekende weg: Composer.

composer require nativephp/electron

En daarna de installer via PHP Artisan:

php artisan native:install

Wat is het verschil tussen NativePHP en Electron?

Qua eindresultaat is er niet heel veel verschil. Beide platforms bieden een eenvoudige integratie om desktop apps te bouwen (al gaat NativePHP verder door iOS en Android aan te bieden).

Het grote verschil is dat Electon een Javascript-basis heeft en gericht is op een zo groot mogelijke flexibiliteit. Grote voorbeelden van Electron-apps zijn Slack, VS Code en Figma. NativePHP daarentegen richt zich volledig op de Laravel-developer, dus nieuwe technieken leren is niet nodig. Alleen de package installeren, een paar veiligheidsaanpassingen maken en je bent ongeveer klaar om te verkopen.

Waarom is NativePHP dé keus voor Laravel developers?

NativePHP daarentegen richt zich volledig op de Laravel-developer, en dat lees je vooral in de documentatie terug. Overal vind je tips die specifiek bedoeld zijn voor Laravel applicaties. Hierdoor is het platform eigenlijk een no-brainer wordt als je overweegt een desktop app te bouwen met Laravel.

Is NativePHP klaar voor productie?

Gezien de lange ontwikkeltijd (iets meer dan 2 jaar) en de lange bèta-tijd denken wij dat het platform wel relatief stabiel en doordacht is ontwikkeld. Maar met alle nieuwe platforms is het wachten op een grote revisie. Dit hebben we gezien bij bijvoorbeeld Livewire v2 naar v3 en op dit moment FilamentPHP v3 naar v4. Dan hebben we het nog niet eens over de eerdere versies. Nu denk ik wel dat NativePHP de bèta groter heeft aangepakt dan Livewire en Filament, dus misschien dat we hier lang op versie 1 kunnen blijven werken, zonder ingewikkelde upgrades.

Verder geeft Simon Hamp op Github aan dat ze nog wat punten op de backlog hebben staan. NativePHP werkt aan nieuwe documentatie-updates en heeft de Kitchen Sink-app uitgebracht om de mogelijkheden voor desktop te demonstreren. Het team verzamelt gebruikersfeedback voor toekomstige functies. Zephpyr, de build-service voor NativePHP.

Conclusie

NativePHP is een zeer belangrijke speler en een no-brainer voor Laravel-developers die (desktop-) apps willen ontwikkelen. Het integreren gaat relatief eenvoudig, echter moeten er wel aanpassingen gemaakt worden in de code om een veilige app te ontwikkelen. Bovendien als een centrale database gewenst is moet er een API aan de online applicatie worden toegevoegd waarmee lokale apps kunnen communiceren door middel van een API.

Een desktop app laten ontwikkelen

Bekijk zelf de mogelijkheden via www.nativephp.com of neem gerust eens contact met ons op om te sparren over de mogelijkheden.

Alternatieven

Zoals je hebt gelezen hebben we al eerder onderzoek gedaan naar het bouwen van desktop apps met Electron. Je kunt hierover lezen in de blog die Thymen destijds heeft geschreven. Hij benoemd daar ook nog twee andere alternatieven: Tauri en Flutter.

Profielfoto van Dirk Jan

Dirk Jan

lead-developer

Dirk Jan is developer bij en eigenaar van Q2-software.nl. Hij heeft grote passie voor Laravel, front-end en merkidentiteit.

Tags

Tools

Samen aan de slag
Of een vraag?

stuur een e-mail naar
info@q2-software.nl
of telefoneer 085 06 06 133