Good resources to learn iOS app development?

Profile picture
Senior Software Engineer at LinkedIn8 months 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.

1 Like
81 Views
1 Comment
👑

Discussion

(1 comment)
  • Alex Chiou
    Robinhood, Meta, Course Hero, PayPal
    8 months 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 on getting really good at Android. Some 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. 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 thought SwiftUI is ~3 years ago, 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!

    1 Like