After a couple of years of not writing any React I decided to give React Native a shot. I used Cursor to create a prototype to see how viable this would be. It was all great, till I made the mistake of looking at the codebase. To be fair to Cursor, it did what I asked it to do. So when I started working on the project I had a faint idea of what I was getting into. Or so I thought. I started from scratch on Monday on the App and for the last three days all I've been doing is either install a dependency or reading the docs of said dependency to see how it works. There was an infinite update error on redirect after authentication that I just couldn't figure out. Skill issue? Maybe. Hear me out. During those same three days I've been working on my Compiler in Zig too, also something I've never built before. I made way more progress on the compiler than I did on the Auth of my React Native app. Is that crazy? I think it is.
The problem
As I see it, the problem is that, it's just not programming. It feels like putting lego pieces together that are built with pieces of their own and hope they all work together. Only to realize it's not even lego. When something goes wrong you get an error that really means nothing to you if don't know how the framework works under the hood. How is that programming? Normally when shit breaks you can put a breakpoint or print a log. I love making products but I equally love the craft of building said product. I'm quite self reliant and can afford to build things as I want them as I own the things I build. Most of it anyways.
The solution?
For now the obvious solution for me it use Swift and SwiftUI to build an App for myself. I don't have a mac so I'll be building it on my Ipad, which is fine, thanks to the swift playground. I have been thinking about exploring Swift anyways, this will be a good excuse. I'm thinking of building the entire thing in Swift, but I'm not sure yet. I have the server setup in Go already, so I might save Swift on the server for another time. It's still a watered down version of the real thing but at least it works and I can see why it doesn't work when it doesn't either. So far it has been a joy to work with, as I have been going through the docs and getting the feel for the language. Also, I'm finding some excitement around building UI'd again. Which is nice too.