Practical Core Data with Example | DevTechie Interactive | Skillshare

Practical Core Data with Example

DevTechie Interactive, Learn new everyday

Practical Core Data with Example

DevTechie Interactive, Learn new everyday

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
13 Lessons (2h 31m)
    • 1. 01

    • 2. 02

    • 3. 03

    • 4. 04

    • 5. 05

    • 6. 06

    • 7. 07

    • 8. 08

    • 9. 09

    • 10. 10

    • 11. 11

    • 12. 12

    • 13. 13

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class

In this video course, you will learn to write your very first Core Data app end to end. You will see how easy it is to start with Core Data and make a professional app that can be published into the app store.

App we will be making is simple Todo list because everyone understand the business problem around it, which is to create tasks to do :) which leaves us in a state where we can talk about architecture, design patterns, code structure and other important things that needs to be done to make a slick looking app.

You will not only learn about saving and retrieving data from Core Data but you will also learn how to better structure your code that is decoupled  and ready to be scaled.

You will learn about MVVM design pattern along the way, which will improve your app architecture understanding and skills

You will learn real debugging skills by debugging issues that comes up during the app development and how to track them down and resolve them.

We will explore how data models are created in Core Data, add new records, fetch records from the backing data store in Core Data, along with sorting filtering, updating and deleting data from the data store.

There is a lot to learn and you will have fun with all the practical examples that we will see to learn new concepts.

What you’ll learn

  • Core Data Basics
  • Persistance Storage in iOS
  • Swift
  • Navigation Controller
  • MVVM (Model View View-Model) Design Pattern

Are there any course requirements or prerequisites?

  • Basic Knowledge of Swift
  • Basic Knowledge of Programming
  • Basic Knowledge of Xcode
  • Familiarity with Database Would be Added Benefit

Who this course is for:

  • Developers who wants to learn basics of Core Data in Swift
  • Developers who wants to persist data into database
  • Developers who already have basic swift understanding and wants to learn iOS app development
  • Developers who wants to learn and apply MVVM

Meet Your Teacher

Teacher Profile Image

DevTechie Interactive

Learn new everyday


Class Ratings

Expectations Met?
  • Exceeded!
  • Yes
  • Somewhat
  • Not really
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Your creative journey starts here.

  • Unlimited access to every class
  • Supportive online creative community
  • Learn offline with Skillshare’s app

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.



1. 01: Hello and welcome to this new video Siris on core data. And ah, in this, uh, begin serious of what we could be looking at is basically how coordinator works at a high level. So basically, we're gonna create a practical app and ah, we're gonna see how cold it are. Basically, managers are all the how that data persistence in itself. So if you don't know what God, it is basically coded. I had an object graph and persists in framework that is provided by Apple for my quest and IOS. This was introduced in IOS with iPhone sdk three dato, And it basically allows you to organize data in entity relationship are activated model, and you can basically see, like, their data in XML Winery or sequel light stores, and then they can remember related at an object. Ah, the high level that's actually represented by objects and the relationships are represented by associations and then down at the, uh, the day the best level, you don't have to worry about all the relationship joints and stuff like that because corded are takes care off that honest? Um so an apple own words could It actually attracts the details off mapping your object and to store and make it easy for you to state data using served our objectives e without administering directly into a database. And you're gonna see basically how easy it is, Teoh, create hard this stable retrieve, delete and all that Interco data without touching or writing a single line of sickle. So that is the topic for the scores. And what we're gonna building is a really simple app and the mystery this up. So what we have is basically we try to move this still editor at the center. There you go. Okay, so you know, doing it how we are going to be building, okay, you bring it back. And so we're gonna be creating hard this simple to do list up. We're gonna listen all things to do. In the first of all, it's definitely gonna be a lot scored Enough, They're gonna persist, are change it. So if you actually quit the app and, um quit the AP Ah, gun and then we launch it. We have all of the all of forget a persistent. Now let me show you that we are actually saving big Also leave movie review, and that's gonna be done on what? You were 14. And so what happens is basically, um, what we're doing is we're adding tasks that we want to do. And the reason is this one is added at the bottom, because the way how the everything in the store it's actually sequential. So all the tasks that wherever there do it's actually sorted by that. So you gonna learn all that You're gonna learn how to retrieve data from core. Dana, how to sort it. How do basically I think when something is done and then mark that ah, information. And then when you actually oh, save when you actually quit Europe or APP is closed, I'll buy the system and you come back. You get your dean up assistant, then also, you can actually, how you can basically add a new task into your into your table and your persistence store and then statement and out Then are you gonna learn about navigation control? So as you can see, this is not the standard navigation control that we're using. So I don't like you know what we're learning about Core data. Family stall lingered, but I'll be fun to learn a little bit more about Iraq itself so you can take a look how navigation bar itself, what we're gonna other several properties off navigation, navigation control and navigation bar to basically give this image based background. Are this fancy taxed as we're using every year next year. So basically, ah, type of front chaining type of fund for the title of the navigation bar and the attending within color and and all those house are things. And when you actually add staining the back button so it's sort of back, but that I'm showing the list and we can quick on it and go back to it. And we're gonna be learning all that. And there's one more chanting I forgot about, like your automation during the Korean. Nothing you mean ultimate under how to delete it. Ask so you can do it literally. Everything here side to the right and one more time. Quite the act. And, uh, they go outward Thea and reopen it and our Dana has been process it and then you can see it's a really, really fast it's not. I mean, it didn't take much time for us to actually, Um remove all the rules and then I'll go back into the into the background and kill the app and then coming back. It all was done in a matter of seconds and are their base are processed or was able to actually cope with that? So it go data is actually good to deal all the all the various different complexities off data. But along with that, it can also deal of the large amount of data. So those are some things that we're gonna be seeing in the score. So I hope you guys are excited hand to learn about this as we are here and tactically directive. So let's go ahead in Japan it and learn how do youth core data in your APS I saw see, have the next video. Thank you. 2. 02: back and in this video we're gonna be starting without app. But before we start to build our app, I want to talk a little bit about the court structure. The first of all, we will try to use M v B m model as much as possible. And ah, that's But that said, basically, if you haven't seen the M V p m, of course from they're thinking Interactive's you can actually find it within our page on when you go to list all the other vehicle since you find it there. And that's actually a good basis to learn about M v p M. But you're gonna continue that tradition off like, you know, following and remember there will be 10 because are you gonna notice that how easy it makes up for us to manage the state off our app? Okay, so that's busting the second thing. What we're gonna do is that we cannot create these awards show folders, and we're gonna put all the corresponding things inside. These are folders because it's gonna help us all night. Our code. So I've got Apple gets the in delegate in for billets after other xy Esther's into settings or he can call additional fines and stuff like that. Then we have storyboard. So we have one screen storyboard and mainstream means fretboard in one screen in one folder . What's your folder? And then you have to do list. So basically, the list after news is basically a folder. The has the view model and the view controller. For that, you must be thinking like, you know, an M B B m. We have a model and view marble, both of them. But here we are only seeing view model. The reason is because model with something that's going to be created by core data. So I don't wanna add an extra layer off model just for the sake off, like, you know you're doing it because that model doesn't be created by Cortina is gonna be sufficient for us. So that's why we're actually going to use that model. So that's gonna be the model, but off Ah, medium. And this is going to be the view marble part of the family. Okay. And then you have your view control, which is to do less you control over the main. Lest we were told that shows all the news. And, uh, then you have active where you have had to do you controller and add, uh, new to do remodel. Okay, then you have coordinator helper. So here you have coordinated XY in a model. Ah, Any class O r I d file protection early has all the relationships and out of the location for the sequel, like database pregnancy. Cool. Like their base and everything stored. We don't have to manually do it. All the thing to do is basically create the filing. Check the check box thing. This is gonna be a core, Dana. Uh, that this happens. Gonna require coordinator and exclusive, can take care of everything, creating everything in the back in. So we're gonna see that in in following videos. Like, you know how we can do that. But then we also going to create this cold and a manager. So what happens by default is, um, when apple creates avenue, check the check box for core data. It puts a whole bunch of stuff here in a delegate. Now, in already used those things, you have to our reference have delegate every single time type. Ah, you I applications main instance and delegate and casted as a delegate and then use that to accept those variables and stuff. So what we have done is we have re factor that and moved it out into its own. Its own singleton. That's gonna be managing the entire state for coordinator. So this is basically going to deal with everything that gonna go happened in the XY data marble file. Okay, so that's what the score did. The manager is going to be four, and then we have some extensions. So we have some data extensions and we have some string extensions, and I believe you have one helper for navigation. Helper, this is there. We can actually change on navigation bars, appearance and stuff like that. Okay, so there's the structure that you gotta follow, and I just want to give you an overview off, like, you know, this is what it's gonna look like at the end. Ah, but like, you know, when we create the African that start moving files like, you know, into these virtual directories to make it more manageable. So I'll see you at the next you and we're going to start. We start that basically creating in new project Gorda. Ah, Check box checked. Ah, well, creating the project and we don't see, like, you know how a black blood project looks like. And what expert provides us in terms off Gordon Brown created an app with cord in the back out persistent story. Okay, so I'll see guys that mix again. Thank you. 3. 03: Look, Mac and ah, this little gonna start to create our new cornea tap. OK, so basically, thanks to new up. So let's call that. All right, So we're gonna create select this single view app from the Atlantic, By the way, I'm using X code 11 and ah, this is my quest, Catalina. Um, so if you don't have that, thank you know everybody it every year using expert level insert 5.1 or 35 or about then you should be fine. Most of the court should work for you. Um, but how really focused on the concepts? Because concept really doesn't change. So, like in as long as you know, the basic concepts you should be able to follow along in any version of self. Okay, so that's that. Let's go ahead and get started. So select single view app and that put next are now here. We are going to give this happen name. So let's call it things to do. Really. And, uh, I feel about taking off relation in your bundle, live into fire language and using intervened, make sure you select our storyboard. This course is how dealing with pretty shall be controllers and it's not a bus Turkey, I if you're looking for coordinated and safety writers, another course are from us basically nous out there. So I should actually search for, um Cordelia in surf. You I and you should be able to get that. Okay, um so select three board and then are basically make sure you have this Are you scored in a check? And don't don't check this cloud get yet. That's gonna be topic for another really serious because it's rather large and, uh, don't actually give a proper focus for those. Like, you know, you want to get started that core data and that it seems so intimidating, you know, to start with cold data that so many things are involved. First, let's focus on core data and then begin later on in a different course. Cover core data more like intermediate to advanced bars off coordinator. So I'll definitely work on it. And then all this you have no estimate that it's available. So picture you have just the use Codina checked. OK, then click neck, and then I'm basically, um, here. We cannot stay bar to that location, and I think we create our project. All right, so this is there are project is creative. And now what we can do is how first think we can actually moving from. So let's clear some. Ah, what's your porn? It's still a mini replica near off main folder, like, you know, a Apne, miss. Um, he can choose from new group. And you grew up without folder, Then his first time going to see it. First time selections I would actually create, like, you know, group without folder. People have electric it. Only the marshal directories. So I'm simply gonna click that, and I'm gonna mean this on settings. Okay? Clap your liking. And either are standing really the things they're gonna go in there. Stop. Mapple, Temple Augustine, delegate, you populist and then ethics. Okay, so I'm gonna pull at that one, and that's created another. Groups are now. You can see we have a new group and nuclear off its border, so it's not without for exchange names. There is context sensitive volunteer created voter holders will actually given option because it understands now a new group. Do you want to create a were show? Um, folder. But if you create an actual folder again do that. So let's create a water for her. This one we can call storyboards, and there were going to move to a far story. Words into that. All right, a look. American work on these storyboards in a little bit. Ah, but let's create some more. So let's create a new group, and we're gonna call this to do list. And that's a very I'm just pickles. Or if the rename it like, you know, in the last project. So they didn't really limit but three. Name it, um, And that another group and this one with a car we're gonna call son corps data helpers. Okay, so this is gonna have according only stuff, right? So let's go ahead and take a look at your data. It's how the sexy dinner model pile. So, actually, among if I liked week, forget the center face. Are there two types off an eater style? We have, like, relationship kind. And you have this how anything you kind now first nous added entry entity. And if you can think of, like, you know, just like 80 now is not really a table. This an object representation off Theo but, like, you know, it are ex mostly, like getting also you build a relationship and everything on entity itself. So just, uh, click on entity for local corn entity. Just really gonna name this one to do and gonna ask them attributes out. We're gonna add names, and the name is gonna be up type string. Now, these are, like, you know, actress on mixer to your calls, and then we can add i d My knee is going to be off type you lighting because I'm gonna create, like, a unique way to identify our object or our role are saving the therapies. And then I say, Do you own this is something better column, And this is basically gonna define when the task is view, okay? And we're gonna do not that into date, the type is gonna be date. And, uh, then we have completely completed. So, um, today. So, basically, it should be completed, and the completed on should be a, uh, bait. So when the actual house was complete and last one with the not not the restaurant is completed still on that it's going to be off brilliant type. That's going to just remind basically, if the tax is computed or not. Now, since you have a table creative and again see that Thies to exert style. So high level. So let's take look a table and grab Have you and this Did your team win graph you and, uh only I want to know. But if you had through the rope And if you have relationship between those two, you will see them here on the screen, okay? And the other one is basically your tabular view are more like editor style. You where you can easily manage the entity rename them, added to your relationships have placed property stuff like that. Okay, okay. All right. Now, let's take a look. So that our, um there's our core data. I mean, that's not entity created. Now, let's go ahead. And uh huh, Breath command shift to basically clean, and then command, I'll be Do you build this app and the reason I wanna build it because I don't actually make sure that our model is created. In order to check that, we're gonna go and see the view control than import core data. And then here you simply was a lot to do difficult to do. And as you can see, it's not showing up. Well, this issue I in concert, that app has basically escort has this ah, problem off Not identifying nearly headed entities. And, uh, if you notice, uh, the the gorge in diverse class definition. So it's always this class definition and category extension most of time, like, you know, with expert level norex for 10. You and I noticed sometimes, but it actually causes this issue. We continue to manual and then and, uh, go into safe. You have the selected, um, this entity selected. And if you go into anything, you can create an s manage object. So closet. Ah, the reason I don't want that because it is good. Like, you know, if you're adding too many properties and extensions, you get had extension to your model. Anyways, uh, what? This is an extra strand because any time you meet a change into your and today you have to go in regional rate is the process. Delete the old classes. So that is that is a lot of work. I mean, given that coordinated doing already a lot of work for us, but still like you know, doing that replace and all those things out. It actually makes me nervous because, like, accidentally, you can do something that you don't You don't want to do. See if you absolutely have a reason to generate your manual. Your plastic mentally, you can do that. OK, but if you don't And if you're like, you know, if you're like me, you want to just play long make you don't get how use readily available things, then do this. So I'm gonna do basically another queen and then basically gonna closed it. Um, and what? I need to do it. I need to reopen that product first. So let me try to reopen that product list. And, uh, I was trying to build it one more time. So if it doesn't work this time, you will have to you go hand clean the drive date, As you can see, it can. It did not directing that. So let's go to preferences and good locations and basically selected data. They qualified thanks to do just deli that and close everything, close your project and re opened your project and the strikes could queen again and build. Okay. So hopefully that build is going to take a little bit time, but yeah, it's, uh it's gonna come back. Uh, thanks. They so let the free. Okay, so we still community it. Let's go ahead and, um, going to our help getting it and take a look if we have access to our Yeah, uh, political will. Right herself. Okay, so we don't All right. Um, that is God. Ah, that's even for me. First and country. Oh, because you have changed after class definition. Shoot him to now. Happily, it has this Nothing. Yeah, I want it. Control shift gang clean and build a game. You know, You told me hands protecting it. Okay. It was, um go back. Okay, so we have plus definition class separation selected, and this is added to our project. That is less good. Okay. The motion, something. It's looking, Janet. Okay, so that's got important. Difficult. This is rather Pinkel, But trust me, the other thing is in a minute, but more people decided I don't want to do that. Um, So you sound like you know how How pretty cause, Basically the So the mistake that you made was first of all, when I was telling you guys about the difference between cogen techniques be any of selecting manual and none. Ah, And then when I closed the X hold and came back, it was still manual in them. So I did not generate because obviously, surely is now expecting me to generate those files. So changes to good class definition close. It reopened the app, reopen the project basically next good and then clean, and that another built. And there we go. We have access to our what to do. Okay, this was a rather large, like, you know, other long process. But ultimately it's done. So now, when we are ready to use cold data into our app. Okay, so in the next year, we'll start working through our example, and we'll create something reuse and stuff like that and start connect thing those into the view controller sense. So I will see you guys in next video, and then you'll start with the apple line first. And then the matter connect our up list into the coded dancing, a little video. Thank you. 4. 04: alone or Mac and And you say you were going to be creating? Are you wise? So let's go ahead and get started so we can create a larger simple You. Why? I mean, it's not gonna have much. There's just gonna be two screens, one for listing all the all the things to do, all the stuff that you need to be. Do you need to return and then add new task. So just those two screens we're gonna create and other is gonna be a nabish controller. So let's go ahead and create navigation control first. So if you select the vehicle taller and go to the editor and then her basically flipped absolute embed in navigation controller, What I can do is basically create this navigation controller and you gonna wrap your view controller. It had that condition controller. OK, so now you wanna give this on navigation controller or this controller a cycle. So we're gonna get this It Kendall thinks you dio and, um you gonna trump a table of you people you into this. So let's go ahead and drop that right here. It's fine and, uh, unconstrained. It's hard to be 0000 Okay. And it's not at this period. Zero thing. So this are assessing. Okay, there you go. So we have are people you created palace gland and create a cell and a birthday town. And we're gonna expand thea height and gonna search for label. And we're gonna need three labels, one for task name, then that in the hold option. Just drag down on the existing label to create copy, coming to create to copy. And this one is going to be have you on. And the song is going to be completed, huh? Okay. All right. So lift, constrain these. So I'm gonna constrained there to be four points from all sites and bottom concern. I'm gonna constrained that. Hope I says Oh, but let's select that instill. Ah, relationship equal on a do creative than unequal. Okay, they spread and everything is gonna disappear. Arrested this week. But all the constraints in place So something into thoughts off on all sides. We're gonna need that. The top stop one is already created. And then gonna create this hunts of old. All told, it should be Yeah, Have a go. Okay. Besides, you can see all the Harris have ah being disappeared. And in order to give this fellow a proper height, just select the they will be felt. And then, um, go into I always forget his name. Sizes like science, inspector. So go to science, Inspector. Intellect are Matic, so it's completely expand. This, based upon this piece has been taken by young way out. We're gonna make some properties changes into a staff me buster fault. The label is going to be, uh, dark text color. Okay, so let's give it that. And, uh, we're gonna change it. Want to be? Have a near next, um, 18 is getting Let's give it a medium, and then this one color is going to be secondary colors. So secondary label, wherever that is, I'm secondary naval power and this one to secondary legal. Okay. And, uh, I think there's a primary. There's a primary now I think legal called. Register with the main. And then you have secondary and tertiary. A tertiary colors color scheme. This is actually disappeared. The world, uh, toasty, like Dexter, Like text color. Um, okay, so the default is label colors lesson like the label color, actually. Just do a bite by all the rules for dark more seven U turn return the dark mode on. Um, it actually looks nice. Although I didn't check that. So that's gonna be a, uh I think it is time for you guys to dio. So the things they probably for, um, foreign type and ah, font size for view and be completed. It's a So I'm gonna head with me or next a little bit more is OK in same property and, uh, everything next regular. And let's make thes do actually italics. So, uh, you just found it. Okay. Thank you. It looks good. Now we're gonna need a, uh, bar button are to basically create How that Oh, Figley. So that's Gladden press command shift. L and, uh, look for a table. You control our first and I want to create a stable. We're going for us. So we have that ready available for us and then pressed a command ship out one more time in the four bar button item and gonna drop it here. Something Okay, Now the system item is gonna be ad, and you simply I'm simply gonna take it control and keep the control press and then drag and drop at the table re controller and select show right now. Okay, so with this is gonna create the Segway and you can see the back. But it started to show up high, so add you, you know, do right so you can give it to type of the soul. Now, let me before we forget let's get this table view A fell a reasonable self i d Three times if they felt okay. And for this one for the other thing we controller being gonna defined content as study itself. And we only need to in the section. So, um, basilica protection Rose. It's gonna be too so that I select protection here and Rose are gonna be just too and, um, simply expand these a little bit, uh, this one a little more. Okay. So as create a label and the label is going to represent our path and, uh, the text field IHS grumpy Tron right on the meat. And now we are, uh, resize it. OK, now we're gonna constrain me, so I select the label and we've got to constrain it. Oh, 12 12 and cool. Okay, remember, we have already given it bottom a strain. So we only need to give this levian friending and bottom. Okay, We don't need up. So how lovely. Their leading trailing the bottom is this one. Okay, now on exchange fund for this one, too. And this guy is going to be I came every year. Next. Rechner is maybe medium is all right and a little bit larger. Okay, Do the same thing. Font on custom. And that can okay, right. I think is a do on sold this fact. Another label. Do you, Han, for this is the new date, which are the Baskins do. Um, and then we look for R. Baker. So date picker, it's already available. We're gonna Jesse at that one. Let's constrain that to be 12. 12 painful, and then our state quicker. It's gonna be You don't need that one. Oh, and video. So it just needed because you're still itself. I just needed a little bit more space. That's what the complaint was. Let's go ahead and press command shift that one more time bar, but in I don't and, uh, gonna drag and drop it 100 next, and basically cleared the save. Okay? And you should be, then I think that Okay, so believe it or not out there, especially about it. What we gonna do for now, in this, uh, in this video. So if I run it right now, that's quite and run this inn explode level program and see how it looks like. So I don't know how we have our They will be showing up and it be tap on this button. We have our two fields attack and the big, bigger showing up just fine. So that's actually great. So that we are really Why is actually complete now, we're gonna go ahead and viable these starting next year. So in the next week, we cannot basically start wagging up this app, and I'm gonna make it look and function more like a nap. Okay itself. See you guys next week. Thank you. 5. 05: Lone Oak Mac. And in this in African a basically now gonna write our but our table view controller, our first view controller. And, uh, because we have already them designing everything that we need to define the storyboard. Now, before we actually write any code into this of you, controller don't actually rename this, and we can call this to do list controller. Um, that would be no, like, you know, this is gonna be there. No list of you, controller. And I'm gonna copy that agenda pasted right here. Now, what you knew is that gonna remove this reference to core data? And, um, we will create an outlet for people view because we need to connect. Ah, this, uh, you controller right here that were created. Teoh this basically make a connection a plate silicon reference that they were view inside our code. Okay, Before we do that, let's select. May not terrible. Make sure that basically, it has the controller. So let's make sure that it's actually not thievy controller, But the new me, which is to do lift controller, okay. And now we're gonna go and create our glitz, so I'd be Outlook Week. Mark table. You you aren't They will view, right? And, uh then what you didn't do it is that we're gonna make this. Ah, this view control or confirmed to you at table views in delegate and data source. Okay, so what we could do for that is what we gonna great extension for to do this controller you I table you delegate in you Are they will the U now. Okay, so for dinosaurs, there are two required methods that you need to implement. Since you go take a look at the definition by holding command and clicking on it, you can jump to definition. And there is this method where number off roads infection this is required me and self will roll into next bath. This is required because all the others have optional in it. That means you don't have to actually put implementation for those. But you definitely need to put our implementation for self or right next about to the number of foreign sec. That's actually the conformance for the protocol that's called. He likely will view their sourced. Okay, So different from into that we're going to click on this, uh, this hour, uh, air circle are It Looks like a stop sign. Um uh, thing and we can say to fix it. Okay, When we say fix it, it's gonna basically stub out to our functions. How and the both of these are the ones that required. So we simply gonna hear statically returned 10. And for self Were you at the next ball? We're gonna return something in here. Um, we need to create a cell, actually, so you create a fell in a minute, but let's make sure that they will. For you has delegates sector self. And they were You have genitals yourself, the delegated basically to provide hide and all those other stuff and that our sources basically what the source of the day night. So what kind of data? Ah, we're gonna be displaying. And what? The source off that night. So they're less liver wise. Definition that they looks like number. Throw in section provides how, when you goes out there in that table for that particular for that ghost town of cells protect. So it's almost like we need to do have you to say I doubt they will be that estimated Now, this is remember, estimated rawhide use that something, for example, in devastated to 44. But the standard hide that comes that they worry concert and then you can say they will be locked. Row height is equal to you. I table view dot automatic dimension. Now what's the new is depending up on your early out, right? If anyone you're only out, it's gonna just remind the height off the sell by calculating it on politically now and back in the days it used to be a manual process. So people used to basically ah, cash this value come pre computers value for self and then cashing in finery and then retrieve it back or return it back. But it's no longer necessary. Thanks to this awesome new property on aesthetic property on you, I will be Let's go automatic dimension. It actually indicates that whatever the other layup is gonna return as the constrain or basically at the proposed height. That's what steps are gonna be. But you started always for the right. I've seen like people making mistakes, but they actually but, um, estimated row hike to be arm activation and put raw hide with the static value in that gift this is gonna be your row height, which is going to be incorrect. Any MSC, a lot of Qatar, like, you know, um, cut off data, so you're only gonna see, like, you know, how the day than everything else to kind of sphere. So we don't want that. So that's why we actually gonna use the they will views, um, table views are inactivation. And one more thing I remember, I just remember that is basically being set for this. Task me to go beyond one line, so make sure you select the task name, go to storyboard so that the task name, uh, go to your attributes, Inspector. Every recent factor and then, uh, right there still lines. Make it zero. Okay, if you make it zero, that actually make sure that at this particular label can grow as much as the text needs to grow. And your table, these hide is gonna go has Mattel's. It needs to grow. Okay, at the front of the automatic permission. All right, enough with that, and ah, let's go ahead and proceed. Is one most Alan Duke. Is that one of state table? You got table full interview. So we're gonna see to things like what happens there. Basically, whenever you have a table view, it shows extra lines. But if you see here, there's no extra lines. It's all blank. And ah, when we and the data only that line for that data showed up. By the way, if you don't do that, then you're gonna see a lot of divide us than everything. So let me show you actually wants to look like Oh, so that's great article resell, because then you can see everything in Let's go ahead and add a new O clock. So we gonna have a new class here and we're gonna select Coca just class template. You like people have you felt? And if one is going to be called to do people no. Okay, click next and save it, Delia. Now we're gonna create three out next one for each about Thea each of these labels that we have created so again, if a week lar and we're gonna make them private, actually gonna make the Dave axis a little bit differently, you delivered more concise. It's for you. Or properly. Um Okay, So what's on the stack name label? Do I label taking on there, do you Date And 3rd 1 is, uh, completed. Big. Then go. Okay, so we have the three, uh, available now I can do is we can save our to do. And we can expect a to do here, all right. And they're very optional. Whenever assistant, you can say, uh, observed that James So other dead center of the room and it's let to do equals you to do that, we're gonna say, Yeah, first of all, another to do not complete it. Equal phone. Okay. And, uh, health. I began to something. So reason you are actually separate those two out. How? Because we wanna show different labels, But we little on We wanna show that strike through things. Eso We're gonna come back and do that strike thing a little bit later, but let's do ah, past me Just happening way. Well, that text is equal to to do. Stop name. Okay. And I ask you date not next is equal to strength, and they're going to use string dot format overload. Um, and we got today string is going to be due on percent at, and the brander is basically going to be to do not do on now. We need something to basically convert our bait in two strings. So let's go ahead and create a new folder, a new group call extensions. And in this extension, we're gonna create hey, date extensions. So you call it a date T shirt. Okay, Once it is are created, we simply gonna say I extension to date and we got the monk to string format and that we're gonna off for the format and we're gonna return the strength. So you have recently gonna create date for matter, they begin a return spring from date. Okay? And we conceivably say a comical don't date format is equal to the format best being supplied. Probably. Now, let's go ahead and finish this so we can wrap this video. So we're gonna say to string format is going to be something that we want hard drinking display. So because I am a man, the why why, Okay. And, uh, you do the same thing that completed date, not text is equal to yet to be completed in that all right? Yeah, And I'm going to copy the three and, um, and Casey's hi and, uh, you can leave everything like that. I mean, you don't change that. We're gonna change it, um, and come back basically and write another extension that can actually help us display that strike through thing. But all the time taken, basically, just I can repeat yourself. Let's review just so come lead them on percent. And, uh, it's nice to be okay. So completed, Big checked it equal to string with the format one. Or Matt, thank you. And completed distant at related UN percent out. And this is going to be to do don't completed on now to string for Mitt against careful the same thing. Okay. All right. I don't quite that's like everything. Control I to format, and they know. So our sellers ready with, uh, connected? Nothing. Um, select the fell go to the ER. It's called. I picked now. I'd ended the inspector. I always forget, um, to do the table cell and go to the are playing inspector. Hand out for ask a name label connected to the task Name Task. Due date connect is a due date and task completion date. Probably in a deck connected quickly. Thank you. Have you So I think this is a good stopping point. We'll come back and finish this off hacen next video, and we're gonna run the tomato data and see how it looks like I'll see you guys in next video and we're gonna run it through a mock scenario. I see. Thank you. 6. 06: Hello. Not smacking and interested up. We're gonna continue working on our table to do list controller. So let's go ahead and see if you can. Actually, three. You're somewhat thing. So first of all, I hate a young to do Same not to do. Okay? And I want to show you how David looks like I was to dio. Okay, being in the auction data, talk to abandoned. Hey, listen again. Simply, Ah, anything like that. The of today state and all right. And it's something that so far first color and, you know, to nine. Includes it usually in the appendices to dio 10 times. Okay, so now we can simply say to do with, uh, much do is who are okay and that to do that How much did so knock to do not help And you simply not saying that? Um self physical to the table. Very honor. Dick. You the, uh, fell constant as to do. They will sell so we can actually excess just property said, because it's not to do a is equal to smart to do indexed back. No, great as they try running it. Ah, If we are have done everything successfully and we are able to create. So read them. It's saying, I don't know because we're about to connect her. They will view. So splendid. Select your view controller. Go to the outlet inspector, and they will use, not connected. So those pictures connected and go ahead and rely on it and see if that actually work. So that is scared body I get. But we heard nothing. Any data? All right, so why is that, uh, do completed equal to false so that the you know, I guess though it's not, it's not coming here. All right, um, did it save those in delegate to ourselves and issue active hall date out to populate her to you? Okay, Um, yeah, I suspect him that because we're creating an empty. Okay, There you go. So we cannot call the empty in this, Leiser, um, because it's an is topic. So let me Let's do one thing. That's where What about? Now we're going to create our real data. That's creator Marvel and, um, getting you that marble. I see not try one thing real quick. So be where to? Let's go to our telling it. Do we have those metal screen of the APP assistants container. Okay, so let's go ahead and create that. They help her so you can at least get our A core data for context back. So I created selective search file, and I'm gonna call this core data manager, and the school did. The manager is basically going to manage all the coordinator related things. Okay, so we're gonna import Cortina class core data manager, And, uh so basically, there are two things that have been created here, So let's take a look. First of all, did the persistent containers persistent container like the common cities. It's the, uh uh it's the contain them that have that that load at the store, the persistent store for you into the application. That persistent store is backed by the sequel light of these. But instead of directly dealing the sequel light, you actually deal in the container and what you do basically, yes. You ask container for the context, and it gives your contacts and you whenever you are creating your, um, your models, for example, to do model you created with the context in, you know, in picture or basically in memory. So whenever you call the same context thing. What happens is whatever has Bean updated into the context are that new context that being provided through the justice center dinner get tapes that it actually manages those states for you. So you don't have to, like, you know, really write any sequel, But he all you need to do is get the get the re context and basically used that new context to create a model, and then it just call the state contacts after finishing after after you finish working with the model, and then it will actually save that data in the back end into the vehicle light for you. So and then when you retreat with your treated similarly by supplying, creating affect request, we're gonna do that creating offense request and then supplying basically the context into that. So context is your centralized thing that actually manages or coordinates off this operations center happening for saving and free retrieving. They so what we do And we are going to take this and move it inside out class. I'm going to take this and mortis inside, holding the manager. Okay, Once this gets us that basically, um it gives us the ability to create a, um Ah Singleton. OK, let me to lead all these comments. Everything that you create like you get all these covers. So you're not losing anything. It's it's very straightforward. What it's doing is basically saving is getting the context from persistent container the view contact and it's taking. If it has changes, it has changes and save it. And if there's any error while saving the report, that there and this particular piece, of course, is only thing like, I can't oppose the same container for this. Um, for this name, that name is exactly same as your FC data model. So this actually gets you gives your code access to back and silver light on there being and then it says, like, you know, load the persistent store so load that the people like, um, into the memory with the completion handler and complete handler actually shows the description and the air the only check for the air. But we do return the container itself on. We need that container so you can get the view contacts out of it so we can instantly create a singleton. Now you're make sure that this Singleton Because there's this thing. Open this at the classes, not any sliced by somebody else that we simply cannot create private and it into it. And we're gonna create a static, let shared, and they're gonna be supplies are plus yourself. This is gonna make it singleton. Now, um, what we can do is the one creating this to do. I will try this thing. Um, because they're not calling things so technically, this should create it to do for me. Here's the mistake core data manager don't shared not Was this in contained They're done. Contrast. This gets the contact. And, um, now how There's one more errand that we need to resolve and Senator isn't seen. Delegate said newly interview thing. And, ah, it's trying to solve assigned called safe context, which used to belong in a delegate. So this is what you have to do a year cast it. But we're gonna make a simple They think that's going to run this, um, we have another hair out. Don't share I. So now it's not getting creative. My animal Terrible. That Thank you. No, I think it's practically and see if it's still crashing. Okay, so it looks like it's gonna work. Okay, then, for something now. So as you can see, our data is basically showing up. So this is what are they actually looks like, although, like, you know, this is just a mark data. Um, but as you can see, all the things are yet to be completed in our cell, you know, really? Outside working. Fine. And, um, basically, um, listen, if I committed the what and you hear, um, I think I move this one, okay? Still looks like the left engine and only return. What? Aren't you let me to still let's return to. So, you know, it's all these blank lines that you have, right? I mean, we don't need these and they're actually not coming from the cell. They're not really sell, but they're the part of the foot review. So that's why we need to actually created the whole excitement. It just to show you, like, you know, what part of us that's the media and the for the real. A little view into the foot of you. As you can see, he is actually gone away. I mean, honestly makes it look a lot different. It's a lot more queen. So that's why Ah, you know, basically override whatever, right in the front of you. Okay, So I'm going now, basically do one more thing. One simple thing, and well, and the studio here. And in the next week, we're gonna actually, uh, right se foot functionalities. Americans that begin basically saver daytime. Start to see some data here. Okay, so that we do this, Um, First, select a worldview and go to the attributes and, uh, for the separate here, change the insect to custom because I wanna make it poke and called if you're using to insects and it I don't know if you can see what's not properly aligned. Don't actually align it. But I want to make it look like a line that's not stretching and are touching the end and kind of to make it more obvious I'm gonna make it blue maybe. And ah, stick looking at man that they go Oh, what you gonna see? So let's make it dark gray because that makes it top may look much better thing. I just Perfect. Okay, so in the next video we're gonna do is we're gonna right from penalty to basically ah, work enough safe. And we don't create new tasks and stay with into the out of the thin store. And then when you click on our back button ah, you can actually see that tough being at into the view. So that's what we're gonna do in the next year. So I'll see you at the nuclear. Thank you. 7. 07: Hello. Welcome back. And in this video, we're gonna be creating our add new our task. So we're gonna basically work on our add new task so we could be creating we control for it and view M v and basically the view models. Okay, so let's go ahead and do that. I'm going to create a new folder on a new group. Here, hold this one ad and you have Thank you. And first Harvey Boat create a new view control over. So select the year Coca touch. And you, are you, you controller. And, uh, to any escape Britain's. Okay, let me do it again. You far coquettish class. It would be a controller. And you're going to call this on ad. Then you have shoulder. Okay. All right. So here opens of things commented things get green and ethically and creating it, they will be controlled. Or we don't need all these things because we're using static. They will view recently as to using static they with you because it automatically gives us this cruel ability. And we want that so, like you know, so we don't have to actually, when keyboard gets open, we don't have to adjust the height and everything for the view that actually give get. I mean, if you get for free. Um, and most of the forms, if you see that apple uses they used same static view Just because it actually helps you a pair organize your view with the less gold Because all those hole that's cool ability you and the keyboard opens up and everything it's handled for you and you can see like how this gold also looks very much identified. They only two. There are only two things that we need here. How this one idea flick, um, for require for task name got a text field and I be public or ask due date. Take that there from it. So these two things how Right now, Mr I didn't take this name. Go to your meeting us three board and select your view controller. Go to the cloud and Yoda costs. Give this the good light, ugly inspector, and connect your task name to this guy in your task. Do it to this guy. All right. So far, controls are connected to an outlet on. I go back to add new task controller and first of all. We're gonna make sure that the minimum task due date, that against that, especially today because you don't want to, like, you know, user setting the date, Dude, it in past. So past due date don't minimum. They didn't go to to the state. Not the date for matter, but and then you can say they were you doubt they will footer view. You can see justice line showing up. We don't want that one. So you simply going to say you are you, like some? Let's go ahead and run this really quickly and down we are. They should still be able to see everything. And they are. They were full time you stopped at me and everything is good. Um, begin. We cannot. They contain We cannot pass state. All right? I've been really well for my future date. Right, So that's actually good. That's what we You okay filled with this? How? Now that's go ahead and create safe, basically state where models how really saving your task. We can create an eye reaction, and if they fund favor new path and, uh, I wonder why bar, but item okay, we really don't need for the completion. Think, um, Now we go back to arm industry board How we take our selective, um, table our vehicles over and then go to received actions and to the favor, Newt, and drag it onto the same. But And then we go, our savings knows, Like now. Ah, here's the detaining point. Now here. He can very well write the code to handle the save for shalke right here in the Greek government. Okay, we don't want that. Why? Because it's not a good practice on every Veum is divine. So we can actually extract out the logic part from the view part and move that into the view model. The logic, that whole logic that needs to be actually, uh, that needs to That controller needs to be driving. I shouldn't be there. Controller should be like, you know, able to, um, called a another class to basically hand over our delegate. That functionality that helps simplify your cold. Ah lot. So that's why we're gonna actually do the MVV n way. So we're gonna create a new class right here and you can see how clean are Quote is gonna look like once you're done with that. So we're gonna think ad and and you how for you normal. So we're gonna add this one and ah, this Agnew task of you want It's simply gonna be a class had new half you model my hand's gonna have to properties name and do they Hi. When you need life gonna supply the name and we can also supply that do you date? That's a is simply hilltop name is equals to name that's been supplies stuff that do you live difficult due date that's been supplied And here we go Let's write a function save task and you can see the state function is being written here on this is actually in that, uh, receive a completion block. Just gonna be escaping. And that completion block it's going to return. April Ian basically expectable Yin and return Nothing. Okay, now here. Are we going to call our coordinator manager to stay? Something are accorded. The manager does not know how to stay stuff yet, so let's go ahead and make it learn. Okay? Have gone to your port in a manager and, um, here at the top, you can create function, think to do and ah this faith to do is basically going to do the state work for us. Okay, So I think we can pause the video here. There's a good stopping point. In the next year, we can write this functionality, connect our, um, view marble into this functionality and connector the path controller, or basically, the controller to the view model and make it work. OK, so I'll see you guys in Nick's idea. Thank you. 8. 08: Hello, Mac. And in this you will be going to be creating are basically finishing up our state to do. Ah, that we left in the last year. So in our coordinator manager, you're gonna get this safe to do, which is gonna be able to save our to do our path into Jenna bees. Okay, so you gonna this function is going to expect name if you on basically the due date completion fame completing basically, Philip and return this completion all the way. Do the collar. Okay, Now you're really gonna create our to do, and this to do is going to be created with the context that's gonna be supplied. So we're gonna say persistent container new context, and it's going to create that to do not you simply gonna stand to do that name. And he called her name. Do not ah do unethical to do you on that being supplied. And are you on the date and then to do I d is equal to you? I d okay. And you you like e. Then we just call save contracts to save that data. And we got completion to neutral at the end successfully and Honestly, you won't believe it, but that they have always take students safe. Now, let's go back to our um if you mumble and, uh, what we can do in the view model deal simply call this, say, functions of the ethic or their manager that shared that safe to do. And ah, we are works of life. South Thought name, so no, do you? Thanks and completely now what this helps us to do. Basically, it helps us to decouple that logic where we could be writing everything like, you know, important cold data and writing Corday that stuff here you're one than because our corden a manager can exist independently. And all this say for shouting. You can actually write that in the change that independent off like you know, all these other passing all these other things Now you can add logging into it. You can add error handling or, like, you know, basically some sort of tracking and stuff, like how users are saving it. You could do a whole bunch of things later on, and you would not need to touch any of the other components are you can actually start this space, and you know you have to, like, touch any of the Cordillera management stay for shall be. So that's how this decoupling works. The MVV, um, actually allows us to decouple that. Ah, this entire thing. Um and that's why we actually follow the M V B m design pattern felt. What we are going to do is we're going to go in our add new tasks control over and in this ad noodles controller Real simply say in this thing back, we want this. Okay, with this remodel to be add new task remodel. Okay. And for the name, because simply say task name, not text. Okay, if nothing is a light worth is simply going to say no name. I mean, although we won't reach that state. But still and then task due date. You're gonna get that. Okay, They begin with a VM doctor. Yeah, and ah, you're gonna see our completion here. It's a reasonably gonna say this batch. Do you stocked Main that Anything out, Doc? Navigation controller. Not you can told her too. True. Basically, only no. Do I really say we wanna go back to our this last few controller? OK, so if you stay right now, what's gonna happen? The same is gonna save, but we won't be able to see it. So, uh, what we need to do is the before we actually really Ah, like, see our work in action. We should actually write our get data or get alter news as all ah, and basically start showing those students into the list controller. So, in the next video, let's go ahead and finish that and then begin Their basically saved some data and, uh, basically, look at same data in the mistreatment over how fast you guys in Israel. Thank you. 9. 09: No, not a Mac. And in this video, we're going to be looking at how to save how to look at our state data and basically Fetchit from the database. So the last video, we actually finished working on this save path. But now, when we have save already go, we need a way to check, like, you know, whether we saved our item or not. Before we do that, we need actually fetch all that data. So what, We can do it. Ah, we can actually first write a function in this core data manager class. And, uh, that's kind of basically help us retrieve the data from the database. Okay, so let's go ahead and get started. So we're gonna create a function, get oh, Dr News. They're called Owen, and it's gonna return in a rail to do Okay. Now we can do it up. Your 1st 1 created request. This request is gonna be off type and the French request now, and the threat request is a genetic, and it needs to be off type something, and, uh, we're gonna say it's gonna be off type to do, and the simplest way to create a better question. Basically, the state to do that. Richard Quest now to do is the Ennis manage object. Dr. Class are this one, and it's actually inheriting from Venice. Manish object. That means it's actually gonna have expect request function available to you because it is defined in the base club. Now what any stretch request does get the listing. Look. So and if this request basically just create, he request criteria that you wanna present for your equity to select, even provide sorting and stuff like that. So if you are from the database second select star from people leave rare I B is equal to 1234 This is what It's pressure and this fetch request looks like an exciter question is this select Ah, request that's actually formulated are created for you my core data by just asking for benefits request for to do. Okay. So the stable name and everything is actually created by providing generic type and ah, then hey, can provide that you know, all these conditions that we're gonna see, like you know how you can actually provide the conditions. Uh huh. In any fresh request. Okay. Uh, like, later on, you something all and if predicated, and we can actually see how we can use it. But for now, we simply gonna pull the data from the database. So let's go ahead and I'm gonna testicles and I will return a two dudes and what the studios are, just create a table culture news. And, uh, we are simply going to he's like that with an empty to do. All right, string on return. That and this array is what we're gonna populate. All right, so ah, suggesting apiary to satisfy that return air. But we can actually populate this once our request comes back with the data. All right, so next thing where you can do as you can say do catch just on a complete. So do try, catch. And, uh, what you need to do is we need to create or update two DUIs from the request. So we gonna say persistence container, not you. Contact Dark fetch. And this is where we gonna find our fetched requests that we have created, which is called request. All right. And that's about it. So we can simply say that her print error dot localized description and believe it or not. We are done. OK, so what does the new is, Uh, is gonna Oh, from the person container gonna get the b context and fetch the data for the Cirque west. Now, this request it basically gonna have all the information about what kind of table it needs to reach out to. If there's a sorting order that's provided we can provide, it didn't live a little bit. Then it's gonna actually satisfy that and sort our data according to that. And it's also gonna honor if there is any filtering now, that means that any where conditions that speed now added, OK, and then it's gonna fetch that bigger. So it's they gave memory efficient, like, you know, does everything in, uh, in sequel form, like, you know, whatever the back in form form is. But you don't have to worry about it because cord, it actually takes care of all these things for you. And what do you got in return? Is in Ray off that filter right now? That could be empty. Or that Ray could have, like, you know, more. Demand it. That depends on what you have. Ah, stored your database. It it doesn't matter like that's gonna give you something back. I'd rather than theory or with the data, if it has found the data. Right. So what we gonna do now? We're gonna go to our list controller or basically, our list model and see if we can basically used this. Get students. Okay, so let's go ahead and think about our started. So in our to do list, we have this mark data. We don't need this multi anymore, so we can actually employees comments this one out, Okay? He should have not believing that someone put, um, you've got told. Comment the end comment. So now if you load, we are returning ecstatic number. That is basically giving us how many How many items They are, stuff like that. But Yemen created our to do modern yet, So let's go ahead and creator to do this view model so we can actually manage these things rather easily. So it's going to create in you cloth to do lift you model. Okay. And here we gotta do is, uh, you first. The first gonna create. Um, and, uh, we're gonna prosecute class FedEx. It was created close to do, but this you, Monica. Now this view model, it's gonna have any both close to do this and it's coming up type to do, right? It's gonna return Count, this is this is the variable that we get that computers probably typically use to basically return. How many number of rules are there in the people Didn't count and then gonna initialized up saying it. And, uh, again, something's a self taught to do it equal to core the manager that shared, not get alternates. So this is where we're going to get all the to do's that's being returned. And then, um, Reville create a function hold to do at in next This it's gonna be called when we call Self for row at next pounds. So it's simply gonna say, Yeah, the parameters that's gonna have is gonna be an index of life, and and the return type is going to be it's too No, this is simply gonna return to dues and and there make the needy for us to access that particular element editing this. All right, uh, now we also need a way to refresh, and we actually save on data from add new, um, you control over or had task of you could have new chassis control. We need a way to refresh our thing. So that's gonna happen when we come back on on the screen in beautiful here. But we need her way through depressions to begin to create a function called, um fresh, you know, and historically commits a startup two DUIs. Doctor is equal to core. Damn, I just shared out. Get ahold of you now. He can imagine that, like, you know, this has been repeated. So that's gonna call refresh data here and your time. So it's gonna happen, is how they're gonna complain because it's gonna complaint, because our to do is not initialized. Okay, so we have ah complicates toe handle it. We can either create this to do like death Badly can actually result to center Mike so or we can actually have at the at multiple places. And I think this is okay. This actually would work begins. I would not be marvelous created. It's going to create an empty to juice, which is perfect. I mean, table view, Countess still gonna be here, so it's not going to show any tasks if it doesn't have any so vested in a workout. I mean, because it's not creating any duplicate. Go for us. So much easier to manage our coat. Okay, Now, let's go back to our our to do list, do you, controller? And the way we can access it is by creating every model. OK, so you know, you are that. And if he didn't create our view model like this, Okay, and ah, now are the model is created. We can simply use that Do return how the number approach. So it may be every thought count is number of roads and we don't need that began. Somebody they sell not to do is equal to I am that to do that in next and explain next batter for rolling here. Okay. Said that should give us hold. Introduce that a favor. Now, we're gonna also call if you get appear. So I'm gonna say you did a Peter super or not. Do you think appear anyway did. And here Oh, yeah, I've simply gonna stay the and dog fresh data. Okay. And that's go ahead. Run. Okay, So while it's funny, um, while it's actually launching, we can ah, talk. What we need to do next. It was quick. So that's why I think this must. All right. First taking other no time. Okay. They're gonna go ahead and add new talk so we can say new. Okay. And this dude, Friday favorite. And as you can see, we didn't get anything. Okay? The left Aladdin tried any about what's going on. So we go to our how must minutes you're gonna go to our recon door debunker here, and, uh, and then how we can I try to create all more that one more? Okay. And it's activate and and saying, All right, so are this point is hit. Now, we need to go into our state task because that's where that's where our Pugh model is gonna save. Um, so we're gonna just going to that and then saved to do it is basically going to be That's one, uh, that it's called How after that. So we're gonna call that and Christie, so save context is called, So we get the context, the context has changed. So we go into the save and we saved, okay? And then he called the completion that takes us back here, which takes us back here. That means our view is gonna pop, um, back into our color. And that's there are list of you it's gonna get cold. So we need to put this uneven wear here. So we know when view has appeared. This is gonna get cold. So we're gonna say refresh data and refresh dinner. It's gonna get called. So this guy and but even in there and go to that and the city So now we need to go inside. The captain said public my idea. You are. The question is constructed are empty. We say try to do. And we have two values back here. And, uh, then you say, OK, returned those two values returned those introduced and then be actually got now in the cell for Oh, so that means our David being returned. Okay, we are one step past are, um, basically sell, but we because we did not hit this this break point reading it, we haven't called the table. You reload. Okay, So what happens? That's basically when you come back in your, um you disappear. What's gonna happen is you need your table. You do You need to update their table read their source and tell it that hate something has changed. You should refresh yourself. Okay, so you model has updated, but there is no way they will be knows that the view model ice updated. So what we could All right, so we can do something very simple festival we can say view Well, appear super back. Do you will appear. And here we are simply going to quantity. Okay, the view will appear. It's going to call the refresh data. This is once this is one cause head off. You did appear that this actually make sure that our today's refreshed. Okay, now here we can simply say how still dark table for you Don Result data now is your own. Okay, you're gonna see Ba have So let's disable all the checkpoints because we can see our tests be ended. Just fine, but let that in. You talk another new one that needs to be I need and save it. Video. So what happened here was basically, if we put their break points back in, I'm gonna and they moved some of the big point. So let's go ahead and check the list off break. Nice fee of seven of them. So do we need in this and no, you need this now. Because how those are you already? Thin bones. So they're getting called just all right. They don't need say context. We don't need get to do that. We need and refresh state of meat and some for oh, at the next bath we need. Okay, So let's go ahead him at another one debugging and think. I think so. You're refreshing. And it's called right. They're gonna continue, uh, get to do this call. Basically getting all the new to this and then we go now are self for road at it. Next bath is self or road at in expat, it's called and the best that we are getting the appropriate to do. Yeah, and this wasn't getting called like, you know, earlier. So that's why our data that was being saved was not being displayed. So that was the reason why you're not seeing it. So I'm let me run into an issue. And he saw how the debugging actually think that he wouldn't is more about getting to the root of Rome by following the court that basically there the coldest taking you and you can actually debug started beeping from there to be so like, you know, everything else is working, but that's pretty clear function not getting called. That's only one recent because we have not refreshing our data and reloading our how did any good they will view. So that's the reason why it happened. So I hope this was help. And out in the next video we're gonna talk about how we can apply a sword order to our left . We're gonna talk about how to compete it tasks and they need to task in stuff like that. OK, Chelsea doesn't next year. Thank you. 10. 10: Hello. No, come back. And in this video, we're gonna be talking about marking our task completed. Okay, so let's go ahead and get started in the last few be. We saw that. How we can actually say were data and displayed on this screen. Very listing all of our to do's now are now there. Can't speak your thoughts, Creator. You want a market complete when users select that. Okay, So, like, always, we're gonna start from our core data layer. So let's go ahead and happen to core Data Manager because that's where we can have to write dysfunctionality first. So I'm gonna right at the top your and create a function complete task. And let's talk what we are going to need from this. So, first of all, we are going to pass that to do that was selected by the easier because we need to know which to do. We want to mark as complete, so I can say to do and, uh, to do so. Then we also need a completion handler because we're now when the task is complete so you can call the completion handler and depending upon that completion, basically marking that that task completed. It's done in the database. We can actually call our subsequent waken, make subsequent changes contorting new weather, like, you know, displaying a strike through our move that back at the bottom or something like that. So that is why we are according could add any completion block again. And this completion market's gonna be escaping, and it's going to take a brilliant as long turn white. Now we are going to once again create request. But this time we're going to create a request that can be filtered. So if you remember that select star from people name there, the problem that condition this were blocked is what we're going to write. So this time we're not gonna be a select aleck star. You're gonna select all the to do. It's basically accepting stable. But we can say we only need to do that, have this idea. Okay, so we're gonna say let request and that Richard quest, by the way, in case for those few who are really observant, um, you must be thinking, if search is safe knows basically, you can get a nose like in on our compositing predict, like know what kind of variables can be. Why are we providing this type with the colon? The reason is for benefit request because it's a genetic type. If you do like this fetter quest on Lee, give to you a general on a special quest object so has to be either casted by Adam or Best is basically to define its type. Is her off leaving it to compiler to referring it Or in first that type based on, like, you know, combined. But you it's not gonna be able to do it system actually complain about it s oh, and here to do object. That's not gonna have all the property that you're looking for. So for that reason, you always have to provide the type after request. Okay, these are like, you know, one of those are cases there. Certain compiler needs to know a little bit more information about the label before it can actually do on big before it can work on it tonight. So request frantic. This is the predicated. Pritikin is basically the very condition and you to believe in this product. It and, uh, you give it a format so format that we are going to hear is I d is equal to and worse than that. So percent at it's basically say there's a strength value that's coming in the perimeter list. And he should popular that remain. Uh, I'd be equal. To What about the values provided during a T that I need. Okay, uh, for some rapid, This is like, you know, another According a bug that's been written there for a while. We're like, you know, every single, huh? Optics that that is created whether you actually tell according that to market optional are not it. The tables are always created as optional. Okay, no, If you had, like, you know, this unchecked. I'm not gonna drink it right now because, like, you know, the older camp from data, So it's gonna have awesome. Thank you know it may have some conflict in it, so But if he had this in check in that case, also the core data when it's going to generate the class is gonna created an optional property. We don't You don't know why, but it does. That Amis were you wanna have Stringer presentation after issue? Any submissively notice a new right eastern, which actually is a function that takes our computer property that thinks I li and converting the restaurant form. So that buildings example everybody should simply say, didn't I d for some rap and then get your i d string, but that our request is constructive. Now all we need to do is call that though your husband and you could say let result is equal to for assistance container. Well, you contact H, and you're gonna provide out of question her neck and, uh, mind the error. So and visibly gonna say, if result not count if further than deal, that means we found something we simply cannot let to do is equal to this old doc. Okay. And, uh, you say to do, uh, completed and equal to true to do doc completed on because we need to actually sent that data built, and then we're gonna call save contacts. So what is their new is basically abating the value to silver to see how your update of record in your core, Dana, you simply I'll retrieve that now from the ultimate you change its object property and called second, since they can't execute track of what we change and then is gonna basically change, make the change in the database, and then months of savings completely gonna call the completion. Adler basically a completion handler could be true of it. This way. Our how to do that I knew to do that we have created is is basically going to get how No going to get seed when you market to be completed. Okay, so next thing we are going to do is, uh we're gonna go back to our you marvel because that's what it's gonna call this core data manager and create in functions. I'm gonna wrote Steve a point and can create any function here complete half and in next. And, uh, it's gonna have gonna think, makes you believe in that. And I think a completion same block signature. It's a bullion don't wide. And then we simply say Celta refresh data must have felt being new data and then begin the same core. Get a manager shared felt complete path and to do the best being supplied, uh, for the index so that you next abuses like and you're simply gonna call completion. So we're gonna return the completion that we have a missing. Okay, um So we're gonna practice confusion here, and that completion minus complete is gonna pass back. And it's gonna just sounds like you, uh, bubble up. Okay. Now, this is going to mark our ah, completion bulk or are, uh, basically, our task is complete. Let me move this refresh data. Uh, okay at the time. And, uh, then actually, we can live in a topic is because our completion block is gonna be called are I think, Lucy on the print trend therapy that's gonna refresh. Assume that's completely competition instead. Okay, next, how we need a place to call this from, So we need a place in the table view where we can actually call this. So let's control over if you have anything, we don't be not handling selection state. So there is a function called did for, like, row at index path. And that's what we are going to provide family bar. And we know that they let to do to do that, does being basically sh elected. So b m dot to do at index and the in expat. Not remote. Okay. And, ah, here, basically just gonna say table, do you, doc de select the mother de select the role that space like there. So if you notice like, you know, if we select right now, the select selection stays. We don't want that. Like, you know what you want that do. Like some of these electricity. So you on a decent act at the next bath and make it true. So it's like, you know, it looks with a little bit better. Um And then we're gonna say if to do not completed IHS fall. Okay, so if it's not being completed, we need to put that check. So if something has been completed now and use that finance, you don't present this alert controller saying, Hey, Mark, that's complete because that's been already completed. They're going to make sure that that task is not completed already. Then we're gonna write function here are basically the French out here something that they let alert controller you. I alert controller read cycle, and the title is going to be completed. Question one. So we're gonna ask company and because they mark this desk as complete. Did you don't want just could you wanna mark this task is completed and either present style presentation style It was gonna be emerged So lurking uses gonna have, like an alert box, the otherwise action sheet and basically something that's popping from the bottom eyes what the difference is. And then you simply say love control or not add action and you know you need to actions basically too much and is to be shown you I alert action and the election is gonna have to value. There's gonna be yes and no. So, table or that's what it's gonna be, Yes, the stunning is going to be default in the Hendler is something that's gonna provide So, uh, nothing for the a large controller, you know, forget about that. One would be to leave today. So the m that completion complete tasks at index and begin the simply thinking next batter doctor wrote. And where the completion block when it's completed, we are going to say table, he's got reload data. Okay, All right, so there's a lot going back, so let's go ahead and take it one by one. What we need to do is Elder Tyler controller leads actions, basically, those partners that needs to be shown and the first button is yes. When that book in the stamped How you how you want to happen. So when that button Yes, Button it stopped you on the mark. Our task complete. And when that completion it's done Well, actually. Reload. Hearty review To show the newly march back with new properties basically so that the property is gonna be baited. See, yet to be completed, there's gonna be changed to an actual date when the task was completed. Okay. Hello? Um so OK, so that's our first action. And then we can have alert control or not at action. You I alert action. And here we're gonna say the second and it's going to be no column first not complete in yet. And, uh, its value is going to be destructive. It's gonna show the rank red color, but And we don't care about Hendler because enough in action, take any action on it and simply present percent alert Controller animated True. And we can remove everything else because we don't need that. There you go. And let's see you. What are we missing? Are we missing? Yes. We're missing one patent fees. All right. Okay, so All right. So this is the functionality to mark our task completed. Let's go ahead and take a look. Say, if I select as you can see, our ah selection disappeared and stay market complete. Yes, and completed on is changed to physically today state and I could do similar to all the others. Now this Just get miss. How are a big it's gonna work. But one thing is like, you know I want him. I had a little bit more Do this basically Rana strike through thief mark test. So they're obvious that there have already been completed, and then we want to sort our list based on some criteria. Okay, so what I'm gonna do in the next video is we're gonna just look at the sorting. Have you can sort data in the next. We can actually work on how to strike through these completed tests. Okay, so I'll see you have the next video, and we're gonna get started That think 11. 11: Hello and welcome back. And ah, in this video, we're gonna be us looking at how to start our data, and then we're going to see how Oh, begin. Basically, uh, show that strike Who, uh, next for the completed desk. Ok, so that's why I didn't get started. First thing you do is have gone store party. That's so that's actually really simple. Ah, we're going to go to our core data manager in the never be actually retrieving our records , which is get all traduced. We are simply going to create something going and that sort destructor that actually describes how the search sorting should work. OK, so we're gonna first create a first sort so you can actually upend, like, you know, bunch of sorts. So But again, for those who are, well, worse or like, you know who low, you know, like no sequel I know a little bit so I can actually show you how this is done. Select star from table name There, like these equal Do something. I think it's order by and, uh, you stay main e mail. He's just like, you know, something random, uh, column news. I'm actually thinking, uh, name email and I Okay, so what's gonna happen in in this case? Ah, how we get the record from the cabling. But in sequel, what's gonna do is gonna ply the sold order on these columns. So it's gonna say order by name first. And once the records are sorted by name, start them by email on the top of that, and then sort them by i d at the top. OK, so so your name listed can appear first, so the others are gonna be sorted by name and then email in the 90. So that's what this sort order means. So you can actually achieve similar thing in core data by simply saying, like simply creating making a whole bunch off, sort of tripped descriptors. So So you think First start? No, it sort descriptor for he and his give it like sending a descending. So he is really easy to find. Just keep at and ah, you put objectively property of you since and man Celtic Tous inherited from anything which is a victim. See, So you can you get access to the all year properties that are there creating for you to do so. He can say to do do on. So first start if do you now on basically the date on which the task is do you and then ascending is true. So that's the first order. And second start his So what is get her? Oh, saying things keep after to do don't complete and offending fault. Okay. And third. Sorry. It's and it's sort descriptor. That's a game that keep have to do completed on offending. True. So now you have all the sort orders are defined. The united I named them 1st 2nd and third. So? So it's clear for us, Like you know, how we gonna actually put them in the array. And the way you put them in the array is how they're started. Right? Okay. And that's it. So that's all it takes to basically right? It's sort order. And as you can see, Oliver completed that. Have bean moved down. Okay, so that is how you actually provide the sorting. Now you're gonna make our completed, ask a little bit more obvious how, like originally. Um, So they're making and they have strike through and everything. No. Before we actually create that strike through, we need a helper function. All right, extension on the strength that can actually achieve that strike through property so apart about an aesthetic beauty strength, you must have used an effective strength. And that's what we're gonna use. We're gonna create a strike through attribute on the's train, and we're gonna apply that attributes strength. It's refusing text gonna use attribute a text on the label to display that. And you're going to see how if you haven't used it. But we are going to create an extension because we're gonna need that, like in every need that word, but off differently. Says that we can actually put that, like, you know, using the X station. Ah, so I'm going to create in your file And so, like the suit filed and we gonna name this one that's training plan extensions. And now we're gonna create an extension on a string, and we're simply going to create a bunk strike. True. And this, actually you did threaten. It's what It's gonna return, and we're gonna create a TD R string that readers threatening anise, a new table, every business trip so mutable, actually richer string that has different properties. So we can create in this mutable, actually get strength trust from the strain. What you thought? Okay. And then we're gonna add attributes to it. So NTT our strength and a tribute, okay. And the accurate hard that we want. Actually, they attribute that you on the added that strike through some cozy and attribute it strange . Doctor Key, strike two style. Okay. And, uh, style the band. You is basically the thickness off the strike through lines from bigger the value to good line. So you aren't, like a two point for that. And then and its range is agree for how, for how much off the strength you're not provide best right through. So we can actually strike to the entire strength. So we can simply say and this range, location and land is what we need in location is gonna be hero and length is gonna be attributed string, Dr. Okay. So are we missing something? Have you ever seen the returns treatment? Which is fine. No grant a. So all corporate entities are balanced. That is a little how Begin. Try to are once you have. Ah, Once we have done that we need to do is we need to go into ourselves and here in the past, Uh, due date, right? Um, like, you know, when the complete it is true, the name is very up setting the name, that text instruction in text, we can say attributes next. This is the This isn't their property. That label has, and we can reprise the supplies in both string here, you need to pass at the beauty string. So we're gonna say strike to great so we can get this straight through straight from here. I and this is strike two. It's the same function we just created and that virgins and such a big strength. So that's why it is fine receiving that I leave for the Dudek pregnant the same thing after you detect and dab. First, we are going to get our string and then again for Matic. And then after that, we're gonna strike through And that this public So the due date, we cannot lead that as unstrung because, you know, actually showed the completed it now in this guy. Then run this and then you can see our how data is marked and as a strike through. So let's go ahead and lock another one, and that's strike itself. Now if we add another and say that Oh, well, that's not expected. So as you can see, um, this is, uh, created as, ah strike through, although yet to be completed his then that means it's not completed. But still, it's showing that basically that task has being completed. So that's West Mount strike now. This is a yeah, there's a great she's spark and reason this is happening. It's because of the reusable. Ah, fell. So this DT reusable fell returns a text that's actually a written a cell that's already bean being used in this In the full service initialize the other properties are step now the problem Let me run into with attribute text it. You cannot simply empty it. So let me try the show. You know what I'm talking about? They frankly prepare for abuse. This is very you recently thing and you say half breaking up a little. Her name labeled text is the ultimate empty past due date no pics eight people to empty and that completed eight of texting people to empty if you need. If you do the three and you call prepare for used super after a peppery youth. Quite a run This You would think that like enough for for the reasonable the aspect. Like, you know, it's basically gonna empty it. And as you can see, like, you know, and relaunched it actually show Fine. If he adding you tough, That is most again. And it asked and not to be did our attribute instrument. So that is actually what the problem is. The problem is that attribute Just string. I mean, that is not cleared like this. Okay, use actually remove activated strength from attribute text, and the weight of number has basically created another function in the in the strings. Okay, so the way we can do it, we don't simply they removed Act three of beauty next and after you beauty. Alright, we get strange. Okay? And out here, really, and I once again create plan 80 are strain, both mutable. Had it with strength and then you're gonna create it from the strange. So and we can say at to reject strength out effect attribute our interviews to empty for range attributes string. Okay, hand and you returned Theater butchered string. So you're removing all that abuse from that street. Now, if you go back, thank your cell and ah, long grid calling or emptying yourself. You also. Why don't you rest when you want a gritty and say that name label that attributes its text Eagle two F name We rolled out text dark remove tax imputed text. Okay, so you have to do the same thing for you did. And so this is going to take care. Basically that problem. What? That bug then was introduced. So let's go ahead and how? Get another one. See? And as you can see, this is Mark as, um as just, like not being complete. And I need the market complete. Now go back. Had AEG another well, and, uh, and it and thats being having. Okay. All right, so here's a challenge for you, and, uh, you can actually achieve this one robberies, so I want you to actually try not. What you're do is, as you can see right now are task and they're and they're being They've been started now what he need to do, and you need to basically create a new faction and move all the completed death into that section. so that section can be collapse and stuff like that. On the only favor, the complete a task they passed that needs to be completed or open tests and stop. Okay, so that's a challenge for you. You might wanna actually take a chance on it, but we're going to continue to develop and finish the fab. That's one aspect that I want to leave it to you to try it out, Booth question of ST Channel. Help the community out and, like, you know, work collaboratively because that's how you gonna basically learn more. So the farm leaving it as open challenge for yes. Okay, So in the next video, we are going to basically work on the religion because our Leicester's getting rather long , and I want that we call the completed bath. So let's go in and see how we can do. We can perform delete on in courting that. So we're gonna ah, basically explore that in the next city, OK? I'll speak as an extra hail. Thank you 12. 12: Hello, Mac. Mac. And in this video, we're gonna be talking about a deletion off the test. Okay, so let's go ahead and get started. Are gonna go into our covert data manager. And in a recorded, a manager will create a new functions. And this is gonna be delete, huh? Okay. And then attack is going to take a couple of things for stripped down take to do, and it's gonna have completed that, right? Okay. So similar thing how that we always do. First, we're gonna three at the request, and this sort of question is going to be a type. And this French request off tights do strong to do that. Okay, Are there were going to create a president and predicated, basically, you want to get away to search record, predicated, And, uh, in this predicate with format, once again, we're gonna look for i d is equal to percent. That and, uh, I d is going to come from to do. Done I see done. You know, the strength. Okay. And, uh, then we're gonna perform the suffrage. So you're gonna say that so is equal to try persistent container docked. New contact start rich you already know this now Any faster request if results count is we re enter them into a year off. That means you have some record let to do It's equal. Do his old don't. But okay. And there's a perception container that you contact Start the leak that to do And that's how you delete and you simply say saying contact and call the completion feature. Now we need to catch and simply that again. So catch in that the owner of you we report Okay, so now we are They tells a second. See? Rather really the surf Take the position container around of you context and say I believe this. So to simplify that seeking simply, uh what you can do it. Uh you can say let context is equal. Teoh This guy here context French and it's been a last year. They contact context on the week. Same thing. Now let's go to our view model And in our view, Mom, you on actually creating a new fracture? The leak task. He and mistake is gonna take an index and completion. Hey, now, here we are something gonna say Core data manager about shared the elite Taft and against a two news, uh, from the index. Get that to do hand. Whenever you complete that, he simply say cells down for fresh data and all the completion to be true. Okay, Because you're gonna handle that completion so you can refresh the data and, uh, then, um, stand and the other list you control rocks A basically there to do list controller. Don't handle that, Belichick. That's like Billy. So if you're trying to swipe right now, nothing happened, actually, because we're not handling that situation, that elite are the context for our people. So let's go ahead and do that. So it's called anything so so anything style. So basically, just say anything style, and it actually gives you this override that that needs to override for the delegate. And they say, like, you know, what kind of testing started looking for. So for you say, if editing is equal, equal doctor elite, Okay, In that case, we wondered elite are something okay, Just by ending this, honestly, that they will be give stuff our ability to stripe in the wheat. So with this gets a police say we have got delete in that sense, basically next that Doctorow the completion is basically done. Um, free throws and this is how you do it. So once you have the legal from the deer SOS, that's when you delete from it. It will be and you stay now, delete all the roads for this the next back. We only have one with the animation automatic, and that's what it So that's all it takes to basically show that flight menu and, uh, basically delete the role. So let's go ahead and get this one. No, I didn't really This one, That's quite a little He's this on. And yes, So let's dragon relaunch. And as you can see, all from illegal items have bean disappeared. So that's how you actually performed late in code data and add side to delete for Shanti interior, they'll view in the next video. What we're gonna do is we're gonna wrap up by giving this navigation a little bit flat. So if you remember, in our original app that you soft we had this nice background this custom background for the navigation controller of it White as like you know, the status bar and custom foreign floor for this title and stuff. So we're going to do all that? I began a basically take care off like you not adding a little bit more nice. Look to our, uh, ambition controller. And that's her speaking are doing rap. Get some. See God in the next video. Thank you. 13. 13: Hello. Not Mac and intensity, and we're gonna be giving a little bit nicer. Look to our on abusing controller. So let's go ahead and get started. What I've done is basically physical. I have important this custom background and this is just an image. And that looks like this in the video, and it's going to repeat throughout service was gonna do so added that he can just like a choose your own image if you want or what That's this project how with the resources So you can actually use that image if you like. OK, so with that sex, that means it's already set. Now we're going to go back. And you are, Yeah. I mean those storyboard and, uh, select the navigation controller. OK, Still, we can select our navigation controller, and here there's some property that you're going to say. Okay, so first of all, you gonna set the style to black so it shows white, um, has more and next. Ok. Ah, the bar tent is basically something that you are said to white color. Okay, that's another thing. Ah B on the set are I knew text attributes to be Avenir next. Okay, So let's click on it. And this is about all the fun shows custom. There's no way for us to select, like, not gonna fall into this. So what do you need to do is you deflect Stan first and then custom, and it's gonna change the context. Basically, the sample is commercially differently and that the next gold bugs and this expo exportable have not won. And despite still like this, So I'm just amazed I cannot tell you much. So there are phone side that we're actually looking for is not 17. So you can actually said it 20. Okay. And, ah, let's get instead of regular Let's give it media metallic. How are we gonna, I think, done here. And, um, for the 10th color is what basically shows up for the color stuff, the button and stuff like that. So if I run the project right now, let me show you what that looks like. So it's gonna basically show you white. So there's no Donald Baxter. But the reason actually, we're setting at whites that we can actually, um, set a background to this. Okay, And ah, standing background is actually something that you're gonna create it in the helper. So let's go ahead and go to We don't have any place for a helper. Still must create a new group. Cold head, butters heavy and we're creating you. Plus called Now bar. Okay. And here are you gonna basically that's all import from you Like it and we're gonna face static change now are appearance and we can't They are button I them appearance to be you I bar But in item dot appears they're gonna get the marble night of appearance first and then we're gonna stay part for tonight about a pianist that back. Thank you. So do you want to set the back, but to be something be weak and set the back button? Uh, if you select right now, Um, Sorry, uh, if you played this back button shows this back, we don't want to show that, you know, show like a lift I can't sell begins everything. That back button back on image. What's that back button? They're gonna make, uh, like Britain back on. Miss this one. And here you can create a you, Mitch, and you can create your language from system name and consider police of my list. The doctor bash of it. So list dot dot Dash is basically a as a symbol. So if you have ethnic symbol app on your machine begins a police search for lift, and you will get, like, you know, this start Ashley, start playing with the stuff Bullet dark, invent stuff like that. Okay, so as you can see, Yeah. So, um actually, like, let's start bullet in Dent. So let's use that list off. See if you can copy, uh, in the copy that I think we can. No. Yeah, it's gonna skopje that started around that. And yeah, And for state, the state is gonna be normal. And for the Matrix is basically going to be. But you know what kind of fun What kind of like a landscape portrait and that kind of Barbie tricks. So nothing default for default is gonna apply through all of them. Okay, Now, make things going to say is now, why are you okay? So fortunate He stood here and tied a cloth class now far helper. Yeah, Yeah. Now it's my bed. Men we can actually create are now bar a Penis. So we're going to say now appear. And you I now now far opulent. And, uh, we are simply going to Are you in that bar? Are your navigation bar that various objects we need? The object, actually. So, uh, that appearance you're going to get and the first we're gonna create an empty image and you can create an empty made by simply initially, I think. Right, Mitch. And you, in effect, back indicator, Mitch so far, Nor Nam appearance don't back indicator and me do empty image and then love here stuff back in together. Transition math image to empty village. Okay. And then now appearance. No buyer. Okay. And, uh, now appears that bar tent hunger to be you I color. And we're going to get the your eye color from pattern image. You are image. And that's why we re actually going to send that image that we have. Save that for the work at the background for this. Um, so that's that's going to be now ready. Now, this is Oh ah, That's, uh, that's going to be needed for you to actually create your custom edition. So that's going to try this thing and see if we have Mr anything so good. We're app doesn't get and in did finish watching with option before returning True, We simply going to say enough our help change as larvae ins and thats going on trial, Fran. As you can see, we have our, uh, background showing up our custom for me showing up and our system back is showing up back. But but these forms are other. Hard to see. Reason is because you did not that the 10th color, I was actually showing you how the color affects the tinkler discolor. Basically, there blue color that's being knob. That's been the life form that's going to change that and out with that change. Um, as you can see, everything is I think we're looking no much better. Okay, so that's how you actually, uh, add or change your navigation bar by getting the reference. First of all, do navigation bar appearance June, apply navigation bar appearance, change duty to the entire never bar controller, or you can do this like enough for individual re control as well. And for the back button, you simply override by getting the reference to the back. But this also gets the how to get the thing back button for any particular have controller , like, you know, system wide. And you actually over, right that And make sure, like, you know, if that he said empty and transition image. If you don't, this is what happens so you could get your back. But him as the last year custom image. Okay, so that's why I'm your setting this to be in a TV image. Right? So this was just a ah, quick, A little thing that I want to show you guys, um, that you can do to make your app looks like me a little bit different from, like Notre Slaps, but yeah, I hope you guys enjoyed this course and, uh, like a Santa, the challenge is still open, so please try it on. And, ah, most questions from community trying to help me get around to see, like, you know, if you guys contributed out, um and yes. And I hope you guys enjoy the studio course. Santa will come back with more stuff of recent. So thanks again for supporting us throughout. And, uh, if you like the signal, please leave some often. Feedback. Thanks so much