This huge update took me 10 months, I rewrote the app from the ground up (React Native → SwiftUI), and pivoted it in a new direction.
It’s a journey of pain and joy, and I’d like to share what I’ve been through along the way.
(thread 🧵)
This story starts in early 2019, as a web developer with 5 years of experience, I chose to write Bluebird 1.0 using React Native because it enabled me to write native UIs declaratively.
“React Native lets you create truly native apps and doesn’t compromise your users’ experiences.” This quote from its official website describes exactly what I needed at the time.
SwiftUI didn’t exist back then.
As time flies, I’ve come to realize the limitations of React Native, which can be summed up in one sentence: developing apps is more than just writing UIs.
For a better user experience, I need to use some iOS-exclusive APIs, which means I have to write native code anyway.
So why don’t I just write native code?
When Apple refreshed SwiftUI at WWDC20, I thought it was a good time to switch.
I told our designer @topologiraffe that I needed a big chunk of time to learn Swift & SwiftUI, then rewrite Bluebird completely to make it better.