ITSkillsCenter
Business Digital

Construire une application AppSheet sans code : tutoriel pas-a-pas

12 دقائق للقراءة

📍 Article principal : Google Workspace pour PME : architecture et gouvernance
Ce tutoriel construit pas-à-pas une application AppSheet de gestion de tournée commerciale, depuis un Google Sheet jusqu’au déploiement mobile. Pour le contexte stratégique sur AppSheet et son inclusion dans les plans Workspace, lire le guide de référence.

Introduction

Le commercial qui démarre sa tournée le matin a besoin de trois choses sur son téléphone : la liste de ses visites du jour, la fiche de chaque client avec son historique, un formulaire pour saisir le compte-rendu de visite avec photo et géolocalisation. Construire cette application en code natif Android et iOS demande deux développeurs et trois mois. AppSheet la construit en deux heures depuis un Google Sheet, sans une seule ligne de code, et l’inclusion d’AppSheet Core dans Business Standard signifie qu’aucun budget supplémentaire n’est nécessaire pour les structures déjà sous Workspace. Ce tutoriel construit pas-à-pas l’application complète en sept étapes.

Prérequis

  • Compte Google Workspace Business Standard, Plus ou Enterprise (AppSheet Core inclus). Sur Business Starter, prévoir une licence AppSheet séparée à $5 ou $10 par utilisateur et par mois.
  • Un Google Sheet ou un Excel sur Drive comme source de données.
  • Un smartphone Android ou iOS pour tester l’application déployée.
  • Niveau attendu : débutant à intermédiaire. Aucune connaissance de code requise.
  • Temps estimé : 2 heures pour la version 1, plus une demi-journée d’itérations.

Étape 1 — Modéliser la donnée dans un Google Sheet

AppSheet est un générateur d’application qui s’appuie sur une source de données structurée. Si la source est mal modélisée, l’application générée est mal modélisée. Toute la qualité finale dépend de cette première étape — ne pas la sauter par envie d’aller voir ce que ça donne.

Créez un nouveau Google Sheet dans le Drive partagé Commercial, nommé Tournees Commerciales. Préparez trois feuilles distinctes au sein du même classeur, parce qu’AppSheet va les voir comme trois tables d’application :

Feuille Clients avec les colonnes : ID, Nom, Adresse, Ville, Téléphone, Email, Latitude, Longitude. Saisissez 5 à 10 clients fictifs avec des coordonnées GPS réelles (vous pouvez les obtenir sur Google Maps en cliquant droit sur un point).

Feuille Tournees avec : ID, Date, Commercial, Statut. Le statut prend les valeurs Planifiée, En cours, Terminée. Saisissez deux ou trois tournées pour les jours qui viennent.

Feuille Visites avec : ID, Tournée (référence vers ID de Tournees), Client (référence vers ID de Clients), Heure prévue, Statut, Compte-rendu, Photo, Position GPS. Le statut prend les valeurs À faire, Faite, Annulée. Laissez la colonne Photo vide pour le moment — AppSheet la traitera comme un champ image.

La règle d’or de la modélisation AppSheet : chaque feuille doit avoir une colonne ID en première position, contenant un identifiant unique (UUID ou numéro auto-incrémenté). Sans ID, AppSheet ne peut pas faire de relations entre tables et l’application reste plate.

Étape 2 — Créer l’application AppSheet depuis le Sheet

La création d’application AppSheet à partir d’un Sheet se déclenche depuis le Sheet lui-même. Cette intégration native est la voie la plus directe — toute autre méthode (créer l’app dans la console AppSheet puis pointer vers le Sheet) demande des étapes supplémentaires inutiles.

Ouvrez le Sheet Tournees Commerciales. Allez dans Extensions → AppSheet → Créer une application. AppSheet ouvre un nouvel onglet avec une application générée automatiquement à partir des trois feuilles. Vous voyez à gauche une prévisualisation mobile avec un menu pour Clients, Tournees et Visites, et à droite la console de configuration.

Renommez l’application Tournee Commerciale dans Settings → Information → Name. Définissez la propriété : Owner doit pointer vers votre compte. Au bout de cinq minutes, vous avez une application techniquement fonctionnelle qui n’est pas encore exploitable — il faut configurer les colonnes et les vues.

Étape 3 — Configurer les colonnes typées

AppSheet a deviné les types des colonnes au mieux, mais ses choix par défaut sont rarement parfaits. La configuration colonne par colonne est l’étape qui transforme une app brute en application utilisable.

Allez dans Data → Columns. Sélectionnez la table Visites. Pour chaque colonne, vérifiez le Type :

La colonne ID doit être en type Text avec Initial value = UNIQUEID(), Key coché, et la case Show décochée pour que l’utilisateur ne la voie pas. La colonne Tournée doit être en type Ref qui pointe vers la table Tournees. La colonne Client en type Ref vers Clients. Ces deux Ref transforment automatiquement les listes déroulantes et créent les relations.

La colonne Heure prévue doit être en type DateTime. La colonne Statut en type Enum avec les valeurs À faire, Faite, Annulée et un Initial value à À faire. La colonne Compte-rendu en type LongText. La colonne Photo en type Image — AppSheet activera l’appareil photo du téléphone à la saisie. La colonne Position GPS en type LatLong avec Initial value = HERE(), ce qui capture automatiquement la position de l’utilisateur au moment de la création.

Sauvegardez. Faites le même travail pour les tables Tournees et Clients — ID en UNIQUEID(), Date en type Date, Statut en Enum, Latitude et Longitude pour les clients combinées en LatLong virtuel via une colonne calculée.

Étape 4 — Configurer les vues

Les vues sont les écrans que voit l’utilisateur sur son téléphone. AppSheet en a généré trois par défaut (une par table) en mode liste plate. Pour une application de tournée, on veut une vue principale par jour, une vue carte des clients, et un formulaire de saisie rapide.

Allez dans UX → Views. Modifiez la vue Visites : changez le View type en Deck pour avoir des cartes empilées plutôt qu’une liste plate. Configurez le Sort sur Heure prévue. Configurez le Group sur Statut, ce qui regroupe automatiquement les visites par état (À faire, Faite, Annulée) avec des en-têtes pliables.

Créez une nouvelle vue Carte clients. For this data = Clients. View type = Map. Position = la colonne LatLong calculée à partir de Latitude et Longitude. La carte affiche les clients géolocalisés et l’utilisateur peut taper sur un point pour ouvrir la fiche client. C’est la fonctionnalité qui rend l’app indispensable pour le commercial terrain.

Créez enfin une vue Tournée du jour avec un filtre dynamique. For this data = Visites. View type = Deck. Filter = [Tournée].[Date] = TODAY(). Cette vue affiche uniquement les visites prévues aujourd’hui pour la tournée du jour.

Étape 5 — Configurer la sécurité et les utilisateurs

L’application affiche par défaut toutes les données à tous les utilisateurs. Pour une force de vente répartie sur plusieurs commerciaux, il faut filtrer pour que chaque commercial ne voie que ses propres tournées.

Allez dans Security → Require user signin et activez l’option avec Authentication provider = Google. Cela force la connexion par compte Google pour utiliser l’app — votre compte d’organisation Workspace est utilisé.

Allez ensuite dans Data → Tables → Tournees, section Security filter. Saisissez la formule [Commercial] = USEREMAIL(). Cette formule filtre les lignes de la table pour ne montrer à l’utilisateur connecté que les tournées dont le champ Commercial contient son email Workspace.

Faites de même sur la table Visites avec la formule [Tournée].[Commercial] = USEREMAIL() qui exploite la relation Ref vers Tournees pour filtrer.

Pour les comptes administrateurs ou managers qui doivent tout voir, créez un rôle Manager dans Users → Roles et ajustez les filtres avec une formule du type OR([Tournée].[Commercial] = USEREMAIL(), USERROLE() = "Manager").

Étape 6 — Déployer l’application

Le déploiement AppSheet a deux niveaux selon la taille de l’audience. Pour une équipe interne de moins de 100 utilisateurs, le déploiement standard suffit — l’app est accessible via un lien partageable et installable comme PWA sur les téléphones.

Allez dans Manage → Deploy → Deployment Check. AppSheet exécute une série de tests automatiques — sécurité, intégrité référentielle, performance. Corrigez les avertissements bloquants signalés en rouge. Les avertissements jaunes (par exemple « cette colonne n’a pas de description ») sont à traiter mais non bloquants.

Une fois les tests verts, cliquez sur Move app to deployed state. L’application bascule en production. Récupérez l’URL de partage dans Share app. Envoyez ce lien à vos commerciaux par email Workspace. Au premier accès depuis un téléphone, le navigateur propose Ajouter à l’écran d’accueil — l’application s’installe alors comme une app native, avec icône, plein écran et accès hors ligne partiel.

Pour un déploiement à plus grande échelle ou un publication sur les stores Google Play et Apple App Store en marque blanche, il faut basculer sur AppSheet Enterprise (sur devis) qui ouvre la fonctionnalité Branded apps. Pour une PME interne, le déploiement standard couvre tous les besoins.

Étape 7 — Mode hors ligne et synchronisation

Un commercial en tournée peut perdre la connexion à tout moment — zone blanche, sous-sol, parking souterrain. L’application doit pouvoir continuer à enregistrer les visites et synchroniser quand la connexion revient.

Allez dans Behavior → Offline/Sync. Activez The app can start when offline. Activez Store the app for offline use. Définissez Sync sur Automatic avec un délai d’inactivité de 30 secondes — le mobile synchronise dès qu’une visite est saisie, ou au pire toutes les 30 secondes en arrière-plan.

Limitez le volume de données synchronisé en réduisant les filtres de sécurité de l’étape 5 — le commercial ne charge que ses tournées, pas l’historique de l’entreprise. Le test suivant vérifie que tout marche : lancez l’app sur un téléphone, mettez le téléphone en mode avion, créez une visite avec photo, désactivez le mode avion, observez la synchronisation se faire dans le coin supérieur de l’app.

Vérification finale

Avant de communiquer l’application à l’équipe, validez quatre scénarios complets. Premièrement, un commercial se connecte sur son téléphone, voit uniquement ses tournées du jour. Deuxièmement, il ouvre une visite, saisit un compte-rendu, prend une photo, valide — la visite passe en statut Faite, le Sheet est mis à jour, la photo est uploadée sur Drive. Troisièmement, en mode avion, la saisie marche et la synchronisation se fait au retour de connexion. Quatrièmement, un manager se connecte avec son rôle et voit l’ensemble des tournées de l’équipe.

Si ces quatre scénarios passent, l’application est en production. Le travail des semaines suivantes consiste à itérer sur les retours utilisateurs : ajouter une vue de synthèse hebdomadaire, ajouter une notification push 30 minutes avant la prochaine visite, ajouter un workflow d’approbation pour les comptes-rendus particuliers.

Erreurs fréquentes

Erreur Cause Solution
Sync infinie sur mobile Trop de données chargées Renforcer les filtres de sécurité, limiter au commercial connecté
Champs Ref qui n’apparaissent pas Colonne ID manquante ou non Key Cocher Key sur la colonne ID de la table cible
HERE() ne capture pas la position Permission GPS refusée sur le téléphone Autoriser l’accès localisation pour le navigateur ou l’app
Photo non uploadée Drive plein ou permission manquante Vérifier le quota Drive et les permissions sur le dossier d’upload
Application ne se déploie pas Avertissements rouges en Deployment Check Lire chaque avertissement, corriger avant de redéployer
Erreur « license required » Plan Workspace insuffisant ou licence AppSheet expirée Vérifier l’inclusion AppSheet dans le plan, renouveler si nécessaire

Adaptation aux conditions locales

Sur les zones à connectivité instable, le mode hors ligne est non négociable — activez-le dès la version 1, pas en option. Réglez la fréquence de sync sur 60 secondes plutôt que 30, et privilégiez la sync manuelle au retour en zone couverte plutôt que la sync automatique qui peut consommer du forfait sur 4G.

Pour limiter les coûts data des commerciaux, configurez la compression des photos dans Behavior → Image quality en Reduce image size. Une photo de visite n’a pas besoin de faire 4 Mo — 200 Ko suffisent largement et divisent par 20 la consommation data.

Tutoriels associés

Pour aller plus loin

FAQ

AppSheet est-il vraiment gratuit avec Workspace Standard ?
AppSheet Core est inclus dans Business Standard, Plus et Enterprise. Cela couvre la création et le partage d’applications au sein de l’organisation. Pour la publication grand public, l’API Apigee, le whitelabel ou la gouvernance avancée, il faut passer à AppSheet Enterprise sur devis.

Quelle limite d’utilisateurs sur une app AppSheet ?
Pas de limite technique stricte côté AppSheet. La limite pratique est la performance — au-delà de quelques milliers de lignes par table, la synchronisation devient lente. Pour ces volumes, on bascule sur une base SQL externe (Cloud SQL) en source de données plutôt que Google Sheets.

Peut-on faire des calculs complexes dans AppSheet ?
Oui, AppSheet expose un langage d’expression proche de celui des tableurs avec des fonctions SUM, SELECT, FILTER, IF, LOOKUP et beaucoup d’autres. Pour des logiques métier vraiment poussées, on déporte la logique en Apps Script via un appel webhook.

Quelle différence entre Ref et Lookup ?
Ref est un type de colonne qui crée une relation persistante entre deux tables — l’utilisateur sélectionne une ligne dans la table cible. Lookup est une fonction qui résout une valeur dans une autre table à partir d’une clé. On utilise Ref pour les choix de saisie, Lookup pour les agrégats et les calculs.

Comment versionner une app AppSheet ?
AppSheet expose un système de copies de configuration. Avant un changement majeur, faites Manage → Author → Copy app pour cloner l’app, modifiez sur la copie, validez, puis remplacez l’app de production. Pour un workflow plus mature, AppSheet Enterprise propose des environnements Dev/Staging/Prod.

L’app AppSheet fonctionne-t-elle sur tablette ?
Oui. AppSheet adapte automatiquement la mise en page aux écrans plus larges, avec des vues à deux colonnes ou à panneaux latéraux. Vous pouvez forcer un comportement spécifique via les paramètres responsives dans UX → Format Rules.

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité