Our Testimonials
Students Reviews and Feedback
Students Reviews and Feedback
See how this course helped 100s of people in elevating their carrier moves
See how this course helped 100s of people in elevating their carrier moves


Jonas M. (Germany)
this course is crazy good not even joking... i’ve bought like 6 diff SwiftUI ones and i ever finished any this one?? i’m on module 5 already and actually enjoying it wish there were 1-2 bonus sections on async image loading or something... but that's just a small thing rest is


Jonas M. (Germany)
this course is crazy good not even joking... i’ve bought like 6 diff SwiftUI ones and i ever finished any this one?? i’m on module 5 already and actually enjoying it wish there were 1-2 bonus sections on async image loading or something... but that's just a small thing rest is


Amit K. (India – 2 yrs experience)
good course... i like it


Amit K. (India – 2 yrs experience)
good course... i like it


Julien D. (France – 7 yrs experience)
you... literally changed how i write views with ViewBuilder extensions... that whole part on composing modifiers and returning some View i use it daily now. can’t thank you enough


Julien D. (France – 7 yrs experience)
you... literally changed how i write views with ViewBuilder extensions... that whole part on composing modifiers and returning some View i use it daily now. can’t thank you enough


Daniel H. (Germany – 3 yrs experience)
some parts went too fast but overall i liked it


Daniel H. (Germany – 3 yrs experience)
some parts went too fast but overall i liked it


Alina T. (USA)
Honestly... i never thought a course could give me so much confidence. I always felt like i was just guessing my way in iOS dev. But now things finally click... Shubham explains things in such a simple way that even topics like Combine or async await just make sense. Debugging doesn’t scare me anymore lol.


Alina T. (USA)
Honestly... i never thought a course could give me so much confidence. I always felt like i was just guessing my way in iOS dev. But now things finally click... Shubham explains things in such a simple way that even topics like Combine or async await just make sense. Debugging doesn’t scare me anymore lol.


Rohit S. (India – 3 yrs experience)
didn't even know about .transaction {} until you showed that smooth toggle effect with animation(.spring()) — learned a lot from that subtle detail


Rohit S. (India – 3 yrs experience)
didn't even know about .transaction {} until you showed that smooth toggle effect with animation(.spring()) — learned a lot from that subtle detail


David B. (UK – 5 yrs experience)
i didn’t know we can use internal(set) like that... it was such a subtle thing but makes total sense now. your course feels like a senior sitting next to me, pointing out real world gotchas...


David B. (UK – 5 yrs experience)
i didn’t know we can use internal(set) like that... it was such a subtle thing but makes total sense now. your course feels like a senior sitting next to me, pointing out real world gotchas...


Simran Kaur (Canada)
I used to follow tutorials and feel productive... but after a few weeks i would forget everything. This course changed that. Now i actually plan my app structure... i understand what i am writing... and why. Also... the mindset shift this gave me... that’s the real value tbh. It’s not just a c


Simran Kaur (Canada)
I used to follow tutorials and feel productive... but after a few weeks i would forget everything. This course changed that. Now i actually plan my app structure... i understand what i am writing... and why. Also... the mindset shift this gave me... that’s the real value tbh. It’s not just a c


Sagar M. (India – 2.5 yrs experience)
man the way you explained public(set) made things click... i always wondered why i couldn’t assign a value from other file... i just used to accept it... but now i know why


Sagar M. (India – 2.5 yrs experience)
man the way you explained public(set) made things click... i always wondered why i couldn’t assign a value from other file... i just used to accept it... but now i know why


Pieter V. (Netherlands – 4 yrs experience)
been writing swift for years but never paid attention to @available(*, deprecated: ...) or how to create your own warnings... your tooling and debugging section is gold


Pieter V. (Netherlands – 4 yrs experience)
been writing swift for years but never paid attention to @available(*, deprecated: ...) or how to create your own warnings... your tooling and debugging section is gold


Jake T. (Australia – 7 yrs experience)
well worth it


Jake T. (Australia – 7 yrs experience)
well worth it


Ankit R. (India – 1.8 yrs experience)
used to get confused between @MainActor and DispatchQueue.main.async… but you made it crystal clear with that async/await animation example.


Ankit R. (India – 1.8 yrs experience)
used to get confused between @MainActor and DispatchQueue.main.async… but you made it crystal clear with that async/await animation example.


Neha D. (India)
so i’m a designer-turned-dev (trying to be lol) and trust me... most courses just fly past the actual UI stuff but THIS... this felt made for someone like me the SwiftUI transitions were i do wish there was more material on micro interactions though... just love that stuff thank u for making this... super helpful


Neha D. (India)
so i’m a designer-turned-dev (trying to be lol) and trust me... most courses just fly past the actual UI stuff but THIS... this felt made for someone like me the SwiftUI transitions were i do wish there was more material on micro interactions though... just love that stuff thank u for making this... super helpful


Chris W. (USA – 5 yrs experience)
very nice content... explained well


Chris W. (USA – 5 yrs experience)
very nice content... explained well


James R. (UK – 3.5 yrs experience)
i liked the part where you used withAnimation inside onChange — so smooth and real-world... never seen anyone teach SwiftUI like that. really appreciate the effort man


James R. (UK – 3.5 yrs experience)
i liked the part where you used withAnimation inside onChange — so smooth and real-world... never seen anyone teach SwiftUI like that. really appreciate the effort man


Ravi Kulkarni (India)
Tbh... i thought i knew Swift already... but after joining this course i realised i was just good at watching tutorials The way Shubham explains stuff... it feels like he knows exactly where we get stuck. I have already rebuilt two of my old apps... and this time the code actually feels like mine... not some copy pasted mess.


Ravi Kulkarni (India)
Tbh... i thought i knew Swift already... but after joining this course i realised i was just good at watching tutorials The way Shubham explains stuff... it feels like he knows exactly where we get stuck. I have already rebuilt two of my old apps... and this time the code actually feels like mine... not some copy pasted mess.


Louis M. (France – 5 yrs experience)
cool stuff... voice was lil fast but ok


Louis M. (France – 5 yrs experience)
cool stuff... voice was lil fast but ok


Emily N. (USA – 4.5 yrs experience)
i finally get how combineLatest works… been confused between merge and zip too… the marble diagrams you drew in that part made all the difference. thank you shubham


Emily N. (USA – 4.5 yrs experience)
i finally get how combineLatest works… been confused between merge and zip too… the marble diagrams you drew in that part made all the difference. thank you shubham


Tobias L. (Germany – 6 yrs experience)
i’m still processing how powerful TaskGroup is i had never thought of breaking async work like that. your examples hit the spot


Tobias L. (Germany – 6 yrs experience)
i’m still processing how powerful TaskGroup is i had never thought of breaking async work like that. your examples hit the spot


Olivia M. (Canada – 3 yrs experience)
your explanation on .background(GeometryReader { proxy in }) to get dynamic sizes inside views... genius. i used it in 2 client projects already


Olivia M. (Canada – 3 yrs experience)
your explanation on .background(GeometryReader { proxy in }) to get dynamic sizes inside views... genius. i used it in 2 client projects already


Ramesh J. (India – 2 yrs experience)
that @AppStorage thing blew my mind lol... was using UserDefaults the hard way before this... super neat trick for small settings


Ramesh J. (India – 2 yrs experience)
that @AppStorage thing blew my mind lol... was using UserDefaults the hard way before this... super neat trick for small settings


Kunal D. (India – 1.5 yrs experience)
nice... but plz add dark mode project


Kunal D. (India – 1.5 yrs experience)
nice... but plz add dark mode project


Tanya K. (Canada – 6 yrs experience)
bro that PreferenceKey example to pass data up the view hierarchy... i paused and rewatched it like 3 times, it was too good nobody ever explained it that clearly


Tanya K. (Canada – 6 yrs experience)
bro that PreferenceKey example to pass data up the view hierarchy... i paused and rewatched it like 3 times, it was too good nobody ever explained it that clearly


Dev Mehra (India)
I have been freelancing for a few years... but damn... this course showed me how much i was missing. I mean i could build apps... but i didn’t really understand SwiftUI that deeply until now. Now i am even helping juniors in my team... never thought i would be that guy


Dev Mehra (India)
I have been freelancing for a few years... but damn... this course showed me how much i was missing. I mean i could build apps... but i didn’t really understand SwiftUI that deeply until now. Now i am even helping juniors in my team... never thought i would be that guy


Anuj T. (India – 3 yrs experience)
thank you for showing how AnyPublisher<Void, Never> is useful to trigger UI state... i’ve been avoiding combine just because i didn’t get these small practical patterns


Michael F. (USA – 4 yrs experience)
the debounce vs throttle part in Combine section was ... i was literally misusing it in a search bar. you saved my app’s CPU


Liam C. (Australia – 3.5 yrs experience)
you literally showed how @inlinable affects ABI and compile-time... like who even teaches this i saved that module for future ref


Brian R. (USA)
honestly i didn’t expect it to be this good like... i thought okay maybe it’ll help me fix my basics but bro... this actually gave me the confidence to rebuild my old app properly from scratch only thing... man i wanted more animation breakdowns... i enjoyed them so much plz add more if you can... i’ll watch every single one lol


Lucas P. (Canada – 4 yrs experience)
good one. just wish there were more projects


Kevin D. (USA – 4 yrs experience)
honestly i never knew about @StateObject vs @ObservedObject difference that deep... the lifecycle issue example was ... this is the first time i truly understood memory mgmt in SwiftUI. thanks shubham


Wei Lin (Singapore – 3 yrs experience)
very helpful. good for revision too


Mehul G. (India – 2 yrs experience)
i thought private(set) was useless... but now i use it a lot after you gave that example about protecting mutation from outside... simple but elegant


Tanya K. (Canada)
so... i’m a bit slow with code i always feel like i’m behind others but the way this course explained things... felt like finally someone gets how we struggle and can we talk about the animations?? i was like damn... i wanna make more of those plz plz add more of them later if possible!! i enjoyed that part the most


Vikram P. (India – 2 yrs experience)
thank you for this helped me alot


Johan E. (Sweden – 6.5 yrs experience)
the structured concurrency part with async let and your server call simulation made me rewrite 2 networking layers in my own app. loved the clarity.


Lars J. (Netherlands – 2.2 yrs experience)
i never cared about ScenePhase until your course. the moment you showed how to pause timers and sync on resume... i was like damn i need to clean my app now


Karthik B. (India – 3 yrs experience)
you made me use SPM for real this time earlier i just copied packages but now i’m publishing one! the structure + xcodeproj trick you showed saved me days