Aller au contenu
WebViewGold Du vibe coding à l'App Store
Français
Obtenir WebViewGold

Windsurf

Web app Windsurf Cascade en app iOS et Android : règles, workflows, Netlify et WebViewGold

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.

  • Garantie d'approbation – ou remboursement sous 14 jours
  • Aucun codage requis
  • Paiement unique, mises à jour gratuites
  • Support humain 24/7
  • Conçu en Allemagne depuis 2014 · ISO 27001

L'objectif : la même web app, deux apps natives

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.

Une règle de workspace qui garde chaque exécution de l'agent compatible avec les stores

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.

markdown
---
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!

Lucas Dubois · CodeCanyon

Transformez la passe de conformité en workflow ou en skill

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.

markdown
---
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.

Règles, workflows, memories, AGENTS.md : qu'est-ce qui va où

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.

Workflows et skills : les procédures

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.

Memories : des notes personnelles

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.

AGENTS.md : le fichier commun à tous les outils

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).

Du projet Windsurf à la soumission aux stores

Le même ordre fonctionne avec Cascade et avec Devin Local.

  1. Ajoutez la règle et le skill

    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.

  2. Lancez la passe de conformité

    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.

  3. Déployez en production sur Netlify

    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.

  4. Configurez WebViewGold

    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é.

  5. Compilez

    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.

  6. Soumettez et continuez d'itérer

    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.

Prompt : déploiement de production et passe de conformité

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.

À coller dans Cascade ou Devin Local
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.

Checklist avant de soumettre

  • L'URL dans Config.swift et Config.java est votre propre domaine sur Netlify, pas une URL windsurf.build ou de deploy preview.
  • Les chargements directs de /privacy et /delete-account renvoient la page, pas une 404.
  • Dans une nouvelle conversation, l'agent sait vous citer la règle native-app.
  • Si vous êtes passé à Devin Desktop, les workflows dont vous dépendez existent sous forme de skills.
  • En mode avion, l'écran hors ligne de WebViewGold s'affiche.
  • Votre domaine de production passe la vérification de conformité App Store gratuite sans alerte rouge.

Pièges

  • Publier la preview windsurf.build : elle est prévue pour des previews, le sous-domaine ne peut plus être changé après le déploiement, et l'URL est compilée dans l'app.
  • Des single-page apps sur Netlify sans redirection catch-all : l'URL de confidentialité que vous saisissez dans App Store Connect renvoie une 404 au reviewer.
  • Se fier aux memories pour les règles : elles ne voyagent ni vers vos collègues, ni vers d'autres workspaces, ni vers d'autres outils.
  • D'anciens .windsurfrules et de nouvelles .devin/rules qui se contredisent. Les deux se chargent : regroupez-les.
  • Deux fichiers de règles globales : si .devin/global_rules.md et .windsurf/global_rules.md existent tous les deux, seul le premier se charge.
  • Tester uniquement dans la Preview de l'éditeur. La WebView native diffère pour OAuth, les envois de fichiers et les safe areas ; testez l'app compilée sur un téléphone.

Questions fréquentes

Windsurf est-il abandonné ?

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é.

Puis-je encore utiliser Cascade ?

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.

Mes .windsurfrules fonctionnent-ils encore ?

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.

Puis-je utiliser l'URL windsurf.build dans mon app ?

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.

Ai-je besoin d'un Mac ?

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.

Trois façons de mettre votre app dans les stores

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.

Faites-le vous-même

$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

Full Service

$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é par WeSetupYourWebViewApp

Prix Soldes d'hiver valables jusqu'au 31 décembre 2026.

Prêt à publier votre app ?

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.