New to Swift- Advice needed

Hey Eveyone,

I am Ash, and I have started to learn swift recently but I am confused on whether I should read whole language guide available on swift.org or should I buy some other book like head-first-swift and then use the language guide as a reference to learn the language. I’m already familiar with kotlin, python, intermediate c++ so this isn’t my first programming language.

And also how should I approach learning iOS development should I follow this develop-in-swift tutorial or app-dev-traning tutorial to learn it I am a bit confused please any advice would be appreciated please reply

Starting with the language guide (The Swift Programming Language) is a really good starting point, especially if you're already familiar with other programming languages.

Beyond the core of the language itself, there's lots of paths for learning targeted development using Swift, and the tutorial you mentioned is a great collection of resources for Apple platform (iOS and more) development. I think it really depends on how you learn best. There's WWDC videos, and quite recently WWDR expanded to offering "code alongs" - one was out on Youtube just last week referencing the tutorial set that you highlighted. I'd also highly recommend mixing in videos from WWDC, which provide a variety of levels (intro, using, deep dives) to various closed source frameworks that Apple provides. They're tremendous resources.

The community has also been assembling guides outside of the Apple platforms, for topics like web services or server side development, embedded development, etc - just depending on what you're after.

3 Likes

+1 I would add though, Swift evolution proposals are a valuable resource as well

2 Likes

Thanks Sir for taking your time to reply ,

As you said I will read The Swift Programming Language ( but it’s too lengthy ) guide and follow the resources you mentioned and I am basically after iOS development, at this point not sure about other things

Not quite clear what you meant, did you mean reading swift evolution proposals ?

Yes, for deeper understanding later on, for now though, just stick to what @Joseph_Heck mentioned. For iOS development specifically, I found the WWDC videos extremely helpful. In particular, the “Demystify” WWDC video series, which is a must for learning SwiftUI in my opinion.

1 Like

Hi Ash,

If your goal is to learn iOS development, I can strongly recommend “100 Days of SwiftUI” by Paul Hudson. It’s a great course, it’s free, and it also includes an introduction to Swift:

That introduction should be enough to get you started, given that you already have prior programming experience. I do recommend that you go through the language guide as well (at your own pace), just to get a bit more depth.

4 Likes

Got it Thanks :)

Hey really appreciate your help thanks a lot. But I have a question the series you mentioned are like 4 years old is it still relevant ?? ( because there usually are many api changes that take place )

Yes, I think Paul updates it quite regularly.

1 Like

Great resource thanks for sharing, I already completed day 1

I would advise learning UIKit instead of SwiftUI but sadly I don't think there are (good) up-to-date courses out there for it.

1 Like

Thanks for replying can you explain why??

Xcode has a "View Debugger", which lets you look at the view hierarchy and see what classes are the ViewControllers and Views that you are seeing (really useful when you are new to a codebase or the codebase is really large) and what are the active layout constraints. With SwiftUI, all that is out of the window, you have to search for texts that you see on screen or try to guess the View's name by context.

View lifecycles are also way more debuggable/self-explanatory by breakpoints with UIKit. Up until I think iOS 18, SwiftUI call-stacks just said __lldb_unnamed_symbol for anything that wasn't your code (and they aren't much useful now either).

SwiftUI is way easier to misuse, which can range from ViewModifiers not doing anything at certain places (Like you can add the .foregroundColor(.blue) to anything, while in UIKit, UILabel has a textColor variable, while UIStackView doesn't.), to the whole view hierarchy refreshing when anything changes (maybe even calling the onAppear callbacks again).

SwiftUI object lifetimes completely break what you see in the rest of Swift. Like when a parent View gets rerendered, your init gets called again (meaning your let constants can change), but the @States (and similar) are preserved. In some weird edge-cases states reset when you don't expect them to (don't have a specific example bookmarked for this).

Of course if you are looking to get employed then it's always good to check what the current job market needs when deciding what you want to focus on during learning.

2 Likes

Hey @MyUserName,

As @Cyberbeni mentioned, SwiftUI’s object lifetime model indeed differs significantly from the traditional behavior seen in the rest of Swift. However, considering the current direction of Apple’s ecosystem, SwiftUI offers greater strategic value for both learning and real-world development. Many of Apple’s latest high-level frameworks and capabilities—such as RealityKit’s RealityView, which is only available in SwiftUI, and the largely SwiftUI-exclusive APIs in visionOS—underscore SwiftUI’s increasingly central role.

SwiftUI also provides a higher level of abstraction, enabling more concise development while supporting seamless deployment across all Apple platforms—something UIKit cannot achieve natively on macOS. That said, if your app requires extensive use of lower-level APIs or very fine-grained control over the view lifecycle, UIKit remains a powerful and flexible choice, particularly when working closely with frameworks like Metal.

I hope this helps.

3 Likes

considering the current direction of Apple’s ecosystem

Right.

Regardless of the technical side of this — and I’m not a UI person so I’m not in a position to debate that — Apple has made the business side of it very clear.

Ash, If you haven’t already done so, I recommend that you watch WWDC 2022 Session 102 Platforms State of the Union, and specifically Josh’s section starting at 3:43.

Share and Enjoy

Quinn “The Eskimo!” @ DTS @ Apple

4 Likes

The whole guide is very long indeed. But there is this section “A Swift Tour” under “Welcome to Swift“. Did you read that? I don’t think it is too long.

That is what helped me getting started at least. At the time I only knew java and javascript. So given that you already know Kotlin and python, I think just reading that tour should give you enough information to get you started.

1 Like

Yep reading the tour gave me enough context to start actually but I am also reading ( or to be honest skimming over each topic in language guide daily just to be more comfortable with it )

1 Like

Thanks for replying,

Ans yes it absolutely helped :slight_smile:

thanks for replying got your point :)