Swiftful Thinking
Swiftful Thinking
  • 330
  • 6 038 181
SwiftUI Advanced Architecture
🚀 USE CODE "LAUNCH" FOR $200 OFF. OFFER ENDS 01/05/2025.
🚀 www.swiftful-thinking.com/offers/REyNLwwH
🤙 WELCOME BACK 🤙
WEBSITE: www.swiftful-thinking.com
DISCORD: discord.gg/tSzJGx9RwE
GITHUB: github.com/SwiftfulThinking/
SAY THANKS: www.buymeacoffee.com/nicksarno
🤙 #KEEPGOING 🤙
Переглядів: 3 680

Відео

The Ultimate SwiftUI Course
Переглядів 4,6 тис.14 днів тому
🚀 USE CODE "LAUNCH" FOR $200 OFF. OFFER ENDS 01/05/2025. 🚀 www.swiftful-thinking.com/offers/REyNLwwH 🤙 WELCOME BACK 🤙 WEBSITE: www.swiftful-thinking.com DISCORD: discord.gg/tSzJGx9RwE GITHUB: github.com/SwiftfulThinking/ SAY THANKS: www.buymeacoffee.com/nicksarno 🤙 #KEEPGOING 🤙
SwiftUI for Advanced Developers
Переглядів 6 тис.21 день тому
🚀 USE CODE "LAUNCH" FOR $200 OFF. OFFER ENDS 01/05/2025. 🚀 www.swiftful-thinking.com/offers/REyNLwwH - - - - - - - - - - - - Sorry for the poor video editing in this one! This course was incredibly difficult to create and I recorded these videos last… as I was running out of time and energy 😭😭😭 I promise the actual course is polished and uses a better microphone. - - - - - - - - - - - - 🤙 WELCO...
Achieve SwiftUI Mastery
Переглядів 6 тис.21 день тому
🚀 USE CODE "LAUNCH" FOR $200 OFF. OFFER ENDS 01/05/2025. 🚀 www.swiftful-thinking.com/offers/REyNLwwH 🤙 WELCOME BACK 🤙 WEBSITE: www.swiftful-thinking.com DISCORD: discord.gg/tSzJGx9RwE GITHUB: github.com/SwiftfulThinking/ SAY THANKS: www.buymeacoffee.com/nicksarno 🤙 #KEEPGOING 🤙
Become a Git Master FREE Online Series Conclusion | Git & Source Control #15
Переглядів 1,4 тис.7 місяців тому
Conclude your journey to becoming a Git master with our final installment of the free online series. This video wraps up key learnings, solidifies your understanding of advanced Git concepts, and ensures you're equipped with the skills to apply Git effectively in any project. Join us to reflect on your progress, celebrate your achievements, and look ahead to applying your new skills in the worl...
How to use Git Flow and Become a Git Professional | Git & Source Control #14
Переглядів 2,2 тис.7 місяців тому
Advance your Git expertise with our comprehensive guide on utilizing Git Flow, a workflow that enhances team collaboration and project management. This tutorial is designed for developers aiming to professionalize their use of Git, offering insights into the Git Flow strategy for feature development, releases, and maintenance. Elevate your version control practices and become a Git professional...
Adding Tags, Versioning, and Releases in Github | Git & Source Control #13
Переглядів 7 тис.7 місяців тому
Discover how to manage your project's lifecycle with our tutorial on adding tags, implementing versioning, and creating releases in GitHub. Ideal for developers looking to maintain a well-organized codebase, this video demonstrates the importance of tagging for version control, setting up systematic versioning, and announcing releases. Enhance your GitHub repository with these practices to trac...
Create GitIgnore and ReadMe in Github | Git & Source Control #12
Переглядів 1,2 тис.7 місяців тому
Dive into this video where we learn how to create a .gitignore file and a .readme file in Github. Learn the how-to to create professional looking repositories. 🤙 WELCOME BACK 🤙 GITKRAKEN: www.gitkraken.com/invite/vQvbHFUq WEBSITE: www.swiftful-thinking.com DISCORD: discord.gg/tSzJGx9RwE GITHUB: github.com/SwiftfulThinking/ SAY THANKS: www.buymeacoffee.com/nicksarno 🤙 #KEEPGOING 🤙 00:51 Welcome ...
How to Add Branch Rules, CodeOwners, Pull Request Templates | Git & Source Control #11
Переглядів 2,3 тис.7 місяців тому
Enhance your project management and collaboration with our tutorial on adding branch rules, CodeOwners, and pull request templates in GitHub. Tailored for developers seeking to establish clear workflows and responsibilities, this guide covers the essentials of setting up your repository for efficient teamwork and code quality. Elevate your development process with structured practices for bette...
How to Create Pull Requests in Github and Xcode | Git & Source Control #10
Переглядів 1,6 тис.7 місяців тому
Learn to streamline collaboration in your development projects with our guide on creating pull requests in GitHub and Xcode. This tutorial is perfect for developers looking to improve their version control workflow and foster team collaboration. Discover how to effectively propose changes, review code, and merge updates, ensuring your projects are always moving forward efficiently. 🤙 WELCOME BA...
How to Cherry Pick, Drop Commits, and Edit Commits | Git & Source Control #9
Переглядів 2 тис.7 місяців тому
into advanced Git techniques with our tutorial on how to cherry-pick commits, drop unwanted commits, and edit previous commits. Designed for developers seeking to optimize their version control practices, this video provides in-depth explanations and practical examples. Enhance your Git expertise and gain control over your project's commit history for cleaner, more precise code management. 🤙 WE...
How to Rebase Branches and When to Rebase vs Merge | Git & Source Control #8
Переглядів 2 тис.7 місяців тому
Explore the nuances of rebasing branches in Git and understand when to rebase versus merge with our instructional video. Tailored for developers looking to refine their version control strategy, this guide covers the rebasing process and its advantages over merging in certain scenarios. Enhance your Git skills and ensure a clean project history for more efficient collaboration. 🤙 WELCOME BACK 🤙...
How to Resolve Merge Conflicts Between Branches | Git & Source Control #7
Переглядів 2,5 тис.7 місяців тому
Navigate the complexities of resolving merge conflicts in Git with our practical guide. Ideal for developers who want to maintain a smooth workflow, this tutorial demonstrates step-by-step methods to address and resolve conflicts between branches, ensuring your project's integrity. Enhance your version control skills and keep your collaborations conflict-free. 🤙 WELCOME BACK 🤙 GITKRAKEN: www.gi...
How to Create Branches and Merge Changes | Git & Source Control #6
Переглядів 2,3 тис.7 місяців тому
Master the art of branching and merging in Git with our detailed tutorial. Designed for developers aiming to enhance their version control strategy, this video guides you through creating branches for feature development and merging changes back into the main project. Improve your workflow and collaboration with essential Git techniques. 🤙 WELCOME BACK 🤙 GITKRAKEN: www.gitkraken.com/invite/vQvb...
How to Push and Pull from a Remote Repository | Git & Source Control #5
Переглядів 2,5 тис.7 місяців тому
Unlock the essentials of interacting with a remote repository in Git through our comprehensive tutorial. Learn how to push your local changes to a remote repository and pull updates from it, ensuring your projects are up-to-date and collaborative work flows smoothly. This guide is perfect for developers seeking to enhance their version control strategies and Git proficiency. 🤙 WELCOME BACK 🤙 GI...
How to Stage, Unstage, and Stash Code Changes in Source Control | Git & Source Control #4
Переглядів 2,4 тис.7 місяців тому
How to Stage, Unstage, and Stash Code Changes in Source Control | Git & Source Control #4
How to Commit Code Changes and Write Good Commit Messages | Git & Source Control #3
Переглядів 3,3 тис.7 місяців тому
How to Commit Code Changes and Write Good Commit Messages | Git & Source Control #3
How to Create and Clone a Remote Repository | Git & Source Control #2
Переглядів 3,7 тис.7 місяців тому
How to Create and Clone a Remote Repository | Git & Source Control #2
How to set up Github, Xcode Source Control, and GitKraken | Git & Source Control #1
Переглядів 6 тис.7 місяців тому
How to set up Github, Xcode Source Control, and GitKraken | Git & Source Control #1
Learn GIT and Source Control for FREE online | Git & Source Control #0
Переглядів 6 тис.7 місяців тому
Learn GIT and Source Control for FREE online | Git & Source Control #0
Rebuild Netflix in SwiftUI (Part 6/6) | SwiftUI in Practice #17
Переглядів 3 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 6/6) | SwiftUI in Practice #17
Rebuild Netflix in SwiftUI (Part 5/6) | SwiftUI in Practice #16
Переглядів 1,4 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 5/6) | SwiftUI in Practice #16
Rebuild Netflix in SwiftUI (Part 4/6) | SwiftUI in Practice #15
Переглядів 1,5 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 4/6) | SwiftUI in Practice #15
Rebuild Netflix in SwiftUI (Part 3/6) | SwiftUI in Practice #14
Переглядів 1,7 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 3/6) | SwiftUI in Practice #14
Rebuild Netflix in SwiftUI (Part 2/6) | SwiftUI in Practice #13
Переглядів 2,4 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 2/6) | SwiftUI in Practice #13
Rebuild Netflix in SwiftUI (Part 1/6) | SwiftUI in Practice #12
Переглядів 6 тис.8 місяців тому
Rebuild Netflix in SwiftUI (Part 1/6) | SwiftUI in Practice #12
Rebuild Bumble in SwiftUI (Part 5/5) | SwiftUI in Practice #11
Переглядів 2,2 тис.8 місяців тому
Rebuild Bumble in SwiftUI (Part 5/5) | SwiftUI in Practice #11
Rebuild Bumble in SwiftUI (Part 4/5) | SwiftUI in Practice #10
Переглядів 1,5 тис.8 місяців тому
Rebuild Bumble in SwiftUI (Part 4/5) | SwiftUI in Practice #10
Rebuild Bumble in SwiftUI (Part 3/5) | SwiftUI in Practice #9
Переглядів 2,1 тис.8 місяців тому
Rebuild Bumble in SwiftUI (Part 3/5) | SwiftUI in Practice #9
Rebuild Bumble in SwiftUI (Part 2/5) | SwiftUI in Practice #8
Переглядів 3 тис.8 місяців тому
Rebuild Bumble in SwiftUI (Part 2/5) | SwiftUI in Practice #8

КОМЕНТАРІ

  • @matthew_cramer
    @matthew_cramer 8 годин тому

    Damn, I didn't realize that I was going to be able to work with the Count if I wanted to. All jokes aside, thank you for another super helpful video, Arrays have really helped me better understand code. Cannot wait for the bootcamp. Thank you!

  • @shannonpaul8629
    @shannonpaul8629 10 годин тому

    These are good. Now I can understand what other lesser professors are talking about.

  • @shannonpaul8629
    @shannonpaul8629 15 годин тому

    just now watching and doing these videos. This is getting me up to speed pretty quickly. Coming from a Claris/Filemaker Platform. Everything is still the same same. But nuances that need to be learned. Great teaching.

  • @rden6252
    @rden6252 16 годин тому

    I'm in! I'm smart enough to own a computer, and I was smart enough to find $399usd. I've been to many, so called, emerging countries. The people there who own a computer can afford $399. They don't work all day for the next day's liter of petrol, or buy their cigs in ones and twos. I feel obliged to Nick, and I'd be ashamed to not pay him back when possible. And I couldn't figure out the coffee thing. Anyway, I just finished the Setup videos, and they are wonderful. Thanks Nick! You other people make me sick...

    • @SwiftfulThinking
      @SwiftfulThinking 15 годин тому

      Thanks for your support! I hope you enjoy it 🙏

  • @ditoledor
    @ditoledor 21 годину тому

    To avoid the issue with SwitchToggleStyle(tint: ) being deprecated, you can directly apply .tint to the toggle itself: struct ToggleBootcamp: View { @State var toggleIsOn: Bool = false var body: some View { Toggle( isOn: $toggleIsOn, label: { Text("text") } ).tint(.red) } }

  • @stu7032
    @stu7032 День тому

    Really easy to understand and useful.

  • @stu7032
    @stu7032 День тому

    It's so clear and useful, thanks!

  • @markmartin4037
    @markmartin4037 День тому

    Just wanted to say thank you for this content. You're truly one of the best iOS and Swift teachers on UA-cam. I hope you keep making content, specifically around more soft skills, decision making with a team, how to lead a team etc (all in context of iOS development). Thanks man!

    • @SwiftfulThinking
      @SwiftfulThinking День тому

      Thank you for the comment! And that's a great idea for a new playlist 🤔

  • @DouglasRutledge
    @DouglasRutledge День тому

    I've watched this video, so many times. I cant see how this relates to real examples. I have many sheets. What is the 'Value', what determines that? You show the save view with a different number on it? I don't get it!

  • @JemmaGuaney
    @JemmaGuaney День тому

    ChatGPT says that combining time with location would require an extension to do so, it a shame that isn't a standard part of of the CoreLocation library.

  • @ditoledor
    @ditoledor День тому

    In case anyone is wondering how to deal with cornerRadius being deprecated, you should now use clipShape(): TextField("Type something here", text: $textFieldText) .padding() .background(Color.gray.opacity(0.3) .clipShape( RoundedRectangle(cornerRadius: 8) )) .foregroundColor(.red) .font(.headline)

  • @nelsoncruz-os7nz
    @nelsoncruz-os7nz День тому

    Nick, First of all, thank you so much for everything you've done for us already. Your truly an amazing developer and person. If you can find it feasible to create a 50% student discount for us with an .edu email that would really be amazing. Either way my respect for you will never go away because a man who helps another on the way, has something good on the way.

    • @SwiftfulThinking
      @SwiftfulThinking День тому

      Im happy to hear you’re enjoying my courses! There will be additional sales in the future, but the current launch sale is the same price for everyone, which I think is the most fair way to do it. This course has a very valuable curriculum and even at full price, it is already a deep discount to the value it offers.

    • @nelsoncruz-os7nz
      @nelsoncruz-os7nz День тому

      @@SwiftfulThinking The King has spoken! Save your dollas CS bros!! lol but forreal understandable brother. You have given us enough rope to get us where we need to be and that's huge already. When I become a Developer forget about a coffee, I'm buying you a steak!! Peace and blessings your way.

  • @jacknzheng
    @jacknzheng 2 дні тому

    ur bootcamps are unreal

  • @jacknzheng
    @jacknzheng 2 дні тому

    awesome course, thank you bro for making this course

  • @yash-h9e
    @yash-h9e 2 дні тому

    too excited for this playlist!

  • @DevlogBill
    @DevlogBill 2 дні тому

    Let is a const? print() versus consolelog() ? This will take some time to get used too. Swift feels like JavaScript injected with Python. Still early in the game.....

  • @shannonpaul8629
    @shannonpaul8629 2 дні тому

    This was great Nick. I took a class from Stanford and you were much easier to follow and more thorough. Great work. Keep it up! Write a book!

  • @jacknzheng
    @jacknzheng 2 дні тому

    top vid

  • @gavrilovdenis153
    @gavrilovdenis153 3 дні тому

    in latest vesion of swift it doest work anymore :C

    • @SwiftfulThinking
      @SwiftfulThinking 3 дні тому

      Yes it does. Are you getting an error?

    • @gavrilovdenis153
      @gavrilovdenis153 2 дні тому

      @ yes , I was getting an error , probably took me an hour to realize that my file name was ViewBuilder so it was causing the issue with @ViewBuilder . Thank you .

  • @shreyapallan5704
    @shreyapallan5704 4 дні тому

    Was going to skip this video but it turned out to be pretty cool to learn how to draw custom shapes!! Tysm, glad i watched

  • @LiceoVillaFontana1
    @LiceoVillaFontana1 4 дні тому

    Pity you content is so IOS based. I was looking for MacOS examples... Very educational videos though, Thanks

    • @SwiftfulThinking
      @SwiftfulThinking 3 дні тому

      The MacOS market is incredibly small when compared to iOS, however, most of the code should overlap between the OS. It might just display slightly different.

  • @sucesssoulman
    @sucesssoulman 4 дні тому

    First of all, thank you for creating this library. After studying it in deep, every aspect of it, I found that It’s very useful for programmatic navigation in SwiftUI. However, while working with it, I encountered a few areas where the documentation could be clearer. These points might help others who are exploring the library: Clarification on AnyRouter and @Environment(\.router): The documentation mentions accessing the router from the environment using @Environment(\.router), but it doesn't explicitly state that this router is an instance of AnyRouter. Including this would help developers better understand the relationship between AnyRouter and the environment. Comparison between @Environment(\.router) and passing router explicitly: It would be helpful to explain the differences, advantages, and use cases for accessing the router from the environment versus passing it explicitly as a parameter. For example, some scenarios might require explicit passing to decouple views from the environment. In-depth explanation of showScreen and router injection: The way showScreen dynamically injects routers (e.g., router2, router3) is not fully explained. Clarifying that these injected routers are also instances of AnyRouter would remove ambiguity for users. Naming convention (router2, router3): While the examples use names like router2 and router3 to indicate the router being passed dynamically, it might be worth mentioning that these names are arbitrary and can be customized. This clarification would avoid confusion. Advanced examples with multiple routers: Adding examples for scenarios with multiple routers or deeply nested navigation flows would help developers understand how to manage more complex architectures. note: I used AI to format my text to be as clear as possible.

  • @craigslistuser1818
    @craigslistuser1818 4 дні тому

    The async part starts @18:45.

  • @Nicolas-jx9mj
    @Nicolas-jx9mj 4 дні тому

    I'll grab it on payday (January 1st). Thanks so much for all the hard work you put into making these free courses and helping out the community. Don't sweat the people saying it's too expensive - the price is totally fair. Thanks again!

  • @griot1722
    @griot1722 4 дні тому

    this price is super low for all of your efforts nick, appreciate all of your hard work to make advanced swiftui knowledge accessible to all

  • @NetvoTV
    @NetvoTV 4 дні тому

    Hey Nick, my name is Johnny and I'm a freelance logo designer, would you love to have a logo for your swift course and your channel to have a brand image your audience can remember your contents from and also can be one of the merch print you can sell to your fans to buy and own and share the words about your channel too? Let me know if you interested and I would love to work with you to design these for you! :-)

  • @FVN777
    @FVN777 4 дні тому

    To use color literal do the following, type: Color(#colorLiteral( and press enter. Do not complete the (). Just type the open bracket and press enter, it will change to an image you can double click to access the colours.

  • @PedroRibeiro-Dev
    @PedroRibeiro-Dev 4 дні тому

    You channel it's amazing. Keep with the videos. Thank you!

  • @eodeun
    @eodeun 5 днів тому

    감사합니다. 잘보고 있습니다.🤓

  • @matthew_cramer
    @matthew_cramer 5 днів тому

    Nick is the GOAT! So glad I found him and this channel, it's a great free resource for the New Year. Here is to staying consistent.

  • @Mr__Anon-E-Mouse
    @Mr__Anon-E-Mouse 5 днів тому

    Fantastic

  • @ArpitTripathi397
    @ArpitTripathi397 6 днів тому

    Had a doubt- After the last video of this series , whenever I am moving back from any screen to home screen the Navigation title automatically goes into the navigation bar. I have tried navigationBarTitleDisplayMode(.large) but nothing seems to be working. Kindly suggest some solution

  • @MuraliRockingNow
    @MuraliRockingNow 6 днів тому

    At 15.00, should that not be a queue.sync? I'm confused whether it should be async or sync. I believe that if you're making it thread-safe, you need to use sync

    • @SwiftfulThinking
      @SwiftfulThinking 6 днів тому

      We almost always want async, since sync can block the thread. In practice, we almost never need to write this code anymore, since we will use Actors instead.

  • @kokopelli48
    @kokopelli48 6 днів тому

    hey Nick! absolutely love this course! thank you for all your hard work! I've been watching from the beginning! and subscribed! At around 5:25, you said the tab Item went with the extracted subview, and I was wondering why that was a bad thing? seemed like the code still worked and made the main view cleaner as you've been advising. Would you say it's better coding to keep the (.tabItem) in the main view as you did for clarity sake or reading the code back, or is there a different reason to not move it into the subview as it did automatically? thanks!

    • @SwiftfulThinking
      @SwiftfulThinking 6 днів тому

      It’s just a personal preference to keep it a the TabView level because it’s easier to visualize. Also, I might want to change the screen but keeping the same tabbar item. But at this stage I would say, “if it works, it works” so do what you prefer 👍

  • @godlovekadjemse7158
    @godlovekadjemse7158 6 днів тому

    hey nick just wanted to say thanks; i'm glad to have a resource that lets me teach myself coding as i want to make my own apps and bring my ideas to life

  • @Hendrik6
    @Hendrik6 6 днів тому

    Such a good tutorial. Thanks a lot :)

  • @JamesAllen-r9k
    @JamesAllen-r9k 6 днів тому

    Great videos with clear guidance and implementation

  • @rishabhbhatia1847
    @rishabhbhatia1847 7 днів тому

    I didn't understand why you created a custom ID instead of using UUID. How can there be two locations with all same properties? Every location will have at least different coordinates?

  • @DannyBoy443
    @DannyBoy443 7 днів тому

    It's nice to know Nicks been at startups where he was the lone coder.

  • @DannyBoy443
    @DannyBoy443 7 днів тому

    This is epic education. I love NIck's style. Can't wait for this. Lets get me a good paid internship in 2025.

  • @matthew_cramer
    @matthew_cramer 7 днів тому

    Thanks Nick! I just finished finals and the temptation to not study and grind the basics course out was HIGH. Glad I am done and did well, and I cannot wait for the bootcamp...

  • @imwalrus127
    @imwalrus127 7 днів тому

    This is the format that worked for me on .animation() post iOS 15.0 RoundedRectangle(cornerRadius: 20.0) .frame(width: isAnimating ? 350.0 : 50.0, height: 100.0) .animation(.linear(duration: timing), value: isAnimating)

  • @BasicInsideOut
    @BasicInsideOut 8 днів тому

    Helpful comment: Not a backslash, but a forward slash for entering a comment.

  • @justmytraining4190
    @justmytraining4190 8 днів тому

    why i can't just always put [weak self] instead of cancelling tasks manually and managing them?

    • @SwiftfulThinking
      @SwiftfulThinking 7 днів тому

      That would solve memory leaks part but it would not cancel the task itself. The task has its own lifecycle and may be doing more than only holding strong references.

  • @swiftBroo
    @swiftBroo 9 днів тому

    💥

  • @hiteshagarwal5199
    @hiteshagarwal5199 9 днів тому

    Thanks a lot that is very helpful. You should cover how to store single struct or class object in user default along with image.