Blog / Article #162
NativePHP : Vos applis PHP, enfin sur le bureau (et le mobile) sans réécrire tout le bazar

star

05 Novembre 2026
Illustration futuriste montrant des extraits de code PHP et le logo Laravel se transformant en icônes d’applications natives (macOS, Windows, Linux, iOS, Android) via un pont-conduit symbolisant le lien entre le web et les plateformes natives, dans un style moderne et épuré aux couleurs vibrantes.

Ah, le doux rêve de l'application multi-plateforme ! On a tous un jour eu cette idée lumineuse : « Et si ma super application web PHP pouvait aussi être une appli de bureau toute propre, ou même une app mobile sur mon téléphone ? » Et là, c'est le drame. On pense à Electron, à React Native, à Flutter... et à la montagne de JavaScript ou de Dart qu'il va falloir ingurgiter. Mais ça, c'était avant. Avant que NativePHP n'arrive sur le ring avec une promesse simple : prendre votre code PHP existant, et le transformer en application native.

NativePHP : le pont entre le web et le natif, mais en PHP, s'il vous plaît

NativePHP, c'est un peu le mouton à cinq pattes que personne n'attendait vraiment, mais dont on rêvait secrètement. Lancé en 2023 par Marcel Pociot, ce projet vise à permettre aux développeurs PHP (et surtout Laravel) de créer des applications de bureau pour macOS, Windows, Linux, et même mobiles pour iOS et Android. Comment ? En encapsulant votre application PHP dans un shell natif. Pour le bureau, on parle d'Electron ou de Tauri. Pour le mobile, on passe par Swift ou Kotlin. Le tout, avec votre moteur PHP intégré. Magique ? Pas tout à fait, mais diablement pratique.

L'idée, c'est de capitaliser sur vos compétences PHP et votre écosystème Laravel pour produire des applications qui ressemblent et se comportent comme des applications natives. Fini les interfaces web dans un navigateur, on parle de vraies fenêtres, de menus contextuels, d'icônes dans la barre des tâches, et de notifications système. Et pour le mobile, une expérience qui se veut 100% native avec la version 4.x, dite « SuperNative », actuellement en bêta.

Pourquoi NativePHP ? Le rêve (presque) éveillé de l'application multi-plateforme

Franchement, pourquoi s'embêter à réécrire une application déjà fonctionnelle en PHP juste pour qu'elle tourne sur un bureau ? C'est là que NativePHP entre en jeu. Le principal avantage, c'est la réutilisation de code. Si vous avez déjà une application Laravel, une API ou même une simple logique métier en PHP, vous pouvez la transposer en application native avec un effort réduit. C'est un gain de temps et d'argent considérable.

Imaginez pouvoir offrir une version desktop de votre CRM interne, ou une application mobile pour interagir avec votre service en ligne, sans avoir à recruter une équipe mobile ou à vous former à un écosystème complètement différent. C'est la promesse de NativePHP : une seule base de code (majoritairement PHP), plusieurs plateformes.

Premiers pas : Installation et création d'un projet NativePHP

Pour se lancer, il faut quelques prérequis classiques pour un développeur PHP : PHP 8.1+, Composer, Node.js & NPM (oui, même pour le PHP, on y reviendra), et évidemment Laravel (v10 ou supérieur est recommandé). Si vous êtes sur Mac ou Windows, je vous recommande chaudement Laravel Herd pour gérer PHP et Node.js, ça simplifie grandement la vie.

Commençons par une application Laravel toute neuve. Si vous en avez déjà une, passez la première étape :

composer create-project laravel/laravel mon-app-nativephp
cd mon-app-nativephp

Ensuite, on installe le paquet NativePHP via Composer. Attention, il y a une version pour le bureau et une pour le mobile :

Pour une application de bureau (avec Electron par exemple) :

composer require nativephp/electron

Pour une application mobile :

composer require nativephp/mobile

Une fois le paquet Composer installé, il faut installer les fichiers NativePHP Core :

php artisan native:install

Si vous travaillez sur le mobile et que vous mettez à jour, un petit --force peut être nécessaire : php artisan native:install --force.

Pour les interfaces mobiles, il existe un paquet dédié :

composer require nativephp/mobile-ui

Et voilà ! Pour lancer votre application en mode développement, c'est aussi simple qu'un Laravel classique :

php artisan native:serve

Votre application Laravel va démarrer, encapsulée dans sa fenêtre native. C'est assez bluffant la première fois.

Anatomie d'une application NativePHP : Comment ça marche sous le capot

Alors, comment ça fonctionne tout ce bazar ? Pour les applications de bureau, NativePHP intègre un moteur PHP et votre code Laravel dans un conteneur Electron ou Tauri. En gros, c'est comme si vous aviez un mini-serveur web PHP/Laravel qui tourne en local, et dont l'interface est affichée dans une fenêtre native. C'est astucieux, mais comme on le verra, ça a ses limites.

Pour le mobile, l'approche est un peu différente, surtout avec la version 4.x (SuperNative). L'objectif est de s'éloigner des WebViews pour offrir une expérience 100% native. Votre code PHP est toujours là, mais il interagit avec les composants UI natifs via une architecture plus profonde. C'est plus complexe, mais potentiellement beaucoup plus performant et intégré.

La configuration se fait principalement via le fichier config/nativephp.php et des classes dédiées. Par exemple, pour définir la taille et le titre de votre fenêtre desktop, vous utiliseriez quelque chose comme ceci dans app/NativePHP/MainWindow.php :

<?php

namespace App\NativePHP;

use Native\Laravel\Facades\Window;

class MainWindow
{
    public function boot()
    {
        Window::open()
            ->title('Mon Application Native')
            ->width(1024)
            ->height(768);
    }
}

Vous pouvez même créer des menus personnalisés, gérer les deep links pour ouvrir l'application via des URL, et bien d'autres choses encore, en restant majoritairement dans l'écosystème PHP.

Cas pratique : Une application simple avec NativePHP

Pour se donner une idée concrète, on peut imaginer construire une petite application de gestion de tâches (une todo list, le classique indémodable). Ou, pour les plus curieux, NativePHP a lui-même un exemple d'application mobile pour le projet dev-null.sh, disponible sur GitHub (NativePHP/dev-null-app). C'est un excellent point de départ pour voir comment une application Laravel existante peut être adaptée pour le mobile avec NativePHP.

L'idée est de créer vos routes Laravel habituelles, vos contrôleurs, vos vues (Blade fonctionne parfaitement), et NativePHP se charge de les rendre dans la fenêtre native. C'est la beauté du système : on travaille comme d'habitude, mais le résultat final est une application desktop ou mobile.

Avantages et limites : Quand choisir NativePHP pour vos projets

Comme toute technologie, NativePHP a ses forces et ses faiblesses. Il est crucial de les connaître avant de se lancer tête baissée.

Les avantages, parce que c'est quand même génial :

  • Réutilisation du code : Évidemment, c'est le point fort. On capitalise sur ses compétences et son code PHP/Laravel existant.
  • Multi-plateforme : Un seul code pour macOS, Windows, Linux, iOS et Android. Ça, c'est du confort.
  • Écosystème Laravel : Accès à tout ce que Laravel offre : Eloquent, Blade, le système de files d'attente, etc.
  • Développement rapide : Pour des applications simples ou des portages, la vitesse de développement est un atout.

Les limites et pièges connus, histoire de ne pas tomber de haut :

  • Performance : Pour les applications très lourdes ou exigeant des intégrations natives profondes (rendu 3D, accélération matérielle), NativePHP peut montrer des signes de faiblesse. Le démarrage à froid, surtout pour le bureau, peut être lent (parfois jusqu'à 10 secondes), et le chargement de nouvelles routes peut aussi prendre quelques secondes.
  • Le nom est un peu trompeur : Pour le bureau, ce n'est pas une application « native » au sens strict du terme (comme une application écrite en C++ ou Swift). C'est un serveur web local (PHP/Laravel) encapsulé dans un navigateur (Electron/Tauri). C'est efficace, mais il faut en être conscient.
  • Distribution du code source (Desktop) : C'est un point noir pour les applications commerciales. Le code source de votre application est distribué avec le binaire.
  • Abstraction incomplète : NativePHP ne réimplémente pas toutes les capacités d'Electron ou de Tauri en PHP. Si vous avez besoin d'une fonctionnalité très spécifique non couverte, il faudra soit attendre, soit écrire du JavaScript (ce qui va un peu à l'encontre du principe), soit contribuer au projet.
  • Support Windows (Desktop) : Certaines fonctionnalités peuvent être capricieuses ou défectueuses sous Windows.
  • Base de données : NativePHP est optimisé pour SQLite. Si vous voulez utiliser MySQL ou PostgreSQL, il faudra prévoir des implémentations personnalisées.
  • Version Mobile 4.x (SuperNative) en bêta : La version mobile est prometteuse mais, étant en bêta, les API et fonctionnalités peuvent encore évoluer.
  • Prérequis Node.js : Même si on fait du PHP, Node.js est un prérequis pour le développement d'applications de bureau en raison d'Electron ou Tauri.

En gros, NativePHP est excellent pour des applications de gestion, des outils internes, des utilitaires simples, ou pour porter rapidement une application web existante sans compétences spécifiques en développement natif. Mais si vous visez le prochain jeu AAA ou une application ultra-optimisée pour le traitement d'image, il faudra peut-être regarder ailleurs.

Perspectives : Le futur du développement natif avec PHP

NativePHP est une initiative passionnante qui ouvre de nouvelles portes aux développeurs PHP. Le fait de pouvoir créer des applications desktop et mobiles avec un langage et un framework que l'on maîtrise déjà est un atout indéniable. La version mobile 4.x, avec son approche « SuperNative », montre une volonté d'aller vers de véritables expériences natives, au-delà de la simple encapsulation web.

Bien sûr, le projet est encore jeune et la communauté grandit. Mais l'engagement de l'équipe et la vitesse de développement (les versions 2.3.0 pour desktop et 4.7.0 pour mobile sont sorties fin 2026, avec un support PHP mis à jour) sont encourageants. NativePHP n'est pas la solution universelle, mais c'est un outil puissant dans la boîte à outils du développeur PHP moderne, une alternative crédible pour des cas d'usage bien définis. À surveiller de près !

Publié le 05/11/2026 · 8 min de lecture Partager X LinkedIn

← Précédent Phpclaw et ollama : quand ton appli php devient un assistant ia local, et pas un stagiaire qui envoie tout sur le cloud