<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>imagine-app — Blog &amp; Insights</title><description>Articles techniques et retours d’expérience du studio imagine-app : Rails, React Native, Next.js, reprise technique et conseil.</description><link>https://imagine-app.fr/</link><language>fr</language><item><title>Un chatbot IA qui tourne entièrement dans le navigateur</title><link>https://imagine-app.fr/blog/jarvis-chatbot-ia-locale-navigateur-transformers-js/</link><guid isPermaLink="true">https://imagine-app.fr/blog/jarvis-chatbot-ia-locale-navigateur-transformers-js/</guid><description>Comment on a construit un chatbot d&apos;entreprise qui fonctionne sans serveur, sans API, sans backend — juste du WebGPU, Transformers.js et un modèle ONNX de 450 Mo chargé à la demande. Retour sur les joies et les galères de l&apos;IA locale dans le browser.</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate><category>IA</category><category>Transformers.js</category><category>WebGPU</category><category>ONNX</category><category>Hugging Face</category><category>Astro</category></item><item><title>Core Web Vitals en 2026 : pourquoi on s&apos;acharne encore à optimiser</title><link>https://imagine-app.fr/blog/core-web-vitals-en-2026/</link><guid isPermaLink="true">https://imagine-app.fr/blog/core-web-vitals-en-2026/</guid><description>Les réseaux sont rapides, les navigateurs sont puissants. Pourtant, on continue à traquer chaque milliseconde. Retour sur ce que les Core Web Vitals changent vraiment — et pourquoi le feu d&apos;artifice Lighthouse n&apos;est pas qu&apos;un caprice.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>Performance</category><category>Web</category><category>Core Web Vitals</category><category>Lighthouse</category></item><item><title>Votre prestataire a disparu : les 4 étapes pour reprendre le contrôle</title><link>https://imagine-app.fr/insights/votre-prestataire-est-parti-que-faire/</link><guid isPermaLink="true">https://imagine-app.fr/insights/votre-prestataire-est-parti-que-faire/</guid><description>Un freelance qui ne répond plus, une agence qui ferme. Vous avez une application en production et personne pour la maintenir. Reprise progressive ou refonte ? On a géré 50+ cas comme le vôtre depuis 2012.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate><category>Reprise de projet</category><category>Gestion de risque</category><category>PME</category></item><item><title>Votre site met 8 secondes a charger : voici ce que ca vous coute</title><link>https://imagine-app.fr/insights/site-lent-combien-coute-chaque-seconde/</link><guid isPermaLink="true">https://imagine-app.fr/insights/site-lent-combien-coute-chaque-seconde/</guid><description>Chaque seconde de chargement supplementaire coute 7% de conversions. Sur un site e-commerce a 100 000 euros par mois, gagner 6 secondes peut representer 40 000 euros de CA. Un audit prend 2 jours.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate><category>Performance</category><category>ROI</category><category>Web</category></item><item><title>Dette technique : elle coute 80 000 euros par an a une equipe de 3 developpeurs</title><link>https://imagine-app.fr/insights/dette-technique-le-cout-cache-qui-ralentit-votre-business/</link><guid isPermaLink="true">https://imagine-app.fr/insights/dette-technique-le-cout-cache-qui-ralentit-votre-business/</guid><description>Vos developpeurs passent 23% de leur temps a contourner au lieu de construire. Voici comment reperer la dette technique, calculer ce qu&apos;elle vous coute, et decider quand intervenir.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><category>Dette technique</category><category>ROI</category><category>Management</category></item><item><title>CTO externe : le guide pour PME et startups qui pilotent sans directeur technique</title><link>https://imagine-app.fr/insights/cto-externe-quand-pourquoi-directeur-technique-temps-partage/</link><guid isPermaLink="true">https://imagine-app.fr/insights/cto-externe-quand-pourquoi-directeur-technique-temps-partage/</guid><description>Vous validez des devis techniques que vous ne comprenez pas ? Un CTO externe reduit vos couts prestataires de 30% et fiabilise vos livraisons — pour 3 a 5x moins cher qu&apos;un recrutement CDI.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate><category>CTO externe</category><category>Organisation</category><category>PME</category></item><item><title>Cajoo : comment scaler une stack technique quand le trafic explose</title><link>https://imagine-app.fr/insights/cajoo-accompagner-croissance-startup-quick-commerce/</link><guid isPermaLink="true">https://imagine-app.fr/insights/cajoo-accompagner-croissance-startup-quick-commerce/</guid><description>Votre startup grandit plus vite que votre infra ? Cajoo traitait des milliers de commandes en temps reel. On a structure leur stack pour absorber 10x le trafic — sans migration risquee.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate><category>Cas client</category><category>Startup</category><category>Accompagnement</category></item><item><title>chocobonplan : maintenir, consolider, puis réécrire quand le moment est venu</title><link>https://imagine-app.fr/insights/chocobonplan-reecrire-app-mobile-leader-bons-plans/</link><guid isPermaLink="true">https://imagine-app.fr/insights/chocobonplan-reecrire-app-mobile-leader-bons-plans/</guid><description>On a d&apos;abord maintenu leur app mobile pendant plusieurs années. On a consolidé, stabilisé, fiabilisé. Quand ils ont voulu passer à l&apos;échelle supérieure, on a reconstruit — ensemble, sans interruption de service.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><category>Cas client</category><category>E-commerce</category><category>Mobile</category></item><item><title>GE Healthcare : remplacer 10 000 lignes de code fragile par un systeme configurable</title><link>https://imagine-app.fr/insights/general-electric-remplacer-outil-interne-fragile/</link><guid isPermaLink="true">https://imagine-app.fr/insights/general-electric-remplacer-outil-interne-fragile/</guid><description>Un outil d&apos;analyse critique en milieu hospitalier reposait sur 10 000 lignes de regles empilees. 2 personnes sur Terre savaient le faire tourner. On a transforme du code en dur en configuration — sans arreter la production.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate><category>Cas client</category><category>Sante</category><category>Reprise</category></item><item><title>MyMove : reprendre une application sans documentation en 4 semaines</title><link>https://imagine-app.fr/insights/mymove-reprendre-projet-herite-sans-documentation/</link><guid isPermaLink="true">https://imagine-app.fr/insights/mymove-reprendre-projet-herite-sans-documentation/</guid><description>5 APIs, zero documentation, un prestataire disparu. On a repris un comparateur VTC en production et divise les incidents par 5. Voici la methode.</description><pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate><category>Cas client</category><category>Transport</category><category>Reprise</category></item><item><title>Réno Claire, 18 mois après : TDD, montée de version et coordination d&apos;IAs</title><link>https://imagine-app.fr/blog/retex-tdd-montee-version-coordination-ia-renovation/</link><guid isPermaLink="true">https://imagine-app.fr/blog/retex-tdd-montee-version-coordination-ia-renovation/</guid><description>18 mois après le lancement de Réno Claire, retour sur ce qui a tenu : le test-driven development sur les formules Excel, la montée Next.js 14 → 15, la coordination Google Document AI + GPT-4 pour l&apos;analyse de DPE, et les défis des changements d&apos;API.</description><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate><category>Next.js</category><category>TDD</category><category>TypeScript</category><category>OpenAI</category><category>Google Cloud</category><category>Vercel</category></item><item><title>Server Actions en production : formulaires multi-étapes et uploads avec Next.js 14</title><link>https://imagine-app.fr/blog/server-actions-formulaires-multi-etapes-nextjs/</link><guid isPermaLink="true">https://imagine-app.fr/blog/server-actions-formulaires-multi-etapes-nextjs/</guid><description>Retour d&apos;expérience sur l&apos;utilisation des Server Actions en production depuis six mois. Formulaires multi-étapes, uploads de fichiers avec Vercel Blob, validation Zod, et sauvegarde progressive — ce que Next.js 14 change concrètement pour les applications métier.</description><pubDate>Thu, 20 Jun 2024 00:00:00 GMT</pubDate><category>Next.js</category><category>Server Actions</category><category>TypeScript</category><category>Vercel</category><category>React</category></item><item><title>Next.js 14 et App Router : construire un simulateur de rénovation énergétique</title><link>https://imagine-app.fr/blog/next-14-app-router-simulation-renovation-energetique/</link><guid isPermaLink="true">https://imagine-app.fr/blog/next-14-app-router-simulation-renovation-energetique/</guid><description>Architecture d&apos;un simulateur de rénovation énergétique en Next.js 14 pour un acteur de la rénovation en Ile-de-France. Server Actions, Vercel Postgres, Kysely, NextAuth v5, et orchestration d&apos;IAs — retour sur les choix fondateurs du projet Réno Claire.</description><pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate><category>Next.js</category><category>React</category><category>TypeScript</category><category>Vercel</category><category>Architecture</category></item><item><title>Envoyer 100 000 push notifications sans Pushwoosh — une Cloud Function Firebase et du parallélisme</title><link>https://imagine-app.fr/blog/firebase-functions-push-notifications-bulk-fcm/</link><guid isPermaLink="true">https://imagine-app.fr/blog/firebase-functions-push-notifications-bulk-fcm/</guid><description>Comment on a construit une Cloud Function Firebase pour envoyer des push notifications en masse en contournant les limites de Pushwoosh — batches de 499 tokens, parallélisme, randomisation de l&apos;ordre d&apos;envoi, et les joies de la documentation Firebase qui ment.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate><category>Firebase</category><category>TypeScript</category><category>Cloud Functions</category><category>Push Notifications</category><category>Architecture</category></item><item><title>Réécrire from scratch l&apos;app leader des bons plans — architecture React Native pour la durée</title><link>https://imagine-app.fr/blog/chocobonplan-rewrite-react-native-architecture-rematch/</link><guid isPermaLink="true">https://imagine-app.fr/blog/chocobonplan-rewrite-react-native-architecture-rematch/</guid><description>Comment on a repensé et reconstruit l&apos;application chocobonplan en React Native avec TypeScript, un state management Rematch structuré pour la maintenabilité, et une pipeline de middlewares conçue pour le trafic des fêtes.</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate><category>React Native</category><category>TypeScript</category><category>Architecture</category><category>Redux</category><category>Mobile</category></item><item><title>Pourquoi Ruby on Rails reste pertinent en 2022</title><link>https://imagine-app.fr/blog/pourquoi-rails-en-2022/</link><guid isPermaLink="true">https://imagine-app.fr/blog/pourquoi-rails-en-2022/</guid><description>Rails n&apos;est pas mort — loin de là. Retour sur les raisons pour lesquelles nous continuons à le recommander pour les projets web ambitieux.</description><pubDate>Thu, 10 Nov 2022 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Architecture</category><category>Backend</category></item><item><title>Reconnaissance vocale iOS vs Android — Matcher des noms d&apos;artistes en React Native</title><link>https://imagine-app.fr/blog/reconnaissance-vocale-ios-android-react-native-string-matching/</link><guid isPermaLink="true">https://imagine-app.fr/blog/reconnaissance-vocale-ios-android-react-native-string-matching/</guid><description>Les API de reconnaissance vocale d&apos;iOS et Android ne fonctionnent pas de la même manière. Sur iOS, on peut guider le moteur avec des mots attendus. Sur Android, il faut matcher la transcription libre avec des algorithmes de similarité : Jaro-Winkler, Dice, Levenshtein. Retour d&apos;expérience sur Bl!ndt?st.</description><pubDate>Mon, 22 Nov 2021 00:00:00 GMT</pubDate><category>React Native</category><category>iOS</category><category>Android</category><category>NLP</category><category>TypeScript</category></item><item><title>GraphQL managé et cloud functions : retour sur notre mission chez Cajoo</title><link>https://imagine-app.fr/blog/graphql-hasura-cajoo-quick-commerce/</link><guid isPermaLink="true">https://imagine-app.fr/blog/graphql-hasura-cajoo-quick-commerce/</guid><description>Comment un stack GraphQL managé avec Hasura, des cloud functions AWS Lambda et un client généré nous permettent d&apos;accompagner la croissance de Cajoo, la startup française du quick commerce.</description><pubDate>Thu, 18 Nov 2021 00:00:00 GMT</pubDate><category>GraphQL</category><category>React Native</category><category>Serverless</category><category>Telemetry</category><category>Startup</category></item><item><title>Bl!ndt?st — Consolider une app React Native de blind test multijoueur en temps réel</title><link>https://imagine-app.fr/blog/blindtest-react-native-feathersjs-xstate-reconnaissance-vocale/</link><guid isPermaLink="true">https://imagine-app.fr/blog/blindtest-react-native-feathersjs-xstate-reconnaissance-vocale/</guid><description>Retour d&apos;expérience sur une mission de renfort dev pour Bl!ndt?st, un jeu de blind test multijoueur en temps réel. Restructuration d&apos;une app React Native, ajout de types, amélioration de la reconnaissance vocale, découverte de FeathersJS et de Lottie, et étude de faisabilité Android.</description><pubDate>Mon, 15 Nov 2021 00:00:00 GMT</pubDate><category>React Native</category><category>TypeScript</category><category>FeathersJS</category><category>XState</category><category>Socket.io</category></item><item><title>Polyy — construire un réseau social de l&apos;achat-vente de chevaux</title><link>https://imagine-app.fr/blog/polyy-reseau-social-chevaux-react-native-rails-firebase/</link><guid isPermaLink="true">https://imagine-app.fr/blog/polyy-reseau-social-chevaux-react-native-rails-firebase/</guid><description>Retour technique sur Polyy, un réseau social et marketplace pour l&apos;achat et la vente de chevaux. Architecture trois-tiers (React Native + Rails API + Firebase), modèle de données métier riche (pedigree, discipline, performances), messagerie temps réel et recherche géolocalisée avec PostGIS.</description><pubDate>Mon, 15 Feb 2021 00:00:00 GMT</pubDate><category>React Native</category><category>Ruby on Rails</category><category>Firebase</category><category>TypeScript</category><category>PostgreSQL</category><category>Architecture</category></item><item><title>NestJS en production — injection de dépendances et structuration d&apos;un backend TypeScript</title><link>https://imagine-app.fr/blog/nestjs-injection-dependances-structuration-backend-typescript/</link><guid isPermaLink="true">https://imagine-app.fr/blog/nestjs-injection-dependances-structuration-backend-typescript/</guid><description>Retour sur notre utilisation de NestJS 7 en production : injection de dépendances inspirée d&apos;Angular, structuration modulaire, custom providers, guards injectables, et comparaison avec les patterns équivalents en Java (Spring, Guice). Exemples tirés de l&apos;API centrale MyMove.</description><pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate><category>TypeScript</category><category>NestJS</category><category>Node.js</category><category>Architecture</category><category>Backend</category></item><item><title>Afficher 10 000 points à 60fps — Graphes temps réel en Canvas pour l&apos;acquisition scientifique</title><link>https://imagine-app.fr/blog/eudoxe-graphes-temps-reel-canvas-acquisition-scientifique/</link><guid isPermaLink="true">https://imagine-app.fr/blog/eudoxe-graphes-temps-reel-canvas-acquisition-scientifique/</guid><description>Retour d&apos;expérience sur la construction d&apos;un moteur de graphes Canvas pour une app d&apos;acquisition scientifique. Pourquoi D3.js et les librairies SVG ne tenaient pas la charge en temps réel, architecture modulaire du Grapher, scaling adaptatif, et le sous-échantillonnage intelligent pour rester à 60fps.</description><pubDate>Tue, 25 Aug 2020 00:00:00 GMT</pubDate><category>Canvas</category><category>JavaScript</category><category>Visualisation</category><category>Performance</category><category>Ionic</category></item><item><title>Intégrer des capteurs scientifiques custom dans Cordova et Electron — C++, node-gyp et protocole maison</title><link>https://imagine-app.fr/blog/eudoxe-capteurs-custom-cpp-cordova-electron-protocole/</link><guid isPermaLink="true">https://imagine-app.fr/blog/eudoxe-capteurs-custom-cpp-cordova-electron-protocole/</guid><description>Comment on a intégré des capteurs scientifiques Bluetooth avec un protocole propriétaire dans une app hybride Cordova/Electron. Code C++ partagé entre iOS et macOS, bridges Objective-C++ et NAN, compilation node-gyp pour Electron, et les défis d&apos;un protocole sans synchronisation d&apos;horloge.</description><pubDate>Wed, 05 Aug 2020 00:00:00 GMT</pubDate><category>C++</category><category>Cordova</category><category>Electron</category><category>Bluetooth</category><category>node-gyp</category><category>IoT</category></item><item><title>Remplacer une app Delphi par une app hybride — Architecture Cordova/Electron pour l&apos;acquisition scientifique</title><link>https://imagine-app.fr/blog/eudoxe-app-hybride-educative-cordova-electron-architecture/</link><guid isPermaLink="true">https://imagine-app.fr/blog/eudoxe-app-hybride-educative-cordova-electron-architecture/</guid><description>Comment on a architecturé une application hybride Cordova/Electron pour remplacer un logiciel Delphi d&apos;acquisition de données scientifiques. Trois plateformes, un seul code JavaScript, des plugins natifs C++ pour le calcul et les capteurs, et le plaisir de voir l&apos;hybride enfin tenir la route sur Android.</description><pubDate>Mon, 20 Jul 2020 00:00:00 GMT</pubDate><category>Cordova</category><category>Electron</category><category>Ionic</category><category>C++</category><category>Architecture</category></item><item><title>MyMove — comparer les VTC en temps réel avec des microservices sur Cloud Run</title><link>https://imagine-app.fr/blog/mymove-comparateur-vtc-microservices-cloud-run/</link><guid isPermaLink="true">https://imagine-app.fr/blog/mymove-comparateur-vtc-microservices-cloud-run/</guid><description>Comment on a repris et consolidé MyMove, un comparateur de tarifs VTC (Uber, Kapten, Bolt, G7) basé sur une architecture microservices déployée sur Google Cloud Run, avec TypeScript pour remettre de l&apos;ordre dans un projet hérité.</description><pubDate>Wed, 15 Jul 2020 00:00:00 GMT</pubDate><category>TypeScript</category><category>Cloud Run</category><category>Microservices</category><category>React Native</category><category>Node.js</category><category>Python</category><category>Firebase</category></item><item><title>Pourquoi on aime autant Rails — l&apos;écosystème qui fait gagner des semaines</title><link>https://imagine-app.fr/blog/pourquoi-on-aime-rails-gems-ecosysteme-productivite/</link><guid isPermaLink="true">https://imagine-app.fr/blog/pourquoi-on-aime-rails-gems-ecosysteme-productivite/</guid><description>Rails en 2019, c&apos;est un framework avec quinze ans de gems matures derrière lui. On compare avec l&apos;écosystème Node.js du moment et on explique pourquoi on continue à livrer plus vite avec Ruby.</description><pubDate>Tue, 12 Mar 2019 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Architecture</category><category>Backend</category><category>Node.js</category></item><item><title>Uploader des vidéos lourdes depuis React Native</title><link>https://imagine-app.fr/blog/upload-video-react-native-compression-formdata/</link><guid isPermaLink="true">https://imagine-app.fr/blog/upload-video-react-native-compression-formdata/</guid><description>Retour sur un proof of concept d&apos;upload de vidéos volumineuses depuis React Native : compression via react-native-video-processing, upload multipart avec fetch, et un mini serveur Express/Multer pour tester.</description><pubDate>Mon, 18 Feb 2019 00:00:00 GMT</pubDate><category>React Native</category><category>Mobile</category><category>Node.js</category></item><item><title>Remplacer un outil DOS par un back-office Rails pour une boulangerie parisienne</title><link>https://imagine-app.fr/blog/poujauran-rails-remplacer-outil-dos-back-office/</link><guid isPermaLink="true">https://imagine-app.fr/blog/poujauran-rails-remplacer-outil-dos-back-office/</guid><description>Comment on a abordé la migration d&apos;un outil de gestion de commandes tournant sous DOS vers un back-office web en Rails 5.2 pour la maison Poujauran, boulangerie artisanale parisienne.</description><pubDate>Tue, 15 Jan 2019 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Architecture</category><category>Backend</category><category>Migration</category></item><item><title>Le back-office React + TypeScript du pop-up store Make My Lemonade</title><link>https://imagine-app.fr/blog/back-office-tissus-react-typescript-material-ui-firebase/</link><guid isPermaLink="true">https://imagine-app.fr/blog/back-office-tissus-react-typescript-material-ui-firebase/</guid><description>Comment on a construit le back-office d&apos;administration du catalogue patrons/tissus avec Create React App, TypeScript, Material-UI et Firebase — et ce qu&apos;on a appris sur la sécurisation de Firestore avec les custom claims.</description><pubDate>Sat, 25 Aug 2018 00:00:00 GMT</pubDate><category>React</category><category>TypeScript</category><category>Firebase</category><category>Material-UI</category></item><item><title>Une app iPad pour le pop-up store Make My Lemonade — choisir sa coupe et son tissu avec Expo et Firebase</title><link>https://imagine-app.fr/blog/configurateur-tissus-react-native-firebase-svg/</link><guid isPermaLink="true">https://imagine-app.fr/blog/configurateur-tissus-react-native-firebase-svg/</guid><description>Comment on a construit une app tablette en React Native (Expo SDK 28) pour une marque de mode DIY : catalogue de patrons et tissus synchronisé en temps réel via Firestore, images composites pré-rendues dans Firebase Storage, et impression de tickets avec code-barres EAN13.</description><pubDate>Tue, 10 Jul 2018 00:00:00 GMT</pubDate><category>React Native</category><category>Firebase</category><category>Expo</category><category>Mobile</category></item><item><title>Du tracking vidéo pour un baby-foot — Cinder, OpenCV et le plaisir de refaire du C++</title><link>https://imagine-app.fr/blog/fsb-tracking-vision-cinder-opencv-cpp/</link><guid isPermaLink="true">https://imagine-app.fr/blog/fsb-tracking-vision-cinder-opencv-cpp/</guid><description>Comment on a construit un module de tracking vidéo pour le baby-foot Tekbak : détection de balle par segmentation couleur, effets particules OpenGL via Cinder, enregistrement des buts en slow motion, et les joies du C++ moderne cross-platform.</description><pubDate>Thu, 28 Dec 2017 00:00:00 GMT</pubDate><category>C++</category><category>OpenCV</category><category>OpenGL</category><category>Vision</category><category>IoT</category></item><item><title>ProFeel — un serveur stub Swagger pour avancer sans API</title><link>https://imagine-app.fr/blog/profeel-ionic-stub-api-swagger-node/</link><guid isPermaLink="true">https://imagine-app.fr/blog/profeel-ionic-stub-api-swagger-node/</guid><description>Retour sur ProFeel, une app Ionic de profilage professionnel. L&apos;API tierce n&apos;existait qu&apos;en production. On a monté un stub server Swagger en Node/Express pour développer sans attendre, et ça nous a fait gagner un temps fou.</description><pubDate>Mon, 12 Jun 2017 00:00:00 GMT</pubDate><category>Ionic</category><category>Node.js</category><category>Swagger</category><category>API</category><category>Webpack</category></item><item><title>Sircle Android — RxJava vs RxSwift, retour sur le portage d&apos;une app réactive</title><link>https://imagine-app.fr/blog/sircle-android-rxjava-comparaison-rxswift-ios/</link><guid isPermaLink="true">https://imagine-app.fr/blog/sircle-android-rxjava-comparaison-rxswift-ios/</guid><description>Après la version iOS de Sircle en RxSwift, on a attaqué le portage Android en Java 8 avec RxJava 2. Cet article compare les deux implémentations : gestion du threading, bus d&apos;événements, moteur physique, et les pièges spécifiques à chaque plateforme.</description><pubDate>Mon, 15 May 2017 00:00:00 GMT</pubDate><category>Android</category><category>RxJava</category><category>Java</category><category>Architecture</category><category>iOS</category></item><item><title>Sircle — construire un réseau social géolocalisé en Swift 3 avec RxSwift et Realm</title><link>https://imagine-app.fr/blog/sircle-app-sociale-rxswift-realm-geolocalisation/</link><guid isPermaLink="true">https://imagine-app.fr/blog/sircle-app-sociale-rxswift-realm-geolocalisation/</guid><description>Retour technique sur Sircle, une app iOS de networking professionnel pour les agences marketing. Architecture RxSwift-first, persistance Realm, API typesafe avec Moya, UI à bulles physiques avec UIDynamicAnimator, et chat temps réel via SendBird.</description><pubDate>Mon, 20 Mar 2017 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>RxSwift</category><category>Realm</category><category>Architecture</category></item><item><title>Remplacer 10 000 lignes de regex par une machine à états configurable</title><link>https://imagine-app.fr/blog/cli-ruby-analyse-logs-general-electric-machine-etats/</link><guid isPermaLink="true">https://imagine-app.fr/blog/cli-ruby-analyse-logs-general-electric-machine-etats/</guid><description>Retour sur la réécriture d&apos;un outil CLI d&apos;analyse de logs pour GE Healthcare. L&apos;ancien outil enchaînait des regex fragiles. On l&apos;a remplacé par un parseur à machine à états piloté par des fichiers de configuration XML, avec un mini-interpréteur d&apos;expressions arithmétiques.</description><pubDate>Tue, 15 Nov 2016 00:00:00 GMT</pubDate><category>Ruby</category><category>CLI</category><category>Architecture</category><category>Parsing</category></item><item><title>Rails 5 API : modéliser les disponibilités d&apos;une marketplace de services</title><link>https://imagine-app.fr/blog/rails-5-api-disponibilites-marketplace-services/</link><guid isPermaLink="true">https://imagine-app.fr/blog/rails-5-api-disponibilites-marketplace-services/</guid><description>Comment on a construit l&apos;API Rails 5 d&apos;une marketplace multi-services : calcul de disponibilités en temps réel, réservations récurrentes avec AASM, et profils polymorphiques pour des verticales métier hétérogènes.</description><pubDate>Sat, 05 Nov 2016 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Architecture</category><category>API</category><category>Backend</category></item><item><title>Webpack, Babel et ES6 dans une app Ionic — un pipeline JS moderne en 2016</title><link>https://imagine-app.fr/blog/webpack-babel-es6-ionic-pipeline-moderne/</link><guid isPermaLink="true">https://imagine-app.fr/blog/webpack-babel-es6-ionic-pipeline-moderne/</guid><description>Retour technique sur la mise en place d&apos;un pipeline JavaScript moderne — Webpack, Babel 6, modules ES6, SCSS et PostCSS — dans une app Ionic 1 / AngularJS de taille conséquente.</description><pubDate>Fri, 28 Oct 2016 00:00:00 GMT</pubDate><category>Webpack</category><category>Babel</category><category>ES6</category><category>JavaScript</category><category>Ionic</category><category>SCSS</category></item><item><title>Hively — construire une marketplace de services en Ionic et Rails 5</title><link>https://imagine-app.fr/blog/beespoke-marketplace-collaborative-ionic-rails/</link><guid isPermaLink="true">https://imagine-app.fr/blog/beespoke-marketplace-collaborative-ionic-rails/</guid><description>Comment on a livré une app mobile de mise en relation entre particuliers et prestataires de services, avec Ionic 1, AngularJS, un pipeline JS moderne (Babel, Webpack, ES6) et une API Rails 5 fraîchement sortie.</description><pubDate>Sat, 15 Oct 2016 00:00:00 GMT</pubDate><category>Ionic</category><category>Rails</category><category>Mobile</category><category>AngularJS</category><category>ES6</category><category>Webpack</category></item><item><title>Une app iPad native en Swift pour la location de véhicules événementiels</title><link>https://imagine-app.fr/blog/swift-natif-ipad-location-vehicules/</link><guid isPermaLink="true">https://imagine-app.fr/blog/swift-natif-ipad-location-vehicules/</guid><description>Protocoles avec associated types, génériques pour le réseau, vues custom CoreGraphics — les patterns Swift qui ont structuré une app iPad de gestion de flotte, livrée en deux mois.</description><pubDate>Mon, 18 Jul 2016 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>iPad</category><category>Architecture</category></item><item><title>Intégrer une API tierce dans une app Rails</title><link>https://imagine-app.fr/blog/integrer-api-tierce-rails/</link><guid isPermaLink="true">https://imagine-app.fr/blog/integrer-api-tierce-rails/</guid><description>Authentification JWT, payloads imbriqués, gestion d&apos;erreurs — les leçons tirées de l&apos;intégration d&apos;une API de réservation transport dans un projet Rails.</description><pubDate>Fri, 22 Apr 2016 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>API</category><category>Intégration</category><category>JWT</category></item><item><title>TrueSkill — un classement bayésien pour le baby-foot connecté</title><link>https://imagine-app.fr/blog/trueskill-ranking-bayesien-baby-foot-connecte/</link><guid isPermaLink="true">https://imagine-app.fr/blog/trueskill-ranking-bayesien-baby-foot-connecte/</guid><description>Comment on a ajouté un classement TrueSkill en alternative au système de points classique sur la plateforme Foosball Society — inférence bayésienne, gaussiennes tronquées, et la gem Ruby qu&apos;on a dû adapter.</description><pubDate>Mon, 18 Apr 2016 00:00:00 GMT</pubDate><category>Ruby</category><category>Algorithme</category><category>Architecture</category><category>Statistiques</category></item><item><title>Simone.paris — pourquoi Rails pour le backend d&apos;une app iOS</title><link>https://imagine-app.fr/blog/simone-paris-rails-backend-app-ios/</link><guid isPermaLink="true">https://imagine-app.fr/blog/simone-paris-rails-backend-app-ios/</guid><description>Retour d&apos;expérience sur le backend Rails de l&apos;app Simone.paris : API Grape pour iOS, machine à états AASM, Service Objects, et un dashboard ActiveAdmin complet livré à la cliente.</description><pubDate>Mon, 18 May 2015 00:00:00 GMT</pubDate><category>Rails</category><category>Ruby</category><category>API</category><category>ActiveAdmin</category><category>Architecture</category></item><item><title>Simone.paris — développer une app iOS soignée en équipe</title><link>https://imagine-app.fr/blog/simone-paris-ios-retour-experience/</link><guid isPermaLink="true">https://imagine-app.fr/blog/simone-paris-ios-retour-experience/</guid><description>Retour d&apos;expérience sur le développement de l&apos;app Simone.paris pour iOS : architecture réseau avec le pattern Decorator, animations synchronisées au clavier, vues custom CoreGraphics et UICollectionViewLayout sur mesure.</description><pubDate>Tue, 12 May 2015 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>Architecture</category><category>UI</category><category>Animation</category></item><item><title>NavCar — une app de VTC en Corse, en natif iOS et Rails</title><link>https://imagine-app.fr/blog/navcar-app-vtc-corse-ios-natif-rails-postgis/</link><guid isPermaLink="true">https://imagine-app.fr/blog/navcar-app-vtc-corse-ios-natif-rails-postgis/</guid><description>Retour d&apos;expérience sur la construction d&apos;une app de réservation de VTC en Corse : iOS natif Objective-C, backend Rails 4.1, calcul de tarifs par zones géographiques avec PostGIS, synchronisation avec un progiciel de gestion de flotte via webhooks, et paiement Adyen.</description><pubDate>Tue, 28 Apr 2015 00:00:00 GMT</pubDate><category>iOS</category><category>Objective-C</category><category>Ruby on Rails</category><category>PostGIS</category><category>API</category><category>Paiement</category></item><item><title>ionic : pourquoi une agence native s&apos;intéresse à l&apos;hybride</title><link>https://imagine-app.fr/blog/explorer-ionic-framework-hybride/</link><guid isPermaLink="true">https://imagine-app.fr/blog/explorer-ionic-framework-hybride/</guid><description>Nous sommes spécialisés en développement natif iOS et Android. Pourtant, depuis six mois, on expérimente Ionic. Retour sur ce qui nous a convaincus d&apos;y regarder de plus près.</description><pubDate>Wed, 12 Nov 2014 00:00:00 GMT</pubDate><category>Ionic</category><category>Mobile</category><category>Cordova</category><category>AngularJS</category></item><item><title>Le Rails derrière le baby-foot</title><link>https://imagine-app.fr/blog/architecture-rails-baby-foot-connecte/</link><guid isPermaLink="true">https://imagine-app.fr/blog/architecture-rails-baby-foot-connecte/</guid><description>Comment on a structuré une application Rails 4 pour gérer des baby-foots connectés, du badge RFID au classement ELO — avec une API JSON, du temps réel Redis et un système de trophées.</description><pubDate>Mon, 15 Sep 2014 00:00:00 GMT</pubDate><category>Ruby</category><category>Rails</category><category>Architecture</category><category>API</category><category>Redis</category></item><item><title>Encoder les règles d&apos;un baby-foot dans un AST</title><link>https://imagine-app.fr/blog/moteur-regles-baby-foot-ast-ruby/</link><guid isPermaLink="true">https://imagine-app.fr/blog/moteur-regles-baby-foot-ast-ruby/</guid><description>Comment on a conçu un moteur de règles configurable pour le baby-foot Tekbak — un AST évalué en Ruby qui simule chaque coup possible pour décider si la balle doit être verrouillée.</description><pubDate>Sun, 15 Jun 2014 00:00:00 GMT</pubDate><category>Ruby</category><category>Architecture</category><category>Embarqué</category><category>IoT</category></item><item><title>Afficher du texte sur 7 pixels de haut</title><link>https://imagine-app.fr/blog/affichage-texte-led-custom-ruby-freetype/</link><guid isPermaLink="true">https://imagine-app.fr/blog/affichage-texte-led-custom-ruby-freetype/</guid><description>Comment on a recodé un pipeline de rendu typographique complet — FreeType, kerning, scrolling — pour piloter des afficheurs LED 48×7 pixels encastrés dans un baby-foot connecté.</description><pubDate>Thu, 20 Mar 2014 00:00:00 GMT</pubDate><category>Ruby</category><category>FreeType</category><category>Embarqué</category><category>LED</category><category>IoT</category></item><item><title>Écrire une extension C pour Ruby sur de l&apos;embarqué</title><link>https://imagine-app.fr/blog/extension-c-ruby-embarque-i2c/</link><guid isPermaLink="true">https://imagine-app.fr/blog/extension-c-ruby-embarque-i2c/</guid><description>Comment nous avons connecté Ruby à une électronique custom via une extension C pour piloter des capteurs I2C sur un BeagleBone — et les pièges qu&apos;on n&apos;avait pas vus venir.</description><pubDate>Wed, 15 Jan 2014 00:00:00 GMT</pubDate><category>Ruby</category><category>C</category><category>Embarqué</category><category>I2C</category><category>IoT</category></item></channel></rss>