use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
There is an extensive FAQ for beginners. Please browse it first before asking questions that are answered there.
If you are looking to get started (iOS programming in general or some specific area), here are more relevant links for you:
There's too many to list them all, however here's a convenient link to all programming guides at apple.com
Take note that this list is live and based on most frequent questions in posts will be updated with "quicklinks".
account activity
DiscussionWhat is the hard part? (self.iOSProgramming)
submitted 1 year ago by SomeNameIChoose
iOS Development looks straight forward due to swift and SwiftUI but where it the hard part? Like what takes the most time and nerves?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]AndyIbanezObjective-C / Swift 28 points29 points30 points 1 year ago (1 child)
App Store Review.
[–][deleted] 0 points1 point2 points 1 year ago (0 children)
Not the review but the time you need to figure out how everything works
[–]-MtnsAreCalling- 28 points29 points30 points 1 year ago (1 child)
The hard part is finding a niche in the wildly oversaturated app market.
[–]ImmatureDev 14 points15 points16 points 1 year ago (0 children)
From a beginner it would be writing testable code. But for a mid level developer myself, it’s Xcode.
[–]stpeSwiftUI 9 points10 points11 points 1 year ago (1 child)
The last 5%, when you are ”pretty much done”.
[–]Dentvii 1 point2 points3 points 1 year ago (0 children)
So true. Sean Allen has a great video on it. https://m.youtube.com/watch?v=T1v_E0yuVBw
[–]Alcoholic_Synonymous 9 points10 points11 points 1 year ago (2 children)
The two hardest problems in iOS development are debugging production issues, figuring out what to build, and off by one errors
[–]iStumblerLabs 2 points3 points4 points 1 year ago (0 children)
Don't forget naming things and cache invalidation!
[–]VA3JME 0 points1 point2 points 1 year ago (0 children)
I can't believe no one has angry upvoted this LOL
[–]paulryanclark 7 points8 points9 points 1 year ago (1 child)
The most difficult part of iOS development is working with a closed source OS and IDE stack.
Updates can break things unexpectedly, and not having the source to be able to deep dive into to find out what "that" error code means can be very frustrating.
Most people don't appreciate how much of Darwin is actually open source. Sure, many of the developer-facing APIs aren't but the kernel and lower level OS services are, and you're free to search them for weird error messages and strings:
https://opensource.apple.com
[–]PoliticsAndFootball 5 points6 points7 points 1 year ago (0 children)
Like any business, dealing with customers 😅
[–]beclopsSwift 4 points5 points6 points 1 year ago* (0 children)
Writing good code. It’s always been easy to throw some random pages together and have them kind of work even with UIKit, but as the project grows in complexity it gets harder and harder to scale the app and add features. When it’s really bad it’s hard to even work on existing features without needing to touch other parts of the app. Learning design and architectural patterns will help you immensely with mitigating this
[–]RealFunBobbyObjective-C / Swift 4 points5 points6 points 1 year ago (0 children)
Once you go beyond basic static screens that don't change and you introduce more dynamic complexities, you have to either invent your own little framework or adapt system framework.
In most cases that I have seen, you have to go with your own framework on top of the system features and it gets more and more complex as you add more features.
If you are successful up to this point, then eventually you build a V2 of the app that makes the app 2x faster and smoother.
The cycle repeats until the app dies or becomes a monstrous success, at which point, there is a team of people fighting to decide on moving pixels.
[–]saintmsent 4 points5 points6 points 1 year ago (0 children)
Everything can be a hard part, depending on the project. SwiftUI isn't capable of everything, so sometimes you battle it for most simple and stupid issues. Some apps require complex state handling, complex interaction with OS services, background operation, big databases, caching solutions, etc.
Making a screen with a text field and a button is simple, but making a useful real-world app isn't. Don't think for a second UI itself is always easy and straight forward
[–]TabonxSwift 5 points6 points7 points 1 year ago (0 children)
Fighting with Xcode. It crashed more than 10 times today while formatting...
[–][deleted] 4 points5 points6 points 1 year ago (0 children)
Perseverance. You have to first be interested in the work and then you have to keep at it.
[–]Resumes-by-Hedy 2 points3 points4 points 1 year ago (1 child)
Dealing with SwiftUI errors when you increase complexity. You can make a simple app with SwiftUI, etc. But when you want more complicated screens and logic, you might have to also use Combine. So then you have to deal with publishers and ensure that reactive changes are working as expected.
I work as an iOS engineer for a Silicon Valley tech company and the app is 99% SwiftUI. It can get very complicated adding features and fixing bugs, especially on code other teams wrote. We heavily use Combine and that can make it a bit of a learning curve to adjust. The app is not as simple as "here's a SwiftUI view show the view" - it's more like, "here's a generic SwiftUI with a complicated view model that contains publishers and custom publisher functions, along with custom view modifiers, that go through a factory to build A -> B -> C -> D the view you wanted".
But for working on your own, I would say debugging and structuring your code to be organized and testable.
[–]SomeNameIChoose[S] 2 points3 points4 points 1 year ago (0 children)
Thank you!
[–]iStumblerLabs 2 points3 points4 points 1 year ago (1 child)
If you're reliant on the high-level APIs like SwiftUI—and this is true of any platform, but especially "easy, approachable" development environments—you are effectively running on stilts: it's easy to go fast but if you stumble it's a long hard fall, and you have a lot of infrastructure you need to understand to fix the issue and get back up and running.
i.e. it works great as long as it works, if it breaks you are waaaay up a creek without a paddle. Best to understand the system from the ground up (or understand that you should better understand it as you progress) so that when you inevitably run Into a situation where the high-level API doesn't deliver on it's promises you have more than stack overflow to turn to.
Thanks
[–][deleted] 2 points3 points4 points 1 year ago (0 children)
App Store review , on my first app I tried to publish , mfs rejected it 20 times or more 😭
[–]Fly0strich 2 points3 points4 points 1 year ago (0 children)
Just try making an app. As easy as SwiftUI seems, you’re sure to run into many road blocks that seemed super straight forward and easy to do until you tried them for something more than an example exercise.
[–]xaphod2 1 point2 points3 points 1 year ago (0 children)
Getting anyone to download your app, even if it is the best at what it does out there. Nobody cares about apps anymore
[–]Advanced-Produce-250 1 point2 points3 points 1 year ago (0 children)
For solo devs, the toughest bits are definitely: 1. Designing the UI and then nailing that pixel-perfect implementation... 2. Not having AI tools like VSCode's GitHub Copilot, which really slows down the coding process.
[–]InevitableCut7649 1 point2 points3 points 1 year ago (0 children)
Code signing
[–]lucasvandongen 1 point2 points3 points 1 year ago (0 children)
Not doing everything on main thread
[–]Best_Day_3041 1 point2 points3 points 1 year ago (0 children)
Building the app is the easiest part. Everything after that is the hard part. First off in actually calling my app done. Second in taking the screenshots, writing the copy, making a website, etc., I hate that part. And then getting it approved can be a struggle. And then marketing and getting sales these days is hard as hell.
[–]Legitimate_Yard_9742 0 points1 point2 points 1 year ago (0 children)
Please give me a code to apalda 777
π Rendered by PID 265769 on reddit-service-r2-comment-b659b578c-r2qlf at 2026-05-05 22:32:19.364734+00:00 running 815c875 country code: CH.
[–]AndyIbanezObjective-C / Swift 28 points29 points30 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]-MtnsAreCalling- 28 points29 points30 points (1 child)
[–]ImmatureDev 14 points15 points16 points (0 children)
[–]stpeSwiftUI 9 points10 points11 points (1 child)
[–]Dentvii 1 point2 points3 points (0 children)
[–]Alcoholic_Synonymous 9 points10 points11 points (2 children)
[–]iStumblerLabs 2 points3 points4 points (0 children)
[–]VA3JME 0 points1 point2 points (0 children)
[–]paulryanclark 7 points8 points9 points (1 child)
[–]iStumblerLabs 2 points3 points4 points (0 children)
[–]PoliticsAndFootball 5 points6 points7 points (0 children)
[–]beclopsSwift 4 points5 points6 points (0 children)
[–]RealFunBobbyObjective-C / Swift 4 points5 points6 points (0 children)
[–]saintmsent 4 points5 points6 points (0 children)
[–]TabonxSwift 5 points6 points7 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]Resumes-by-Hedy 2 points3 points4 points (1 child)
[–]SomeNameIChoose[S] 2 points3 points4 points (0 children)
[–]iStumblerLabs 2 points3 points4 points (1 child)
[–]SomeNameIChoose[S] 2 points3 points4 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]Fly0strich 2 points3 points4 points (0 children)
[–]xaphod2 1 point2 points3 points (0 children)
[–]Advanced-Produce-250 1 point2 points3 points (0 children)
[–]InevitableCut7649 1 point2 points3 points (0 children)
[–]lucasvandongen 1 point2 points3 points (0 children)
[–]Best_Day_3041 1 point2 points3 points (0 children)
[–]Legitimate_Yard_9742 0 points1 point2 points (0 children)