2

Good resources to learn iOS app development?

Profile picture
Senior Software Engineer at LinkedIn2 years ago

This isn’t really a career question but does anyone have a good recommendation for resources to learn ios app development for a complete noob? I have a lot of experience building backend distributed systems, but other than building one android app back in college 6-7 years ago as part of the coursework, I haven’t really done any mobile app development ever.

194
2

Discussion

(2 comments)
  • 5
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    Some updates on this:

    • Apple App Store review is much faster now - I have many updates approved within 24 hours and some as fast as 1 hour. Apple is actually better than Google now sometimes when it comes to app reviews.
    • SwiftUI has grown a lot - There are a lot more resources online, and Apple is slowing filling in the gaps on missing components. A lot of them are iOS 16+, so once iOS 18 comes out, it should be safe to migrate to these new APIs. I'm now pretty comfortable recommending SwiftUI as the first choice over UIKIt.
    • Xcode still sucks - Not really an update, but just in case you were wondering 😉
  • 2
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    2 years ago

    I've been on the struggle bus for the past 8 months learning iOS for Taro, so I'm happy to chime in here!

    First, I recommend this discussion: "How can I get really good at Android?"

    Even though it's the other mobile platform, a good amount of the ideas mostly apply, mainly the one around biasing towards shipping and not spending too much time guzzling tutorials. The tricky part is that publishing on iOS is $99/year as opposed to $25 one-time, so it's not a completely trivial cost.

    In terms of resources, the only beginner tutorial I followed was the official Apple one for SwiftUI: Introducing SwiftUI

    Here are my thoughts/key points there:

    • You will build a classic CRUD app named "Landmarks" showing a list of content there, and it's pretty good at going through the core SwiftUI concepts.
    • You can ignore all of Part 4. Interfacing with UIKit (which is the more "legacy" system) is something that can be learned when you need to. The other things around making a watch and macOS app don't really make sense unless that's what you're doing.
    • After doing the tutorial, I just started building stuff and Googling things as I needed them.

    On a related note, here are my thoughts around SwiftUI:

    • It makes sense if you're just playing around and making relatively small side projects. SwiftUI is very concise and easy to understand, and some of the APIs are simply beautiful. Rendering a list of items in SwiftUI takes around 10 lines of code - In standard Android infra, it easily takes 50-75.
    • If you want to make a large, long-term side project, you might want to stick with UIKit. Even though SwiftUI is ~3 years old, it is missing an astonishing amount of APIs. Core components like video/media are severely lacking, and Googling for the right answer can be hard.
    • Apple has an annoying habit of trying to kill its current way of doing things every 3-5 years, unlike Android which is more consistent. If you're Googling for an issue, make sure to add "in SwiftUI" to your query.

    In terms of resources that have been helpful on top of that tutorial, I've generally found the following to be helpful when I click into them from a Google search:

    Some things to keep in mind as an iOS developer:

    • Xcode is one of the worst IDEs on the market IMHO, regularly clocking in at 3 stars out of 5 on the App Store. It is huge, slow, and hungry.
    • Apple effectively forces you to be on the latest version of Xcode, otherwise it fails to handshake with the App Store and submit your binary for review. If you don't have a pretty new Mac, upgrading can be hard (I had to get a new Mac because of this).
    • The review process is painful and arbitrary. Approvals are generally 1.5 days, and you can get rejected for random reasons.

    If you end up going down this path, happy to follow along and share tactics if you keep us posted! Feel free to ask how certain stuff in the Taro iOS app works!