HN user

sandoze

309 karma
Posts1
Comments73
View on HN

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.

> 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.

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.

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.

Keep in mind, you’re claiming to be an experienced mobile (iOS) dev. Your fallback when things don’t work (let’s say, auth) are your years of doing iOS. Fastlane is handy (I don’t use it anymore re: Xcode Cloud) but in the past it still fell victim to Apple Store changes and updates.

Worse is going to be the job listing, no native iOS developer is going to touch it. It’s possible a rn + ts developer might find it an interesting challenge and maybe even have some iOS experience. I guess it all comes down to what the job qualifications are in said listing. But is your startup going to know this when/if they need to do a backfill?

But here’s the caveat to what I said. If the rest of the team you’re working in is also using the same language and maybe has some familiarity in react native it’s probably not so bad and someone can step into your shoes if necessary. Also, if your implementation is fully transparent and this is what the startup paid for, then I’m going to say more power to you, you built them what they needed and you did it your way.

That startup is going to LOVE you when they need to backfill your position and every potential iOS developer hire runs in the other direction.

* This is coming from someone doing iOS since the store opened in 2008. I've pretty much seen ALL the bad decisions at some point. There are projects I will not take no matter what the pay is.

I can’t speak to OS development but industrial coding there’s a lot of experimenting and throw away. You generally don’t write a lot of code for the platform you’re building on (PLCs, automation components). It’s well tested and if it doesn’t hit industry standards (eg. timing, braking) you iterate or start over. At least that was my experience.

When it comes to general software development for customers in the everyday world (phones, computers, web). I often write once for proof, iterate as product requirements becomes clearer/refined, rewrite if necessary (code smell, initial pattern was inefficient for the final outcome).

On a large project, often I’ll touch something I wrote a year ago and realize I’ve evolved the pattern or learned something new in the language/system and I’ll do a little refactor while I’m in there. Even if it’s just code organization for readability.

My thought to who you replied to exactly. Am I going to invest several days to read an AI slop novel? No. But I will take several minutes to read a blog post and likely have read many that were AI generated or assisted.

Before AI there was a general consensus that creative areas (eg. Cities) were becoming a homogenized experience. A Starbuckization if you will. I can’t help but wonder what gets lost when using tools like this.

Different strokes for different folks. You don't need to please everyone, but it helps if you can move 15 million units with three developers. I don't play Candy Crush but yet somehow this little cash cow keeps getting updated and I'm not one of the 2.7 billion downloads!

There are additional links and details about LazyVStack highlighted in the content. I thought the top level article focused on Lists would be more helpful for you.

To be fair a LazyVStack handles cell reuse and unloading automatically which is why offscreen content that was previously viewed further back on the list will only maintain the root level state (children in the view hierarchy may and will lose state in order to save memory and energy). How that data is loaded and how you key off Identifiable is also important.

Apple’s own documentation discusses this in detail and for large data sets recommends the Lazy approach. If you’re using List you’re in for some issues.

I primarily do iOS and iPadOS, but it’s far easier to bridge the gap between all the platforms than the experience I had in the past with UIKit/AppKit. My last MacOS app sadly does not do infinite scrolling.

Off the top of my head, I’d consider the approach. Is it a ScrollView? A LazyVStack? What do your view redraws look like?

Anyone working with Swift Strings back in Swift 1+2 was in for some shockingly bad performance. We adopt, we adapt, and the framework matures.

So many things wrong with this. Reminds me of the Objective-c vs Swift arguments from back in the day. The author mentions the initial release, as someone who held out migrating production apps to Swift until v3 I think we all know early adoption is going to be bumpy.

But as of iOS 15+ SwiftUI is very production ready. I’ve migrated two production applications from UIKit to SwiftUI. These have active users and are available on the App Store.

Bloated? The last migration resulted in 79k new lines of code written and 181k deletions after rewriting 80% of the application.

Photos album works out of the box. If you mean camera then there are some issues depending on your use case. Beauty of SwiftUI is we can wrap UIKit views and interop allowing it to play nicely with other frameworks.

If you’re supporting applications that target the last few iOS versions it’s time to learn the new paradigm. Do yourself a favor but most of all anyone who might inherit your codebase.

I know all cars can’t be perfect but as a 2010 Prius owner (I probably shouldn’t complain given it’s 15 years old) it has had several well documented issues that never prompted a recall.

I was hit with a bad oil gasket that causes the engine to burn oil. It’s so much work to replace their solution is to replace the entire engine. My solution is to keep putting oil in it. I was told by the dealer this is common over 70k miles.

The steering controls (heat, volume, cruise) stopped working pretty early on. It was well over $1k to fix, mostly labor. Apparently the connection they use is prone to failure.

Leaves me wondering if my next car will be a Toyota. Maybe if they adopted Apple CarPlay.

That being said, batteries are still good and I’ve been pretty impressed how low the maintenance has been.

Sadly this rings true. Of all the apps and games we've ported to Android the cost has never been worth it. The games were pirated more than purchased and across both apps and games our support tickets went way up.

I program for a career and I’m not going to argue that iPad is going to be my go to device, until there’s a ‘killer’ app. But that’s my day job. When I want to play around with a hobby (writing, music, game dev using Godot???) I turn to an iPad because it’s NOT a computer. Maybe in the same way a lot of music hobbyists buy gear to make music even though using a computer DAW is far easier - we want to ‘unplug’.

I experienced this chronically. It was so pervasive that I would convince myself the next day that I was exhausted with only six hours of sleep. I started tracking my sleep with an Apple Watch and soon realized that, I may wake up, it’s usually for minutes and not nearly as often as I thought!

Broken or broken in your use case? I recently left corporate development for the start up life. As I recall we had to disable our VPN for the majority of development use cases, from package management (gradle), robotics comms, all the way down to running third party unsigned software (I received a stern email from security for downloading Apple’s OpenAPI package).

Our security chain was so deeply embedded in every part of the OS that I was constantly trying to figure out where the failures and slow downs were coming from.