Even though we could deliver the experience at reach, at scale, very fast, but the experience is not good enough, nobody will like it, then, you know, it's still not going to be the platform we are building for. So that is, unfortunately, what web has been suffering for a while, and I always quote Tom Holmes, like, this sentence from his initial introduction of React Native, it's like 2015, anytime somebody tries to implement native widgets with HTML, CSS and JavaScript, always feels like shit. I mean, nowadays, it's getting much better. I've seen a lot of great design engineer who started to, you know, recreating a lot of great stuff. But like, when it comes to some of the really tricky part, like, scroll, especially, like, multiple scroll and gesture, multi-finger gesture, that started to kind of fall apart.
And this, tools like PhoneGap, Quo Java, React Native Flutter, these tools, they appeared, they indicate that the relevance gap was too large. So we as web developers, we have to trade off some of the best part of the web in return for those necessary capability from the native platform so we can, you know, ship the real stuff. And LYNX is no different. We starting from the language of web and we need to go more native. So personally, I would think all these technologies are chasing the same north star, which is trying to hit the three points at once. So, LYNX actually use native primitive, like native views. In LYNX, text like text view, images, they are rendered into native UI, same as React Native. You could have UI view, actual UI view and actual view group.
And one of the most fresh example of this approach is that liquid glass, right? By adopting this approach, it's much easier to have that, basically for free. The other example is that very complicated and expensive layout, such as multi-column animation area, waterfall, like different people call it different name. It's very popular but it's still very tricky to get it right and perform it on web. With LYNX, because it use native primitive, you can actually have to build in. So, in LYNX, it's very easy. You just declare a type and you got it. The other part of native primitive are native module, right? Being able to access those OS level API. Our documentation only give you a tutorial on how you could build local storage with Android share preference in iOS APIs and based on the shared TypeScript declaration. That's cool, right? You can have that capability.
Comments