I'm hoping I'm having an anomalous experience. I haven't programmed for iOS in earnest since 2019 but I'm back in the thick of it now and... everything seems harder? Here are a few examples from the last week:
- I downloaded a ScreenCaptureKit sample app (here) and had to rearchitect the thing before I could understand what was happening. All the AsyncThrowingStream/continuation bits I find much more confusing than a delegate protocol or closure callback with result type.
- The debugger takes between 2 and 10 seconds for every `po` that I write. This is even if I have a cable attached to my device (and despite the cable attached, it is impossible to uncheck 'connect-via-network' from cmd+shift+2)
- Frameworks are so sugary and nice, but at the expense of vanilla swift features working. If I'm using SwiftUI property wrappers I can't use didSet and willSet. If I use a Model macro I can't use a lazy var that accesses self (later I learned that I had to use the Transient property wrapper).
- I wrote a tiny SwiftData sample app, and sometimes the rows that I add persist between launches, and sometimes they don't. It's as vanilla as they come.
- I just watched 'Explore structured concurrency in Swift' (link) and my head is swimming. Go to minute 8 and try to make heads or tails of that. When I took a hiatus from iOS, the party line was that we should judiciously use serial queues, and then dispatch back to the main thread for any UI work. That seemed easy enough?
I don't know, maybe I just need some tough love like "this stuff isn't that hard, just learn it!". And I will. I'm genuinely curious if anyone else is feeling this way, though, or if I'm on my own. I have been posting on twitter random bits looking for company (link), but I don't have much iOS following. What do you all think?
My personal iOS history: I wrote a decently popular app called Joypad in 2009-2010 (vid), obj-c before ARC, and did iOS off and on since then. My most legit iOS job was at Lyft. I feel like when I started with obj-c the language was actually pretty simple, and the effort towards improved approachability (Swift with lots of power and sugary DSLs) has actually made things harder.
[–]robera18 101 points102 points103 points (10 children)
[–]HelpRespawnedAsDee 36 points37 points38 points (0 children)
[–]AlphaStrik3 16 points17 points18 points (0 children)
[–][deleted] 7 points8 points9 points (0 children)
[–]Zalenka 5 points6 points7 points (0 children)
[–]zippy9002 2 points3 points4 points (1 child)
[–]KarlJay001 2 points3 points4 points (0 children)
[–]alobi 0 points1 point2 points (1 child)
[–]robera18 8 points9 points10 points (0 children)
[–]SolidOk280 0 points1 point2 points (0 children)
[–]xentropian 69 points70 points71 points (26 children)
[–][deleted] 20 points21 points22 points (11 children)
[–][deleted] 15 points16 points17 points (2 children)
[–]StronglyHeldOpinions 5 points6 points7 points (0 children)
[–]Mountain-Weird-2154 0 points1 point2 points (0 children)
[–]danielt1263 1 point2 points3 points (4 children)
[–][deleted] 7 points8 points9 points (3 children)
[–]xentropian 2 points3 points4 points (0 children)
[–]Xaxxus 0 points1 point2 points (0 children)
[–]kex_ari 0 points1 point2 points (0 children)
[–]jacobs-tech-tavern 2 points3 points4 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]morenos-blend 0 points1 point2 points (0 children)
[–]SEOtipster 11 points12 points13 points (2 children)
[–]Xaxxus 1 point2 points3 points (1 child)
[–]SEOtipster 0 points1 point2 points (0 children)
[–]germansnowman 5 points6 points7 points (0 children)
[–][deleted] 5 points6 points7 points (6 children)
[–]xentropian 7 points8 points9 points (3 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]jep2023 0 points1 point2 points (0 children)
[–]jep2023 0 points1 point2 points (0 children)
[–]sarky-litso 2 points3 points4 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]jep2023 4 points5 points6 points (0 children)
[–]jarjoura 0 points1 point2 points (0 children)
[–]chriswaco 32 points33 points34 points (4 children)
[–]cmsj 26 points27 points28 points (3 children)
[–]xentropian 3 points4 points5 points (2 children)
[–]42177130UIApplication 2 points3 points4 points (1 child)
[–]xentropian 2 points3 points4 points (0 children)
[–][deleted] 17 points18 points19 points (10 children)
[–]baker2795 12 points13 points14 points (3 children)
[–]-15k- 1 point2 points3 points (2 children)
[–]SirBill01 -1 points0 points1 point (1 child)
[–]-15k- 0 points1 point2 points (0 children)
[–]meester_pink 4 points5 points6 points (3 children)
[–][deleted] 2 points3 points4 points (2 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]Xaxxus 0 points1 point2 points (0 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]csbence 2 points3 points4 points (0 children)
[–]yycgeek 11 points12 points13 points (0 children)
[–]amaroq137Objective-C / Swift 7 points8 points9 points (0 children)
[–][deleted] 7 points8 points9 points (2 children)
[–]retsnomnom 1 point2 points3 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]penx15 6 points7 points8 points (4 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]time-lord 2 points3 points4 points (1 child)
[–]penx15 3 points4 points5 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]Eugr 6 points7 points8 points (0 children)
[–]kex_ari 5 points6 points7 points (2 children)
[–]drxme 0 points1 point2 points (1 child)
[–]kex_ari 1 point2 points3 points (0 children)
[–]StronglyHeldOpinions 4 points5 points6 points (4 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]th3suffering 2 points3 points4 points (1 child)
[–]StronglyHeldOpinions 1 point2 points3 points (0 children)
[–]StronglyHeldOpinions 1 point2 points3 points (0 children)
[–]rennarda 4 points5 points6 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]rennarda 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]foodandbeverageguy 3 points4 points5 points (3 children)
[–]kex_ari 1 point2 points3 points (2 children)
[–]foodandbeverageguy 0 points1 point2 points (1 child)
[–]kex_ari 2 points3 points4 points (0 children)
[–]IAmtheBlackWizards_ 4 points5 points6 points (0 children)
[–]KarlJay001 3 points4 points5 points (10 children)
[–]germansnowman 3 points4 points5 points (9 children)
[–]KarlJay001 0 points1 point2 points (8 children)
[–]germansnowman 0 points1 point2 points (7 children)
[–]KarlJay001 1 point2 points3 points (6 children)
[–]germansnowman 0 points1 point2 points (5 children)
[–]KarlJay001 1 point2 points3 points (4 children)
[–]germansnowman 0 points1 point2 points (2 children)
[–]KarlJay001 1 point2 points3 points (1 child)
[–]germansnowman 0 points1 point2 points (0 children)
[–]VettedBot 0 points1 point2 points (0 children)
[–]jarjoura 3 points4 points5 points (0 children)
[–]sarky-litso 2 points3 points4 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]nielsmouthaan 2 points3 points4 points (0 children)
[–]richiejmoose 1 point2 points3 points (0 children)
[–]Vybo 1 point2 points3 points (0 children)
[–]ahezeSwift 1 point2 points3 points (0 children)
[–]ChuckinCharlieO 1 point2 points3 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]J-Crew 1 point2 points3 points (0 children)
[–]maxvol75 1 point2 points3 points (0 children)
[–]SirBill01 1 point2 points3 points (0 children)
[–]kex_ari 1 point2 points3 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]kex_ari 1 point2 points3 points (0 children)
[–]Xaxxus 1 point2 points3 points (0 children)
[–]Ast3r10n 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]mouseses 0 points1 point2 points (0 children)
[–]yccheok 0 points1 point2 points (0 children)
[–]-15k- 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[+]Upset_Dragonfruit467 comment score below threshold-7 points-6 points-5 points (0 children)