As a developer, you can create applications that allow your users to access data even when the device is offline. Core Data is a way to persist or cache data on a single Apple device. Persisting data in data processing means that the data is preserved to disk. Core Data connects the database with the interface, which makes it possible to save data for offline use cache temporary data, and add undo functionality to your apps. In this video, you will explore what Core Data is and discover how it allows information to flow between the database and interface. You will also learn how to set up Xcode to use Core Data. Suppose Little Lemon has branches in different locations. Some branches serve the chef's signature dish while others keep to a generic menu. With Core Data, you can define the signature dishes in the database and assign them to a specific location. This is because Core Data allows you to define data types and relationships as well as generate respective class definitions. Core Data not only manages the database but also manages and controls the relationship between the database system and the app interface. Unlike other database management systems, Core Data is light, fast, and can manage large volumes of data. It also integrates into Apple platforms and iCloud. Core Data works by defining entities and the relationships between them. Every entity has properties that can be declared with specific types like integer, decimal, double, float, string, data, binary, UUID, URI, and transformable which can be used to create custom types. As an aspiring IOS developer, you will encounter situations where you need to ensure that interface elements respond to any database changes accordingly. Connecting Core Data entities to the interface elements will allow you to achieve that. This is because changes from interface elements are automatically saved to disk in Core Data and vice versa. Entities and their properties are used to store the data that you want to persist. Suppose you have four entities namely location, dish, dessert, and customer and you add a property to each entity like address for location, price for dish, and name for dessert and customer. Once the entities and their corresponding properties are created, you can define the relationships between them. These relationships allow you to define groups of data, for example, restaurant locations that serve a particular dish. You do this by defining a field location in the dish entry point into a location entry. You can also define relationships between other entities like the customer entity for example. Once these relationships are created, the user can search for all dishes served by a particular restaurant location or all customers that ordered a particular dish. It's important to note that Core Data does not use the term query in the action of retrieving data as other database management systems do. The term Fetch is used instead. In the upcoming lesson items, you learn more about how Core Data entities and relationships work. But first, you need to know how to set up your Xcode projects to use Core Data. To begin setting up a Core Data Xcode project, select file new project. Alternatively, you can press Command shift n on your keyboard, then select IOS and app options at the top of the window and click next. Then you choose a product name, for example, MyApp, select SwiftUi for interface Swift for language turn the box use Core Data on and click next. You are then asked to choose a directory to save the project on and click create. A new project is created showing a list of dates and times. Each item on the list contains a chevron meaning that if clicked an item will show details about itself. In an earlier course, you learned about navigation links and navigation view elements. This chevron also lets us know that the items were created with these elements. This new project created by Xcode also shows a plus sign that lets you add more entries and an edit button that lets you delete elements. In this video, you covered a broad view of Core Data and how it can help you persist data and create great apps. You also learned how to set up Xcode to use Core Data. Core Data lets you define data types and relationships and generate respective class definitions. Core Data is a fundamental tool used to engineer memorable apps. In later lessons, you will go into more detail on Core Data to discover its full potential