I started with Android Jelly Bean and Java, years before React Native existed. Going native first taught me how mobile actually works, and that knowledge became even more valuable with React Native.
I can still drop into Kotlin, Swift, C++ or whatever the problem requires. But after experiencing the speed, flexibility and dev experience of the React Native ecosystem, I wouldn’t trade this toolchain for anything.
Native is my skillset. React Native is my tool of choice.
Fun fact: the creator of CoreAnimation is one of the creators of SwiftUI!
The decision to run animations in the app process rather than the render server (as CoreAnimation does) was one of the earliest and most fundamental decisions we made when designing SwiftUI.
Some of the most distinctive experiences of using an iPhone, like UIScrollView rubber banding and SpringBoard app switching are only possible as client-side animations.
But these experiences aren’t easy to build with UIKit!
This is because if you want a UI to be fully interactive and interruptible by the user while it’s animating, it has to be running in the same process as the event handling.
In fact, in iOS 18 we added new APIs to AppKit and UIKit to adopt the SwiftUI client-side animation model.
There are a lot of valid critiques of SwiftUI. The fact that SwiftUI doesn’t use CoreAnimation for its animations is not one of them.
The premature optimization of splitting animation work onto another process has done lots of harm to iOS (and web). For a brief while things were slightly smoother, but in exchange we ended up with uninterruptible animations and layout glitches from introducing unsolvable concurrency problems, plus various patches on top that ultimately make the system actually slower than if we just did things cleanly on main thread (or had access to proper multithreading in userland). Most tasteful UX cannot be decoupled in a computer sciency way
Smooth animations in general are great but calcifying the rendering pipeline for a decade is a huge cost
I want a version of React Native that runs on iOS main thread and where developers have to care about not blocking the thread for more than 8-16ms.
It would be possible to create higher fidelity React Native apps for those wiling to put in more effort.
@kylemacomber At least SwiftUI gets to run on the main thread! In theory that should make it as easy as React bridging to the DOM (where the two run on the same thread), right?
(Not so for React Native).
@kylemacomber At least SwiftUI gets to run on the main thread! In theory that should make it as easy as React bridging to the DOM (where the two run on the same thread), right?
(Not so for React Native).
AI coding saves you developer time. You get to decide what to do with that time. You can spend that time supporting multiple different codebases/languages. Or you can keep a x-plat framework and spend that time making your product better, optimizing your x-plat usage.
I believe everyone should have access to superintelligence, and I wrote a long piece about Meta's philosophy and values for building a positive future for everyone.
Airtable bookends the rise and fall of “no code.”
I remember arguing endlessly with investors about this.
UI can never let you build arbitrary software. The way to make software accessible was always to solve code itself.
For a long time, that sounded delusional.
Not anymore.