Les règles : les invariants
Committées dans le dépôt, partagées avec tout le monde, chargées selon leur trigger. Les règles des stores ont leur place ici, car elles doivent tenir pour chaque modification future, pas seulement pour la tâche du jour.
Windsurf
Si vous avez construit votre web app dans Windsurf avec Cascade, vous n'êtes qu'à un déploiement de production de vos apps natives : WebViewGold charge cette URL dans une coque native iOS et Android que vous soumettez aux stores. Une chose a changé en 2026 : Windsurf s'appelle désormais Devin Desktop, et son agent Devin Local a remplacé Cascade. Vos règles vous suivent ; les workflows et les memories demandent un petit déménagement. Ce guide couvre les deux.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
WebViewGold vous fournit un projet Xcode natif et un projet Android Studio dont l'écran principal charge votre URL de production dans une WKWebView ou une Android WebView, avec des extras natifs comme les notifications push, un écran hors ligne et la feuille de partage. Votre projet Windsurf reste la seule base de code, et chaque déploiement apparaît dans les deux apps.
Le travail de l'agent consiste à faire passer la validation à la web app en tant qu'app : mise en page mobile, pages légales, suppression de compte, aucune impasse, et au moins une capacité native pour que l'app soit plus qu'un site web (guideline 4.2). Les bases propres à cette stack se trouvent sur la page Windsurf vers l'App Store.
Enregistrez-la sous .windsurf/rules/native-app.md si vous travaillez encore avec Cascade (ancien Windsurf ou plugin JetBrains), ou sous .devin/rules/native-app.md dans Devin Desktop. Les deux utilisent le même front matter trigger, et always_on charge la règle dans chaque session. Windsurf limitait les fichiers de règles à 12 000 caractères : gardez-la donc concise.
---
trigger: always_on
---
# Native app context
- This project is published as iOS and Android apps with WebViewGold, which loads
https://app.example.com in a native WebView. Every deploy is live in both apps.
- There is no separate mobile codebase. Do not propose React Native, Flutter or Capacitor.
- Detect the app with isNativeApp() in src/lib/platform.ts (user agent contains
"MyAppNative", set in WebViewGold). No other user agent checks.
- Native features are URL schemes (registerpush://, shareapp://message?=TEXT&url=URL,
bioauth://, qrcode://). Look up the exact syntax in
https://www.webviewgold.com/llms-full.txt, call them only inside the app,
and keep a web fallback.
# Never
- Use a preview or *.windsurf.build URL as the app URL.
- Open OAuth in popups or new windows (the Social Login Helper handles Google).
- Sell digital goods through Stripe links inside the iOS app.
- Ship placeholder text, "coming soon" buttons or dead links.
# Always
- /privacy, /terms and an in-app Delete account (server-side) exist and work.
- Sign in with Apple appears wherever Google or another social login appears.
- Layout works at 320 px; fixed bars pad env(safe-area-inset-top/bottom);
tap targets are at least 44 px.
- Loading, empty and error states for every fetch.
Excellent travail! Je n'ai jamais codé quoi que ce soit, mais j'ai réussi à travailler avec cela. Facile et rapide! Avec une grande aide des créateurs!
Les workflows Cascade sont des fichiers Markdown dans .windsurf/workflows/ que vous lancez avec une commande slash portant le nom du fichier ; Cascade n'en exécute jamais un de lui-même. Dans Devin Desktop, les mêmes étapes deviennent un skill : un dossier .devin/skills/store-readiness/ avec ce SKILL.md. Tapez /store-readiness, ou l'agent le prend en compte quand votre demande correspond à la description. Pour un workflow Cascade, enregistrez les étapes numérotées sous .windsurf/workflows/store-readiness.md avec seulement une description dans le front matter.
---
name: store-readiness
description: Audit and fix this web app for App Store and Google Play review before a WebViewGold build
---
1. Read the native-app rule. List the routes and the auth, payment and analytics code.
2. Mobile: open every main route in the Preview at 390 px and 320 px. Fix horizontal
overflow, tap targets under 44 px, inputs under 16 px font size and fixed bars
without safe-area padding.
3. Legal: make /privacy and /terms real (based on what the code collects) and link
them from the footer and the settings screen.
4. Accounts: if sign-up exists, add Delete account in settings (server-side deletion,
sign out, confirmation) and a public /delete-account page.
5. Sign-in: add Sign in with Apple next to any other social login.
6. States: loading, empty and error-with-retry for every fetch; a friendly 404.
7. App mode: hide store badges, install prompts and builder badges when isNativeApp().
8. Payments: list where digital goods are sold. Report only, change nothing.
9. Run lint, tests and build. Summarize the changes and what I must test on a phone.Committées dans le dépôt, partagées avec tout le monde, chargées selon leur trigger. Les règles des stores ont leur place ici, car elles doivent tenir pour chaque modification future, pas seulement pour la tâche du jour.
Des tâches répétables en plusieurs étapes, comme cette passe de conformité, une checklist de publication ou le tri d'un refus. Lancez-les quand vous en avez besoin.
Cascade crée des memories de lui-même. Elles appartiennent au workspace où elles ont été créées et restent sur votre machine : vos collègues et les autres outils ne les voient jamais. Ne comptez jamais sur une memory pour une règle des stores ; demandez à l'agent de l'écrire dans une règle.
Devin Desktop lit AGENTS.md à la racine et dans les sous-dossiers comme des règles toujours actives, tout comme Cursor, Codex et GitHub Copilot. Si vous mélangez les outils, mettez-y une seule fois la section sur l'app native (comparaison des fichiers d'instructions).
Le même ordre fonctionne avec Cascade et avec Devin Local.
Committez les deux fichiers. Ouvrez une nouvelle conversation et demandez à l'agent de résumer les règles qu'il suit ; la règle native-app doit figurer dans la réponse.
Tapez /store-readiness (ou le nom du workflow dans Cascade). Relisez chaque modification dans le diff, vérifiez les routes dans la Preview, puis dans le navigateur de votre téléphone.
Les App Deploys de Cascade publient sur une adresse name.windsurf.build, sont prévus pour des previews et écrivent un fichier windsurf_deployment.yaml avec les détails du projet. Pour l'app, transférez le site vers votre propre compte Netlify (claim) ou connectez le dépôt Git à Netlify, puis ajoutez votre domaine (pourquoi le domaine compte). Dans Devin Desktop, déployez directement avec Netlify, car les App Deploys ne sont pas disponibles pour Devin Local.
Config.swift : host, webviewurl, useragent_iphone, useragent_ipad. Config.java : HOST, HOME_URL, USER_AGENT. Renseignez les déclencheurs du Social Login Helper si vous utilisez la connexion Google, et choisissez un service push (OneSignal, Firebase ou Pushwoosh) si vous voulez des notifications. La documentation de configuration Android liste chaque clé.
Avec un Mac, archivez dans Xcode ; générez un App Bundle signé dans Android Studio. Si vous préférez déléguer cette partie, l'équipe Full Service configure et compile les deux apps pour vous sous 72 heures.
Faites rédiger par l'agent la politique de confidentialité, la description pour les stores et les notes pour la validation à partir du code ; c'est vous qui soumettez. Les modifications web sont en ligne à chaque déploiement, et seules les modifications de la coque native exigent un nouveau build.
Utilisez-le si vous préférez une exécution guidée au skill, ou seulement pour la partie déploiement. Il s'arrête après la configuration Netlify pour que vous puissiez d'abord vérifier le build.
Nous publions cette web app sous forme d'apps natives iOS et Android avec WebViewGold, qui charge notre URL de production dans une WebView native. Suivez la règle native-app. Travaillez dans cet ordre et attendez ma confirmation après l'étape 2. 1. Build de production : assurez-vous que "npm run build" fonctionne depuis un checkout propre et documentez chaque variable d'environnement dans .env.example (noms uniquement, sans valeurs). 2. Netlify : ajoutez un netlify.toml avec la commande de build et le dossier de publication adaptés à ce framework. S'il s'agit d'une single-page app, ajoutez une redirection catch-all vers /index.html avec le statut 200 pour que /privacy, /terms et /delete-account se chargent directement. Listez les variables d'environnement que je dois ajouter dans le tableau de bord Netlify. N'utilisez pas les App Deploys pour la production. 3. Helper natif : ajoutez src/lib/platform.ts avec isNativeApp(), qui cherche "MyAppNative" dans le user agent. 4. Lancez le skill (ou le workflow) store-readiness et corrigez ce qu'il trouve. 5. Rédigez docs/store/review-notes.md : ce que fait l'app, un emplacement réservé pour le compte de démonstration et les fonctionnalités natives qu'un reviewer peut essayer. 6. Résumez toutes les modifications et donnez-moi un plan de test sur téléphone : inscription, connexion avec Google et avec Apple, suppression du compte, mode avion, ouverture directe de /privacy.
.windsurfrules et de nouvelles .devin/rules qui se contredisent. Les deux se chargent : regroupez-les..devin/global_rules.md et .windsurf/global_rules.md existent tous les deux, seul le premier se charge.Non. Windsurf a été renommé Devin Desktop en juin 2026. C'est le même éditeur avec les mêmes réglages et extensions, et le plugin Windsurf pour les IDE JetBrains est toujours proposé.
Dans Devin Desktop, les nouvelles conversations démarrent avec Devin Local, et il n'est plus possible d'y lancer des conversations Cascade. Cascade reste disponible dans le plugin Windsurf pour JetBrains. La règle de ce guide fonctionne avec les deux agents ; utilisez un workflow avec Cascade et un skill avec Devin Local.
Oui. Devin Desktop importe par défaut .windsurfrules, .windsurf/rules/*.md et .windsurf/global_rules.md. Les nouvelles règles ont leur place dans .devin/rules/, qui a la priorité quand les deux existent.
Elle se chargerait, mais ne le faites pas. Les App Deploys sont prévus pour des previews, le sous-domaine ne peut pas être changé ensuite, et l'URL est compilée dans votre app. Utilisez votre propre domaine sur Netlify ou chez un autre hébergeur.
Pour un build iOS manuel dans Xcode, oui. Le Cloud Builder de WebViewGold compile et envoie les deux apps depuis le navigateur, et l'équipe Full Service peut se charger de la configuration et du build pour vous.
Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.
$109 par plateforme, paiement unique
La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.
Voir les offres sur la page principale$349 par licence, extension en paiement unique
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
Comment fonctionne le Cloud Builder Essayer la démo gratuite$698 par plateforme $798
Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.
Détails du Full Service Propulsé parPrix Soldes d'hiver valables jusqu'au 31 décembre 2026.
Garantie d'approbation App Store & Google Play – ou remboursement sous 14 jours
Vous préférez déléguer ? Full Service : nous configurons, compilons et livrons sous 72 heures, dès $698 par plateforme. Des questions ? Chattez avec nous 24/7.
Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.