Intro to SwiftData - Model, Container, Fetch, Create, Update & Delete

Поделиться
HTML-код
  • Опубликовано: 2 июл 2024
  • Go to squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN.
    This is an introduction to SwiftData new in iOS 17 and macOS Sonoma. SwiftData was introduced at WWDC 2023 and is the successor to Core Data. SwiftData is a way to persist your app's data locally on device or in iCloud to sync between devices. This video introduces you to the basic concepts like @Model, containers, context, fetch, create, update, and delete.
    My iOS Dev Courses:
    seanallen.teachable.com/
    WWDC 2023 -Model your schema with SwiftData:
    developer.apple.com/videos/pl...
    X (Twitter):
    Sean Allen - / seanallen_dev
    Hired.com:
    hired.com/x/1n01g
    Book and learning recommendations that help out the channel if you decide to purchase (Affiliate Links):
    Paul Hudson's Hacking With Swift:
    gumroad.com/a/762098803
    Donny Wals - Combine:
    gumroad.com/a/909014131
    Mark Moeyken’s SwiftUI Books:
    www.bigmountainstudio.com/swiftui-views-book/fzc51
    Objc.io Books (Thinking in SwiftUI & Advanced Swift):
    gumroad.com/a/656585843
    Timestamps:
    0:00 - What is SwiftData?
    1:18 - Create Project & Model (@Model)
    5:35 - Create & Explain Container (2 ways to do it)
    8:42 - Separate Container Object (Configurations)
    12:03 - UI Walkthrough
    14:29 - Create Expense Items
    17:33 - Fetch Expense Items (@Query)
    18:39 - Delete Expense Items
    20:20 - Update Expense Item
    24:52 - Query Predicates (Filter Results)
    #swift #softwaredeveloper #iosdeveloper
  • НаукаНаука

Комментарии • 134

  • @seanallen
    @seanallen  9 месяцев назад +9

    Learn more with my iOS Developer courses at seanallen.teachable.com

  • @iLoveAppl3947
    @iLoveAppl3947 Месяц назад +6

    thanks boss. I do like content creators who doesn't read the course material but instead is thinking logical, it gives me the vibe that you a pro

    • @seanallen
      @seanallen  Месяц назад +1

      I appreciate that!

  • @bradleygilmore
    @bradleygilmore 7 месяцев назад +4

    This was by far the best SwiftData video I've seen. Thank you!

  • @satoriappdev
    @satoriappdev 6 месяцев назад

    Honestly, what a fantastic video. Clear helpful, and patient.
    Learned so much of the basics without diverting too much into wild syntax and hard to comprehend coding. Really great work on this video it's perfect!

  • @sandeep_hegde
    @sandeep_hegde 6 месяцев назад

    Your comment for the RUclips video on Swift Data could be phrased like this:
    I've watched several tutorials on SwiftData, but this one stands out as the best introduction to the topic so far. Sean has a unique talent for simplifying complex concepts and making them easily understandable. Thanks Sean. 🙌"

  • @thetutorialdoctor
    @thetutorialdoctor 6 месяцев назад

    To the point, not overdone, not underdone and concise and clear. Great tutorial. This has everything you need to know to get started working with SwiftUI and SwiftData with good explanations

  • @michaelbouril5278
    @michaelbouril5278 3 месяца назад +1

    This is just incredible, your level of mastery and ability to step through each portion with great clarity is unheard of!

    • @seanallen
      @seanallen  3 месяца назад +1

      I appreciate the kind words and glad you liked the video!

  • @AndrewDChristie
    @AndrewDChristie 6 месяцев назад +3

    I've been watching for a while, I like Sean's teaching style - he has a great way of making complex concepts simple and understandable

    • @seanallen
      @seanallen  6 месяцев назад

      I appreciate the long-time support, Andrew!

  • @VTivan
    @VTivan 9 месяцев назад +11

    Great video, as usual. Would be great a part 2 explaining the iCloud sync with SwiftData

    • @TVsBen
      @TVsBen 9 месяцев назад +3

      Yes I would love part 2! I have CloudKit enabled on a SwitData project but I'm not understanding how to get it to sync.

    • @seanallen
      @seanallen  9 месяцев назад +1

      More Swift Data videos in the future for sure. No promises on when, but there's a few on my to-do list.

  • @kuldar
    @kuldar 9 месяцев назад +2

    You have such a clear way of explaining concepts. Great work! Looking forward to the new course!

    • @seanallen
      @seanallen  8 месяцев назад

      I appreciate the kind words, Kuldar!

  • @user-vs9ey3bd4t
    @user-vs9ey3bd4t 25 дней назад

    Best tutorial! ive saw many 8h tutorials, but this is the most simple and powerful

  • @naeem3dful
    @naeem3dful 9 месяцев назад +3

    Hey Sean, I just wanted to let you know how much I appreciate the way you present and explain new things. Your videos make complex topics seem so simple and understandable. It's clear that you have a talent for breaking things down. Thanks for making data storage seem so much easier in your beautiful way. Keep up the fantastic work!

    • @seanallen
      @seanallen  8 месяцев назад +1

      I really appreciate the kind words and it's motivation to keep going 💪. Glad you're enjoying the content!

  • @TheEmperorXavier
    @TheEmperorXavier 9 месяцев назад +1

    I just discovered your channel and I’m watching your Swift UI Fundamentals Video. You keep dropping these fire videos which is helping me understand SwiftUI a lot. Thanks soo much and I greatly appreciate your valuable work.

    • @seanallen
      @seanallen  8 месяцев назад +1

      Welcome to the channel! Glad you're enjoying the content :)

  • @87Avantgarde
    @87Avantgarde Месяц назад +1

    Dear Sean, thank you for that wonderful video. Love your teaching style, it’s easy for me to understand and follow you. Just excellent.

    • @seanallen
      @seanallen  Месяц назад +1

      Glad you like my style!

  • @SaschaBuerk
    @SaschaBuerk 5 месяцев назад +6

    Just started to dip my toes into iOS development and I wasn't aware how recent some of the things I try to use are. It's so hard to find guides. So this is perfect.

    • @seanallen
      @seanallen  5 месяцев назад +1

      Happy to help 👍

  • @Greg-du
    @Greg-du 2 месяца назад

    absolutely clear in the essential. the best teacher ever 👍 regards from France

  • @patgoo2
    @patgoo2 9 месяцев назад +1

    Great, that covers a lot of information with swiftData and looking forward to your next video.

    • @seanallen
      @seanallen  8 месяцев назад

      Glad you liked it!

  • @peerview
    @peerview 9 месяцев назад +13

    wow! that's a great video, yeah give 30 videos please. Would be great one about video or media in general? how to persist it ( i know, probably that's 50 videos long too XD)

    • @seanallen
      @seanallen  9 месяцев назад +1

      Haha, yeah. SwiftData is a huge topic that will continue to grow as Apple builds upon this initial version.

  • @ridholmes
    @ridholmes 9 месяцев назад +1

    Thank you!

  • @chezchezchezchez
    @chezchezchezchez 9 месяцев назад +1

    Omg. I asked, and I received!!
    Thanks, Sean!

    • @seanallen
      @seanallen  8 месяцев назад

      Happy to help!

  • @denisfok1699
    @denisfok1699 9 месяцев назад +3

    Thanks for the intro, that is extremely useful.

    • @seanallen
      @seanallen  9 месяцев назад

      Glad it was helpful!

  • @ondrejrohon5696
    @ondrejrohon5696 9 месяцев назад +2

    I did a bit of iOS development when Swift was brand new and it's incredible how far i went.. so much simpler nowadays. I was thinking about side project with nice offline functionality and I though about CoreData and how complex it is. This is such a good news to see there is beautiful new "SwiftUI" way how to do it. Thanks so much for this clear introduction! :)

    • @seanallen
      @seanallen  8 месяцев назад

      Yes... this will be a huge improvement over Core Data.

  • @allenwixted1992
    @allenwixted1992 8 месяцев назад +1

    Sean! Back working on an iOS app and this is exactly what I needed. Haven’t coded since we spoke probably like 5 years ago when ARKit first came out.
    Excited to put it to use

    • @seanallen
      @seanallen  8 месяцев назад

      Hey Allen! Welcome back. 👋

  • @timotejmatlak4625
    @timotejmatlak4625 3 месяца назад +1

    Thank you Sean, you are the best teacher with the best content ever :)

    • @seanallen
      @seanallen  3 месяца назад

      Thanks for the kind words :)

  • @ArneGockeln
    @ArneGockeln 9 месяцев назад +1

    Very helpful! Thanks for sharing it!

    • @seanallen
      @seanallen  8 месяцев назад

      Happy to help!

  • @pavloma6836
    @pavloma6836 7 месяцев назад +1

    Man... your explanation is top notch! You know where to put accents! Very well done 👍

    • @seanallen
      @seanallen  7 месяцев назад

      Thanks! Glad you like my teaching style.

  • @DD-hh3sp
    @DD-hh3sp 4 месяца назад +1

    Love your style, Sean. You explain things well and make it understand. Thanks!

    • @DD-hh3sp
      @DD-hh3sp 4 месяца назад

      *understandable.

    • @seanallen
      @seanallen  4 месяца назад

      I appreciate that! Glad you like my teaching style.

  • @vinidotco
    @vinidotco 9 месяцев назад +1

    A+ content for sure, thanks Sean,

    • @seanallen
      @seanallen  8 месяцев назад

      I appreciate that! Glad you liked it.

  • @mkboy5596
    @mkboy5596 9 месяцев назад +1

    thank you bro
    clear and smooth 🥰

    • @seanallen
      @seanallen  9 месяцев назад +1

      You're welcome!

  • @parthpatel7461
    @parthpatel7461 2 месяца назад +1

    Crystal clear explanation

    • @seanallen
      @seanallen  2 месяца назад

      Glad you liked it!

  • @yousifkurdy4778
    @yousifkurdy4778 9 месяцев назад +1

    Exactly what i wanted!

    • @seanallen
      @seanallen  9 месяцев назад

      Hope ya like it!

  • @chrisrudy1969
    @chrisrudy1969 3 месяца назад +1

    Thanks for the video!

  • @user-jl3xp5yp6d
    @user-jl3xp5yp6d 9 месяцев назад +1

    Good lesson. Thanks

  • @ahmedhamadto8756
    @ahmedhamadto8756 6 месяцев назад

    Hi Sean, I've been watching some videos on your channel, and your method of presentation is excellent and easy to follow, I'm completely new to iOS development and was wondering if you have a video or tutorial that has a complete beginners guide?

  • @torfeuzarre
    @torfeuzarre 9 месяцев назад +2

    Thanks Sean. Great tutorial as usual 😊
    As a beginner it looks far easier to begin than Core Data 😅

    • @seanallen
      @seanallen  8 месяцев назад

      Yes... it's much easier. It needs another year or two to mature, but it's a great start and clearly the future.

  • @MFSDO
    @MFSDO 27 дней назад

    Thank you so much! Idk if you already made this video, bc I couldn't find on the channel but, if you could make a video to help use swiftData with view models that would be awesome! Thanks again

  • @paulyandnukhas
    @paulyandnukhas 8 месяцев назад +1

    That was super useful thanks.

    • @seanallen
      @seanallen  8 месяцев назад +1

      Glad to hear it!

    • @paulyandnukhas
      @paulyandnukhas 8 месяцев назад

      Are you on Threads,@@seanallen ? I'd like to follow you. `

  • @ishool108
    @ishool108 7 месяцев назад

    Thanks for the video.
    Two questions:
    - How do you work with related one-to-one and one-to-many models?
    - How to bring the logic of working with storage into ViewModel?

  • @elemento_arts
    @elemento_arts Месяц назад

    Awesome. Can you show it using Previews instead of the Simulator? Thanks

  • @Bankai3474
    @Bankai3474 9 месяцев назад +1

    Great video, I've been working on an app with SwiftData since it was announced while doing the #100DaysOfSwiftUI challenge. You were wise to wait till now before making a video because there were some bugs when you had custom types and enums haha. Anyways, thanks for the example because now I can change my edit view, Apple's example app of updating an existing SwiftData object isn't like this so now I can clean up my code a bit.

    • @seanallen
      @seanallen  8 месяцев назад

      I agree. This is definitely a great start for SwiftData, but it needs another year or two to mature.

  • @mattross9992
    @mattross9992 6 месяцев назад

    Do you have a video on how to use swift data and preload the database and the data?

  • @dgeneration
    @dgeneration 9 месяцев назад

    Can you make a video showing how to implement swiftdata outside of a view? I’d also like to see fetch descriptors explained if possible.

  •  9 месяцев назад +1

    Great content! Very useful but as everything that introduced newly, to use them daily, we need to wait until iOS 17 is used more.

    • @seanallen
      @seanallen  8 месяцев назад +1

      Yes. And it's probably needs another year or two to be fully ready for complex projects.

  • @Michael-Martell
    @Michael-Martell 3 месяца назад +1

    Incredible video man! First time seeing anything from your channel! Been slamming my keyboard trying to get through UI mismatching and out of date CoreData tutorials. I would love to purchase a SwiftData course if you have one. Would you post on Udemy maybe?

    • @seanallen
      @seanallen  3 месяца назад +1

      Glad you liked it! I don't have a Swift Data course (yet) because it's pretty new and I expect a lot of updates and changes with iOS 18 this year.

  • @ayberkmogol
    @ayberkmogol 9 месяцев назад +1

  • @bharned3
    @bharned3 5 месяцев назад +1

    Thanks I have been enjoying your videos. Is this one available to grab as a starter

    • @seanallen
      @seanallen  5 месяцев назад

      I don't have starter projects, however you can grab the completed source code at seanallen.teachable.com/p/source-code-youtube-videos

  • @anudeepananth
    @anudeepananth 5 месяцев назад

    How do we perform CRUD outside the view, example periodically check for new data from the server, download it using background tasks but now it needs to be persisted to local database

  • @chesterman18g
    @chesterman18g 9 месяцев назад +1

    Container-Context in SwiftData is really a mirror of an CoreData Persistent store and ManagedObjectContext with sugar of autosave (?).

    • @seanallen
      @seanallen  8 месяцев назад

      Yup. That's it.

  • @ManojAP
    @ManojAP 8 месяцев назад

    can you tell me how I connect sql based db to swift data.... video is useful. thank you

  • @Uz_Mobile_Developer
    @Uz_Mobile_Developer 9 месяцев назад +2

    Thanks for video. I think IOS development very easy than Android development. This video was very helpful

    • @seanallen
      @seanallen  8 месяцев назад

      Glad it helped!

  • @jacobwoods1032
    @jacobwoods1032 9 месяцев назад

    Could you make a video about becoming a freelance app dev?

  • @unthinkabilities
    @unthinkabilities 8 месяцев назад

    Awesome video, SwiftData looks really good. The only thing I’m wondering is: What happens to an Expense when we assign it to the ExpenseToEdit variable and then dismiss the edit sheet? Does that Expense just keep sitting in the variable until we assign to it a different Expense (at which point I assume the sheet would trigger again)? Or does Swift automatically set the value to null again after we dismiss the sheet?

    • @seanallen
      @seanallen  8 месяцев назад

      It will hold the value until we assign it a different one (at which point would trigger the sheet again with the new information)

  • @xtu373
    @xtu373 9 месяцев назад +1

    Please make some vidoes of data structures and algorithms in Swift

    • @seanallen
      @seanallen  9 месяцев назад

      That's out of my area of expertise. I haven't interviewed for a job in a long time and that's the only time I ever used or studied that topic.

  • @andymorato7588
    @andymorato7588 6 месяцев назад

    Does anyone know if there is a way to query based on a State var? Say there is a button where the user can set the month with the intention of viewing every expense pertaining to just that month. I don't think we can just set the month as a state var and use it in the Query filter

  • @nitramluap
    @nitramluap 9 месяцев назад +1

    I need to be able to migrate my CoreData app to SwiftData but it's just not there yet... CoreData is still WAY more sophisticated, particularly for large complex databases with lots of > relationships, etc. Fingers crossed they'll make it possible in the next year....

    • @seanallen
      @seanallen  8 месяцев назад

      Agreed... give SwiftData another couple years. It's clearly the future, but not quite there yet for complex projects.

  • @user-vs9ey3bd4t
    @user-vs9ey3bd4t 25 дней назад

    Suggestion: if u skip so much code video for ui, give the code to copy it, so we can do it fast too

  • @piteke100
    @piteke100 5 месяцев назад

    Hi, I’m continuing to study SwiftData by repeating all the tutorials but I can’t understand one thing:
    I have to create an app with a default list (which therefore no data needs to be added) and this list is contained in a toggle. How do I make only the toggle state persistent?

  • @sreekanthzyou
    @sreekanthzyou 6 месяцев назад

    want to create SwiftData in a Framework not in Host App. where do we specify the model container?

  • @moamberraza7658
    @moamberraza7658 9 месяцев назад

    in case where you are handling with multi model how we are going to identify which is getting triggered in view. just a little confusion here as i am a basic learner.

  • @DragonByte79
    @DragonByte79 5 месяцев назад

    Does anyone know if I have to care about unique constraints? Do I have to check if it exists before inserting it? Currently, it is working. It won't add another one. Is SwiftData handling it?

  • @LebenWerden
    @LebenWerden Месяц назад

    Hi, how I can use onMove modifier on expenses?

  • @modhi210
    @modhi210 7 месяцев назад

    what did you mean by ExpenseCell ?

  • @josep-rudo
    @josep-rudo 2 месяца назад

    Hi Sean! Thanks for your SwiftUI videos, for all of them. Are really helpful!,. Please, Can you share your Xcode theme? Thanks in advance 🫶🏻

    • @seanallen
      @seanallen  2 месяца назад +1

      Happy to help. The theme is called Midnight. it's a default one in Xcode. The only thing I changed was the color of the comments. I made them grey.

  • @bharned3
    @bharned3 4 месяца назад

    Anyone found a way to back up the data. Not sync it for multiple devices, but create a backup file of the data to iCloud or dropbox, then restore from that file if needed.

  • @gmjelle
    @gmjelle 8 месяцев назад

    Hi Sean, really informative video. Is there a way to get data from a network request and transform the json straight into a swiftdata model with Codable?

    • @seanallen
      @seanallen  8 месяцев назад

      Yes... in SwiftData your models are the same models you would use in normal Swift code.

  • @OttoFaerber
    @OttoFaerber 9 месяцев назад

    What is with Dynamic Filter

  • @joshuarileymagic
    @joshuarileymagic 6 месяцев назад

    This really is amazing but it put me off using it atm because it's obviously only from iOS 17 & above, I'm using FMDB right now

  • @morgancooledge3557
    @morgancooledge3557 5 месяцев назад

    New to SwiftU here. Is it SwiftUI best practice to keep the .sheet views code inside the same view as the content view or better to have them in their separate views? So instead of 1 view you would have 3, if that makes sense.

    • @seanallen
      @seanallen  5 месяцев назад

      I'm not sure I follow what you mean. Do you mean within the same file, or within the actual View?

    • @morgancooledge3557
      @morgancooledge3557 5 месяцев назад

      @@seanallen Sorry I think I meant file.

  • @D0iego
    @D0iego 9 месяцев назад +1

    How can I use the context outside swiftUI? Like if I want to manage in a different class an Object stored in a context

    • @seanallen
      @seanallen  8 месяцев назад

      In the video I show you how to create a container object. Once you have that object you can use it outside the view hierarchy (like a SwiftDataManage singleton for example).

  • @Notkdenben
    @Notkdenben 27 дней назад

    I never understand the do/try/catch blocks because all tutorials force unwrap or put in comments saying “// do some code here” lol

  • @septimir5278
    @septimir5278 5 месяцев назад

    If @Query results change, will the view invalidate like with @State and re-render?

    • @seanallen
      @seanallen  5 месяцев назад +1

      Yes, that's how it should work.

  • @denisk3852
    @denisk3852 9 месяцев назад

    How about sharing data between an app and widgets?

    • @seanallen
      @seanallen  9 месяцев назад

      Use an app group and put that ID in the container configuration parameter.

  • @Mater-code
    @Mater-code 9 месяцев назад +1

    can you talk about vision os?

    • @seanallen
      @seanallen  8 месяцев назад

      I have an overview video here - ruclips.net/video/V-mIIcvYrh0/видео.htmlsi=dpjgdJwFYlQQ2o65

  • @Jem-xu2jm
    @Jem-xu2jm 8 месяцев назад

    please my friend make tutorial based on new swiftdata and swift ui, like recent ones, 10 hours each

    • @seanallen
      @seanallen  7 месяцев назад

      Oh, just a casual 10 hour tutorial??

  • @satoriappdev
    @satoriappdev 9 месяцев назад

    Would you use this over Realm?

    • @seanallen
      @seanallen  8 месяцев назад

      I've never used Realm before, so I can't give a valid opinion here.

    • @satoriappdev
      @satoriappdev 8 месяцев назад +1

      okay, thanks!@@seanallen

  • @HarutoPlay
    @HarutoPlay 3 месяца назад

    How can I save a dict?

  • @johnpatrickechavez1216
    @johnpatrickechavez1216 6 месяцев назад

    is this only work in iOS 17?

    • @seanallen
      @seanallen  6 месяцев назад

      Yes, this requires iOS 17 and above.