Les UIWebView ne sont plus un problème depuis iOS 8.0... 📱
"Mais qu'est-ce qu'il raconte lui encore, c'est quoi une UIWebView ?"
Revenons à l'époque d'iOS 6.0, à cette époque iOS était roi... 👑
Pour créer des applications, utiliser des technologies web était proscrit, il fallait utiliser les technologies propriétaires d'Apple, via Xcode et on codait en Objective-C (Swift n'existait pas).
Et dans les outils mis à disposition par Apple il y avait "UIWebView", ça permettait de charger du contenu web dans une application.
Sauf que... 😬
Les performances d'UIWebView n'avaient rien à voir avec Safari, pour des raisons commerciales j'imagine, Apple proposait quelque chose avec des performances très médiocres pour afficher du contenu web dans les applications.
Ce qui a clairement découragé les applications hybrides (quand l'interface, en fait c'est du web).
D'ailleurs au tout début l'application de Facebook, c'était du web.
Puis à iOS 8, ils se sont enfin décidés à mettre à disposition WebKit pour les développeurs d'app (et c'est à ce moment que tout d'un coup, Chrome et Firefox sous iOS sont devenus utilisables...). 🚀
Je m'en souviens bien, car c'est à cette époque que j'ai eu mon premier iPhone, le 6S Plus.
Et j'ai commencé à m'intéresser à écrire des trucs pour le mobile, à l'époque j'utilisais Ionic, c'était exclusivement sous Angular (la version 1.0 bien rustique).
Puis le temps est passé, j'ai aussi essayé React Native (LFcolors, c'est React Native, par exemple), mais je trouve ça "trop éloigné du web".
Lorsqu'on a fait l'application de réservation LFM, je voulais tester Hotwire à l'époque, le front de Symfony-UX... j'ai tellement aimé ce que j'ai vu que c'est ça qui m'a donné envie de creuser et de voir "le framework complet que ces mecs ont fait", ce framework, c'est Rails. ❤️
Bref, l'app web de réservation est sortie mais...
En 2022, on n'est pas sur l'écran d'accueil de l'iPhone des clients du restaurant.
Et ça c'est un problème... d'un point de vue commercial, être sur la home de l'iPhone de vos clients, ça change tout (en B2C, en B2B, au début une PWA est suffisante).
Comme je vous l'ai dit plus haut, le front de l'app de réservation, c'est Hotwire (Turbo, Stimulus tout ça).
Ça serait fou que les gens d'Hotwire travaillent sur quelque chose pour faire "bridge" avec du code natif, hein ça serait complètement fou de faire ça... non ? 🤔
En fait, ça existe, ça s'appelle "Hotwire Native", et c'est comme ça que j'ai pu mettre LFM sur l'app store.
Alors, oui je sais "c'est du web pas du natif", mais on s'en fiche royalement en fait ! Le temps de dev ? 4 jours... (en 2022 !) ⚡
Et surtout, aujourd'hui cette application est utilisée par beaucoup de personnes qui ne sont pas dans la tech, et ils ne voient pas la différence entre une application native ou hybride, seuls nous, les geeks on sait ce que c'est 😝
Et cette app est seule dans sa catégorie à Nancy, aucun autre restaurant n'a d'application avec "son nom dessus".
Avec Rails 8.1, ils poussent le concept encore plus loin, il y aura carrément les notifications push (c'est pour ça que Campfire a été open source, pour extraire le code des notifs push de l'app). 🔔
On est en 2025, il suffit d'avoir quelques compétences techniques, et des idées et de là, vous pouvez construire tout ce que vous imaginez. 💪
Je me rapproche de la version 1.0 de Coupéo, et j'adore ce que je vois, l'application donne envie, elle est rapide et agréable à utiliser ! Je n'ai qu'un state à gérer côté serveur... (sur les applications complexes, devoir synchro le state serveur et client, c'est chiant).
Et j'ai même accès à l'app store sans trop d'effort, et ça c'est génial 😍.