PhpNitro Go
L'équivalent PhpNitro d'Expo Go : une app compagnon qui ne contient le code d'aucun projet — elle se connecte à un phpx serve qui tourne sur ta machine de dev, sur le même réseau local, et rejoue exactement le même protocole de rendu natif que ton app finale. Modifie un écran, rafraîchis : pas de recompilation, pas de gradle assemble, pas de build Xcode.
Comment ça marche
phpx serve écoute sur 0.0.0.0 (pas seulement 127.0.0.1) pour être joignable depuis un autre appareil du même réseau, détecte l'IP LAN de la machine, et affiche au démarrage :
Depuis PhpNitro Go (même réseau) : http://192.168.1.23:8090
[QR code affiché directement dans le terminal]
QR code plus net (si le scan ci-dessus échoue) : http://192.168.1.23:8090/__qr.pngScanne ce QR (ou tape l'adresse à la main) depuis PhpNitro Go — l'app pointe alors sur exactement la même NativeRenderPocActivity/le même moteur de rendu que ton app finale utilise, juste connecté à ta machine au lieu d'un PHP embarqué sur l'appareil. Aucun code de projet n'est jamais bundlé dans PhpNitro Go elle-même.
Implication de sécurité réelle
Tant que phpx serve tourne, n'importe qui sur le même Wi-Fi/réseau peut atteindre ce serveur — exactement le même compromis que fait expo start. Sans conséquence sur un réseau de confiance (maison, bureau), à éviter sur un réseau public/partagé.
Android — app réelle, fonctionnelle
Module android/go/ (applicationId: com.phpnitro.go, coexiste sans conflit avec ta propre app installée) :
- Scan QR (
ScanActivity) — CameraX + ML Kit, décodage 100% sur l'appareil, aucun compte Google requis. - Saisie manuelle (
ConnectActivity) — champIP:PORT, en repli si le scan échoue ou n'est pas pratique.
Les deux mènent au même endroit : NativeRenderPocActivity (le composant que ta propre app :app utilise déjà), avec serverHost/serverPort fournis en extras au lieu de démarrer un PhpServer embarqué.
Pas encore d'APK distribué (ni sur le Play Store, ni ailleurs) — à builder toi-même pour l'instant :
cd android
./gradlew :go:assembleDebugiOS — écrit et testé, jamais lancé sur un vrai appareil
PhpNitroGo (cible Swift Package) reproduit la même paire d'écrans :
ScanViewController—AVCaptureMetadataOutput(décodage QR natif d'AVFoundation, aucune dépendance tierce).ConnectViewController— saisie manuelleIP:PORT.
Les deux poussent un NativeScreenViewController réel, qui fetch et affiche l'écran distant. Le code compile et ses tests unitaires (parsing d'adresse, construction d'URL, décodage des réponses) tournent réellement en CI — mais rien n'a encore été lancé sur un simulateur ou un device réel (pas de Mac disponible pour l'instant).
PhpNitro Go n'a pas besoin de PHP embarqué
Contrairement à l'app finale d'un projet (qui embarque un vrai runtime PHP sur l'appareil), PhpNitro Go est un client HTTP pur — elle ne fait que dialoguer avec le phpx serve de ta machine de dev. C'est ce qui la rend possible sur iOS dès maintenant, alors que le PHP embarqué sur iOS (SAPI embed) reste, lui, un chantier à part, bien plus lourd.