Ludovic Frank

October 17, 2025

UIWebViews haven't been a problem since iOS 8.0... 📱

"But what's he going on about now, what's a UIWebView?"

Let's go back to the iOS 6.0 era, when iOS was king... 👑

app-hybride.jpg


To create apps, using web technologies was forbidden - you had to use Apple's proprietary technologies via Xcode, and code in Objective-C (Swift didn't exist yet).

Among the tools provided by Apple was "UIWebView," which allowed you to load web content in an app.

Except that... 😬

UIWebView's performance was nothing like Safari - for commercial reasons I imagine, Apple offered something with very poor performance for displaying web content in apps.

This clearly discouraged hybrid apps (where the interface is actually web-based).

In fact, at the very beginning, Facebook's app was web-based.
Then with iOS 8, they finally decided to make WebKit available to app developers (and that's when suddenly Chrome and Firefox on iOS became usable...). 🚀

I remember it well because that's when I got my first iPhone, the 6S Plus.
And I started getting interested in writing stuff for mobile - at the time I used Ionic, which was exclusively on Angular (the very basic 1.0 version).

Then time passed, I also tried React Native (LFcolors is React Native, for example), but I find it "too far removed from the web."

When we built the LFM booking app, I wanted to test Hotwire at the time, Symfony-UX's front end... I loved what I saw so much that it made me want to dig deeper and check out "the complete framework these guys built" - that framework is Rails. ❤️

Anyway, the booking web app came out but...

In 2022, you're not on the home screen of the restaurant's customers' iPhones.
And that's a problem... from a commercial standpoint, being on your customers' iPhone home screen changes everything (in B2C - in B2B, a PWA is sufficient at first).

As I mentioned above, the booking app's front end is Hotwire (Turbo, Stimulus, all that).

It would be crazy if the Hotwire folks worked on something to "bridge" with native code, right? That would be completely crazy to do that... wouldn't it? 🤔

Actually, it exists - it's called "Hotwire Native," and that's how I was able to put LFM on the App Store.

Yes, I know "it's web not native," but we really don't care! Development time? 4 days... (in 2022!) ⚡

And most importantly, today this app is used by many people who aren't in tech, and they don't see the difference between a native or hybrid app - only we geeks know what it is 😝

And this app is the only one in its category in Nancy - no other restaurant has an app with "its name on it."

With Rails 8.1, they're pushing the concept even further - there will even be push notifications (that's why Campfire was open-sourced, to extract the push notification code from the app). 🔔

It's 2025, you just need a few technical skills and ideas, and from there you can build whatever you imagine. 💪

I'm getting close to version 1.0 of Coupéo, and I love what I see - the app is appealing, fast, and pleasant to use! I only have one state to manage on the server side... (on complex apps, having to sync server and client state is a pain).

And I even have access to the App Store without too much effort, and that's amazing 😍.

About Ludovic Frank

Passionate web developer living in France, creator of projects like ViteUneTable, LFNY, LFQR, LFMDP LFUnminfy, LFColors, LFSocial, LFMaps and LFGitignore.

Always interested in trying out new things.

In addition to occasionally writing on this platform, I also maintain my own blog.