Every few years I get the notion that I should learn how to make iOS apps. It's an incredible platform, the users are everywhere, and I love the idea of making software that goes in my pocket. I'm also a big-time Apple user, and was blown away by the new Vision Pro and all the possibilities for immersive apps on a new platform, so the call is very strong right now to add this skill to my toolbox and make something cool.
I'm a big fan of Paul Hudson's Hacking With Swift, and have done a portion of his 100 Days of SwiftUI course in the past. I think I'm going to try to do one module a day on my lunch break and see if I pick up enough to take a stab at one of the many app ideas I've had over the past few years. Most recently, a friend and I have been talking about an app that makes it easier to make and share music playlists with your friends.
But I've walked this road before, and I'm aware of the pitfalls that might cause me to give up on it again. Namely:
- The Apple developer ecosystem is its own self-contained thing, very separate from web development, with a set of completely proprietary tools. It's a big deal to have to learn a new language and a new set of APIs, add to that a new IDE and a new deployment process and it's a lot to keep up with
- The tools are constantly changing, making getting correct advice difficult. Apple has a bunch of libraries for user interfaces, and it's confusing to know which one to use. I'm going with SwiftUI, their latest offering, but it's very new and so doesn't always work as expected, and older information may be outdated.
On the other hand, I have some things going for me this time that may help:
- More experience developing: I know a lot more about the practice of development now than I did 3 years ago
- There are AI tools that I have found very useful in overcoming weird error messages and helping to break down complex functionality into actionable steps
I'm hoping to do the program for a few weeks and then take a shot at making something on my own! Read on if you want to follow my progress.