[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"globalSettings":3,"blog-application-scanner-retail-fr":152},{"data":4,"meta":151},{"id":5,"documentId":6,"siteName":7,"siteDescription":8,"footerText":9,"contactEmail":10,"contactPhone":11,"address":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17,"logo":17,"favicon":18,"themeColors":60,"defaultSEO":69,"navigation":83,"footerLinks":115,"socialLinks":124,"navbarLogo":125,"footerLogo":139},1,"vyprwwsdp7fncupq3rn8eolg","NeoTide","NeoTide - Studio de développement informatique\nCréer, lancer et faire évoluer vos applications","Neotide - Studio de développement informatique basé à La Réunion.\nNous concevons, lançons et faisons évoluer des applications web et mobiles prêtes à grandir.","contact@neotide.fr","+262 (0)6 93 40 30 74","Saint-Denis, La Réunion","2026-03-08T15:18:14.915Z","2026-07-25T12:10:29.658Z","2026-07-25T12:10:29.262Z","fr",null,{"id":19,"documentId":20,"name":21,"alternativeText":17,"caption":17,"width":22,"height":22,"formats":17,"hash":23,"ext":24,"mime":25,"size":26,"url":27,"previewUrl":17,"provider":28,"provider_metadata":17,"createdAt":29,"updatedAt":30,"publishedAt":29,"related":31},11,"xgzsed4ioj7lx1mq1j7j3ck1","favicon.svg",16,"favicon_7033e351a7",".svg","image\u002Fsvg+xml",0.51,"\u002Fuploads\u002Ffavicon_7033e351a7.svg","local","2026-04-09T16:19:17.495Z","2026-04-09T16:19:27.298Z",[32,40,42,47,49,51],{"__type":33,"id":34,"metaTitle":35,"metaDescription":36,"keywords":37,"canonicalURL":38,"metaRobots":39,"structuredData":17},"shared.seo",664,"Développement Web à La Réunion | Neotide","Studio de développement web basé à Saint-Denis, La Réunion (974) - Applications sur mesure pour startups et PME.","Studio web réunion","https:\u002F\u002Fneotide.fr\u002Fdeveloppement-web-reunion","index, follow",{"__type":33,"id":41,"metaTitle":35,"metaDescription":36,"keywords":37,"canonicalURL":38,"metaRobots":39,"structuredData":17},716,{"__type":33,"id":43,"metaTitle":44,"metaDescription":45,"keywords":46,"canonicalURL":17,"metaRobots":39,"structuredData":17},733,"Web Development in Reunion Island | Neotide","Web development studio based in Saint-Denis, Reunion Island (974) - Custom applications for startups and SMEs.","web studio reunion island",{"__type":33,"id":48,"metaTitle":44,"metaDescription":45,"keywords":46,"canonicalURL":17,"metaRobots":39,"structuredData":17},734,{"__type":50,"id":5,"documentId":6,"siteName":7,"siteDescription":8,"footerText":9,"contactEmail":10,"contactPhone":11,"address":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},"api::global-setting.global-setting",{"__type":50,"id":52,"documentId":6,"siteName":7,"siteDescription":53,"footerText":54,"contactEmail":10,"contactPhone":11,"address":55,"createdAt":56,"updatedAt":57,"publishedAt":58,"locale":59,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},2,"NeoTide - Software development studio\nBuild, launch and scale your applications","Neotide - A software development studio based in Reunion Island.\nWe design, launch and grow web and mobile applications built to scale.","Saint-Denis, Reunion Island","2026-07-25T12:04:30.579Z","2026-07-25T12:13:14.036Z","2026-07-25T12:13:13.640Z","en",{"id":5,"primary":61,"primaryLight":62,"primaryDark":63,"secondary":64,"secondaryLight":65,"secondaryDark":66,"accent":17,"background":67,"surface":68},"#0284c7","#38bdf8","#0369a1","#57534e","#a8a29e","#292524","#ffffff","#fafaf9",{"id":70,"metaTitle":71,"metaDescription":72,"keywords":73,"canonicalURL":17,"metaRobots":17,"structuredData":17,"metaImage":74},129,"Neotide - Studio de développement informatique | Réunion","NeoTide - Studio de développement informatique basé à la Réunion\nCréer, lancer et faire évoluer vos applications","developpement informatique réunion",{"id":75,"documentId":76,"name":77,"alternativeText":17,"caption":17,"width":78,"height":78,"formats":17,"hash":79,"ext":24,"mime":25,"size":80,"url":81,"previewUrl":17,"provider":28,"provider_metadata":17,"createdAt":82,"updatedAt":82,"publishedAt":82},12,"vxt994j1q2no1bf9vjz5cqku","icon-80px.svg",80,"icon_80px_0832e8e1ab",1.16,"\u002Fuploads\u002Ficon_80px_0832e8e1ab.svg","2026-04-09T16:19:17.531Z",[84,101,105,111],{"id":52,"label":85,"url":86,"openInNewTab":87,"description":17,"icon":17,"featured":87,"flyoutColumns":5,"children":88},"Services","services",false,[89,93,97],{"id":90,"label":91,"url":92,"openInNewTab":87,"description":17,"icon":17},4,"MVP","mvp-startup",{"id":94,"label":95,"url":96,"openInNewTab":87,"description":17,"icon":17},5,"Développement Web","developpement-web-reunion",{"id":98,"label":99,"url":100,"openInNewTab":87,"description":17,"icon":17},6,"Applications mobile","developpement-application-mobile",{"id":5,"label":102,"url":103,"openInNewTab":87,"description":17,"icon":17,"featured":87,"flyoutColumns":5,"children":104},"Réalisations","projects",[],{"id":106,"label":107,"url":108,"openInNewTab":87,"description":17,"icon":17,"featured":87,"flyoutColumns":5,"children":109},3,"À propos","about",[110],{"id":52,"label":107,"url":108,"openInNewTab":87,"description":17,"icon":17},{"id":94,"label":112,"url":113,"openInNewTab":87,"description":17,"icon":17,"featured":87,"flyoutColumns":5,"children":114},"Blog","blog",[],[116,119,121],{"id":5,"label":117,"url":118,"openInNewTab":87},"Studio","\u002Fstudio\u002F",{"id":52,"label":85,"url":120,"openInNewTab":87},"\u002Fservices\u002F",{"id":90,"label":122,"url":123,"openInNewTab":87},"Légal","\u002Flegal\u002F",[],{"id":126,"documentId":127,"name":128,"alternativeText":17,"caption":17,"width":129,"height":130,"formats":17,"hash":131,"ext":24,"mime":25,"size":132,"url":133,"previewUrl":17,"provider":28,"provider_metadata":17,"createdAt":134,"updatedAt":134,"publishedAt":135,"related":136},13,"mm27ffe4cc0ozw2y3liow9gb","logo-tagline-light.svg",290,82,"logo_tagline_light_9557a89dab",1.45,"\u002Fuploads\u002Flogo_tagline_light_9557a89dab.svg","2026-04-13T19:42:16.450Z","2026-04-13T19:42:16.451Z",[137,138],{"__type":50,"id":5,"documentId":6,"siteName":7,"siteDescription":8,"footerText":9,"contactEmail":10,"contactPhone":11,"address":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},{"__type":50,"id":52,"documentId":6,"siteName":7,"siteDescription":53,"footerText":54,"contactEmail":10,"contactPhone":11,"address":55,"createdAt":56,"updatedAt":57,"publishedAt":58,"locale":59,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},{"id":140,"documentId":141,"name":142,"alternativeText":17,"caption":17,"width":129,"height":130,"formats":17,"hash":143,"ext":24,"mime":25,"size":144,"url":145,"previewUrl":17,"provider":28,"provider_metadata":17,"createdAt":146,"updatedAt":147,"publishedAt":146,"related":148},7,"bcoat5gkgnnov38maedkmz9s","logo-tagline-dark.svg","logo_tagline_dark_2a08b4a7a6",2.31,"\u002Fuploads\u002Flogo_tagline_dark_2a08b4a7a6.svg","2026-04-09T16:17:55.290Z","2026-04-28T06:36:59.328Z",[149,150],{"__type":50,"id":5,"documentId":6,"siteName":7,"siteDescription":8,"footerText":9,"contactEmail":10,"contactPhone":11,"address":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},{"__type":50,"id":52,"documentId":6,"siteName":7,"siteDescription":53,"footerText":54,"contactEmail":10,"contactPhone":11,"address":55,"createdAt":56,"updatedAt":57,"publishedAt":58,"locale":59,"titleSuffix":17,"schemaType":17,"serviceTypes":17,"areaServed":17,"addressLocality":17,"addressRegion":17,"addressCountry":17},{},{"id":153,"documentId":154,"title":155,"slug":156,"excerpt":157,"content":158,"publishDate":159,"createdAt":160,"updatedAt":161,"publishedAt":162,"locale":16,"featuredImage":17,"author":17,"categories":163,"seo":164},25,"bj92tctvv35rgorvmv95fn94","Application scanner : un seul produit, N configurations","application-scanner-retail","Comment nous avons conçu pour Inopos une application mobile de scan dont le comportement se règle sans redéploiement, types de scan, règles de validation, gestion des préfixes.","## Le piège du scanner « simple »\n\nUne application de scan a l'air triviale : on lit un code-barres, on affiche un produit. Puis les cas réels arrivent.\n\nUn magasin scanne des EAN-13 classiques. Un autre utilise des codes internes préfixés. Un troisième pèse ses articles et travaille avec des codes-barres embarquant un poids variable. Un quatrième veut refuser tout code qui ne figure pas dans son référentiel ; un cinquième veut au contraire créer la fiche à la volée.\n\nLa réponse habituelle est de dupliquer l'application par client. Au bout de trois versions, chaque correction doit être appliquée trois fois, et l'une des trois sera oubliée.\n\n---\n\n## Le choix : configurer, pas forker\n\nPour **Inopos**, nous avons pris le problème dans l'autre sens : une seule application, dont le comportement est décrit par une configuration.\n\nCe qui se règle sans toucher au code :\n\n- **Les types de scan acceptés** : EAN-13, EAN-8, Code 128, QR, ou un sous-ensemble par point de vente.\n- **Les règles de validation** : code inconnu accepté, refusé, ou mis en attente de contrôle.\n- **La gestion des préfixes** : reconnaître un code interne, en extraire la partie utile, ignorer le reste.\n- **Le parcours après scan** : quantité, prix, contrôle visuel, ou validation immédiate.\n\nRésultat : déployer chez un nouveau client, c'est écrire une configuration, pas ouvrir une branche.\n\n---\n\n## Ce que ça change en production\n\n**Un seul binaire à maintenir.** Une correction de bug profite immédiatement à tous les points de vente. Pas de matrice de versions à suivre.\n\n**Les tests deviennent utiles.** Comme les variantes sont des données et non du code, on peut tester les combinaisons de règles sans multiplier les scénarios d'intégration.\n\n**Le déploiement client se compte en minutes.** L'installation ne demande plus un développeur : le paramétrage est éditable par l'équipe qui connaît le magasin.\n\n---\n\n## Les décisions techniques qui comptent\n\n**Traiter la configuration comme un contrat.** Elle est validée au chargement, avec un schéma explicite. Une configuration incorrecte échoue immédiatement, avec un message clair, pas trois écrans plus loin, au milieu d'un inventaire.\n\n**Prévoir le hors-ligne dès le départ.** Un magasin a des zones sans réseau. Les scans sont enregistrés localement puis synchronisés ; l'utilisateur n'a rien à comprendre à ça.\n\n**Ne pas rendre configurable ce qui ne varie pas.** Chaque option ajoutée est une combinaison de plus à tester. On n'ouvre un réglage que lorsqu'un deuxième client en a réellement besoin.\n\n**Optimiser le geste, pas l'écran.** En rayon, l'utilisateur scanne d'une main. Le nombre de touches après un scan compte plus que l'esthétique de l'interface.\n\n---\n\n## Est-ce que ça vaut le coup pour vous ?\n\nCe modèle a du sens si vous prévoyez de déployer la même application dans plusieurs contextes légèrement différents : plusieurs enseignes, plusieurs sites, plusieurs métiers.\n\nÀ l'inverse, pour un usage unique et stable, la configuration ajoute de la complexité sans contrepartie. Une application figée est alors plus simple à écrire et à maintenir.\n\nVous pouvez voir le résultat sur la page [application scanner](\u002Fscanner). Un projet du même ordre ? [Écrivez-nous](\u002Fcontact).\n","2026-07-25T08:30:00.000Z","2026-07-25T11:55:25.933Z","2026-07-26T08:45:34.918Z","2026-07-26T08:45:35.027Z",[],{"id":165,"metaTitle":166,"metaDescription":167,"keywords":168,"canonicalURL":17,"metaRobots":39,"structuredData":17,"metaImage":17},775,"Application scanner configurable : un produit, N clients","Retour sur la conception d'une application mobile de scan configurable : types de scan, règles de validation, préfixes, mode hors-ligne.","application scanner, code-barres, retail, application mobile configurable"]