Recent submissions

Comment · 2 months ago
It's been selective for sure. I have a macOS app that has been approved within a day. There are two apps I submit for a client both have cleared review twice in the past two weeks within 24 hours.

On the other hand I have a personal iOS app that normally doesn't take long to approve that's been waiting two weeks.

Comment · 2 months ago
I can respect a developer who is still smitten with their craft to feel a bit anxious when the topic of LLM generated code comes up. I have a child who never grows tired of building their next game but first has to build the engine from scratch (needless to say they've built a lot of engines, not so many games). This use to frustrate me but then I realized the joy is in making a concept of a game for them. When I suggest Claude might get the job done faster I get a death glare followed by an eye roll. I get it, I've been in the industry long enough where coding is more of a means to an end and not the same novelty it once was.

More dangerous are communities who shun AI and treat every disclosure like a Scarlett letter. Generally the loudest opinions come from consumers (fan bois) and not creators. I think this will eventually drive new innovators away from these communities. These vocal naysayers have likely never experienced being a project manager, lead developer, and QA for an agent writing code. Instead they think a prompt magically creates software, but without wearing all these hats at once, you get something far worse than 'slop'. Call me crazy, but I think these multi-hat 'developers' using an agent and are dipping their toe into LLM development are going to raise the bar and leave us vim users in the dust.

Comment · 3 months ago
I don't want to downplay your lived developer experience, I'm not fully following all your arguments but let me just say @Environment is a great tool. We've all used singletons, even more so in UIKit seeing how unintuitive key value observation was.

It's used a few different ways in the app I'm looking at now. One is to hold a source of truth for my API data models. This way I have a cache of say User that, when it changes for whatever reason - maybe invalidating the cache (read logout) or changing a profile image - is handed around to all my Views that need User info with @Environment(\.user)

Same thing with my analytics. Something like a MixPanel is only going to be created once. It's a singleton. You pass it around in an @Environment.

NavigationStack was a problem pre-iOS 17 and even a bit of a jam in 17 -> 18 and was glad to drop that version. But passing around an enum of values makes deep linking intuitive, yes there's a bunch of boiler plate - setting up an enum I guess - but deep linking was never easy. If you're not doing deep linking then a NavigationPath is really simple to use but I assume that's not what you were talking about.

I used MVVM for about 6 months and ripped it out. There's no reason to use that pattern in SwiftUI. It was popularized by certain iOS evangelists and caught on with the newbies (myself included). Your reaction to MVVM and useless ceremony is exactly the response you should have to a code smell that doesn't belong and it was mine too.

Comment · 3 months ago
Just a couple points because your opinions aren’t wrong, they’re just your lived experience.

2. There’s no magic here. There is poor documentation. The biggest trick — small views, think about what values are going to trigger a refresh. Avoid cascading view refreshes.

6. You might have missed a couple big iOS releases (iOS 7 was one to remember) where many of our apps fell over in UIKit. Swift was another ‘DOA’ for YEARS with the same issues you’re making here, each new version broke the old, but here we are in a day and age where it’s the standard.

Comment · 3 months ago
This seems to be a popular ‘controversial’ topic. I’ve been using SwiftUI for production applications and games since 2021. I drop down UIKit, Metal, or core animation when needed. But that’s no different than when I was making games in UIKit and would drop down to core animation or glyph renderers written in C etc.

Data Flow: The author claims there’s no way to know when things update. Not only does experience help here but there are profile tools that tell you when and where things are updated. This isn’t black magic. Keep Views small, be careful how you hand around data. @environment is super cool but can have a cascade effect. This was greatly improved iOS 17+ and I wouldn’t support anything older than iOS 17.

GeometryReader: Occasionally I’ll use this. It’s kind of a necessary evil when dealing with certain view complexity. It can also be a sign that you’re doing something wrong.

API Stability and performance: Apple users upgrade. There’s no reason that you should be supporting iOS 17 at this point — even iOS 18 is roughly 2%% of our user base across several apps. I’ve been using SwiftUI without major performance issues but I also don’t early optimize. I profile and fix as needed. One of the early studios I worked for wrote all our games in UIKit as prototypes, when performance tanked we’d switch to the appropriate tools (eg. OpenGL) where it was necessary — like in the core game.

I could go on but in the end just use the right tool for the job, if you’re not proficient in SwiftUI or it isn’t going to work for your cross platform project, you have a lot of other alternatives. For me though, it’s been amazing to work with. I stepped away from iOS programming for 3 - 4 years because I was burnt out using storyboards, dealing with massive view controllers, and all the boiler plate it’d take to get a view up and going in UIKit. SwiftUI roped me back in.

* Quick addition edit: Cross platform for iOS, iPad, macOS has never been good. I’ve found recent updates have made things better to the point of tolerable and it’s nothing like when we had to post-fix an ~ipad to our Nibs — There has never been a ‘glory days’ of cross platform Apple UI libraries.

Comment · 4 months ago
Where you see quality crisis I see job security! Honest question, when it comes to enshittification of software quality.. have you ever had to use a Meta framework? How many times have they rewritten their mobile apps to use some architect's bespoke code pipe dream? The quality crisis has always been here, now there's just more of it.
Comment · 4 months ago
>> It will happily recreate the same function in several different places for no reason

So do many developers. I've lost count how many times a code review had to be rejected or cleaned up because of copy and pasted code and I'm going to admit, sometimes it's just quicker to duplicate a little code and leave a comment for 'next time'.. we've all done it.

.. like this one time I had a PR and the developer created on loooong linear method, couldn't figure out how to share between targets and copied and pasted the same bad code somewhere else. Somehow it got through and when asked why this was on production the answer was 'it worked'.

>> no time for elegance

This happens, your experience in is generally your quality out. But that doesn't necessarily mean there's going to be elegance. I've worked at major product driven companies where elegance took a back seat to getting release out the door.

Comment · 5 months ago
Having worked on an interactive novel in 2012 (NSString and attributes), low level glyphs (API deprecated) on a rogue-like, two chat apps (with markdown support for formatting) in SwiftUI, and an idle game using a mix of iOS tricks but all wrapped in SwiftUI.. I’m going to agree with how I summarized this response: skill issue.
Comment · 5 months ago
So the author used the latest and greatest development tech to create a unique little demo in their custom language. I'm unsure your point. You know what I don't use to program with anymore? Punch cards and Borland C++. The industry has evolved for better or worse.
Comment · 5 months ago
Amazing and great work!
Comment · 5 months ago
Yes. I don’t think we’re having the same argument though.
Comment · 5 months ago
The genre of course. But this is almost a 1-1 copy of the Brogue style. Right down to the colors, animation, and ASCII
Comment · 5 months ago
I’ll be sure to keep that in mind with my next plumber platformer
Comment · 5 months ago
No credit for the art direction and inspiration? Brogue?

Or did I miss the attribution?

* Edit: I’m not looking for the downvotes or to stir things up. I’m simply calling out that this is a small niche community we notice these things, we’re very free with our code, and copy is a compliment, but so is attribution.

The author wasn’t so much inspired the by Brogue style, but copied it directly down to the animations and ASCII.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton