top | item 36579361

(no title)

boolean | 2 years ago

> Coming from web development, learning how to ship a native app was a trip

Can you share your learning experience and overall impressions?

discuss

order

evindor|2 years ago

Overall, I learned to appreciate the predictability and great standards and documentation of the web platform. With Apple tech, the moment you stray away from neatly designed WWDC demos you find yourself more or less alone against not-so-well documented platform and having to work with decades old APIs and strange behaviours. It's much harder to find ready-made answers, and if anything, ChatGPT itself was more help than the Stack Overflow in dealing with weird bugs and strange behaviours.

Coming to native development, you kinda expect that you'll be writing beautiful code, in the spirit of Apple (beautiful outside, beautiful on the inside), but you quickly realise that the closeness of the platform works against it, and very often you have to resort to hackity-hack solutions and your code is anything but beautiful after all.

Nonetheless, I enjoyed building a native app, there is something different to it, like you're building something physical, something that you can feel and touch and experience. And I've barely touched the surface of what's possible with it, constrained by time being a solo dev. Swift itself is a beautiful language and a pleasure to work with, and Swift UI is very easy to pick up if you're familiar with React. Until you have to make something non-standard and find hackity ways to do it.

What surprised me the most is the ratio of product and around-the-product work. The core app itself was ready within a couple weeks, but it lacked payments, user quotas and trials. Implementing these took me about 70% of time spent on the app. It's incredibly hard to implement subscriptions as a solo developer, with both Stripe or App store options presenting their own challenges. To the point that for my next apps it would be a major factor if the app is sellable as a one-time purchase. For the sake of learning, I decided to go all-in with Apple ecosystem and use Sign in with Apple and distribute over the Mac App Store. Looking forward to seeing how it works out.

EDIT: grammar

kitsunesoba|2 years ago

I’m assuming this was built with AppKit?

If so, yeah AppKit has some warts, and it isn’t all that well documented. That’s how it’s been since I got started with it back in the early-mid 2000s, where your best sources for learning were random blog posts or books (the latter of which I couldn’t afford as a teenager).

If you ever do iOS dev, UIKit is a lot nicer to use in almost every way. It’s been polished and modernized a great deal in comparison, and because iOS as a platform is so much more popular/important it’s throughly documented end to end.

Still, AppKit does have some advantages, like its batteries-included nature which allows one to build complex apps with few or no third party dependencies.