
Build a color-coded to-do list app inspired by the clear app, with list creation, item management, and local persistence using core data and realm offline.
Subclass a table view controller to build a to-do list app. Configure storyboard with a prototype cell and reuse identifier, and implement the data source methods to display the items.
Implement table view delegate methods to handle cell selection, print the selected index, and toggle a check mark accessory using didSelectRowAtIndexPath.
Create a to-do list feature by adding a bar button item that opens an alert with a text field, appending input to the data array, and reloading the table view.
Understand why persistent local data storage matters as an app moves through its life cycle, including background, to prevent data loss when it terminates.
Use user defaults to persist data locally in iOS, storing a to-do list as a key-value array and loading it on launch to populate the table view.
Discover how user defaults provide simple persistence for small data in iOS, storing booleans, numbers, strings, arrays, and dictionaries, and why they are a singleton, not a database.
Explore swift singleton patterns, where a single shared instance, like car or user defaults standard, persists across classes, enabling consistent color state and centralized access.
Create a custom data model by defining an Item class with title and done properties, replacing the array with Item objects for table view and using reloadData to reflect changes.
Learn to shorten code in Swift by using the ternary operator to set a cell's accessory type based on item.done, choosing between checkmark or none.
Refactor the project to MVC and attempt persisting items with user defaults, revealing that custom objects cannot be saved as a property list and suggesting Core Data as the solution.
Understand iOS sandboxing, which isolates each app in its own protected environment and prevents cross-app data access, with documents backed up to iCloud or iTunes.
Learn to replace user defaults with a custom plist save system by encoding an item array using a property list encoder, writing to the documents directory, and handling errors.
Decode and load your to-do items from a plist using a codable model, encoding and decoding with a property list encoder and decoder to persist and restore item states.
Move from single-table storage to relational databases by modeling products, buyers, and orders with relationships, and review Core Data, SQLite, Realm, and simple storage options.
learn how to set up core data by adding a data model, matching the persistent container name, and understanding the context and sqlite storage.
learn to save data with core data by initializing a core data item with the view context, saving the context, and persisting items to the data model.
Learn to view your Core Data sqlite backend by locating the data model sqlite file in library and application support, then open it with datum free to inspect Z item.
Explore core data fundamentals, including entities, attributes, and NSManagedObject, and learn to use a context and persistent container to perform CRUD operations in iOS.
Fetch items from the persistent container with an nsfetchrequest via the context, populate the item array, and drive the table view data source.
Learn how to update Core Data records by toggling a done attribute via the selected NSManagedObject using indexPath.row, and persisting changes with context.save().
Learn to delete items from core data by calling context.delete on the selected NSManagedObject, then save the context to persist changes and refresh the user interface.
Explore querying Core Data using a fetch request, NSPredicate, and sort descriptors to power a dynamic search bar in a table view, with case-insensitive results.
Dismiss the search bar and revert to the full item list by calling resign first responder and updating the UI on the main thread with Grand Central Dispatch.
Explore modeling category-item relationships in Core Data, creating a category entity with a one-to-many relationship to items, and implementing add, save, and load operations for a persistent to-do app.
Implement a category view controller using Core Data to fetch, add, and persist categories, populate the table view, and refresh data after saving.
Implement table view delegate methods to navigate from category to the to-do list, passing the selected category and loading only its items with a predicate.
Learn how to persist data with Realm as an alternative to Core Data in iOS. Set up Realm with CocoaPods, define a Realm model, and perform basic create operations.
Migrate from core data to realm by creating category and item models, defining a forward list and linking objects for relationships, and persisting categories with realm write and add.
Learn to fetch and read data with Realm in an iOS app, replacing core data, using Realm results to load categories and items, and apply nil coalescing and optional handling.
Update to-do items in Realm by selecting a row and toggling the done property inside a Realm write block, handling errors, and reloading the table view to reflect the change.
Learn how to delete items from a Realm database in iOS by tapping a row to remove to-do items, using Realm's delete method within the crud workflow.
Query a Realm database by filtering items with a search bar using predicates and sorting by title. Add a date created field and learn migrations for Realm.
Switches from core data to Realm, refactoring category and item models as Realm objects with dynamic properties and relationships, and updates views to fetch, display, and save data via Realm.
Implement swipeable table view cells with the swipe cell kit library via cocoapods, wire up delete actions, and persist data with realm to manage categories in your todo app.
Create a swipe table view controller superclass to share swipe to delete between the category view controller and the to do list view controller, using override and update model methods.
Learn to implement swipe-to-delete by inheriting from swipe table view controller, use the superclass cell, and delete items from Realm in update model at index path.
Color table view cells with random flat colors using the Chameleon framework, remove separators for color bleed, and persist these colors with Realm so they stay consistent across launches.
Persist a color property on category as a hex string, assign a random hex color on creation, and display category colors with a default when missing.
Create a gradient table view by darkening each row's base category color to form a top-to-bottom gradient using the chameleon framework, with contrasting text, and persist the color with Realm.
Update the navigation bar to a large title and apply the selected category color to the bar tint and search bar. Set the view title to the selected category.
Do you have an idea for an app that needs to save user data locally?
Do you need to learn about Core Data for your work or business?
Are you looking to brush up on your iOS Development skills by learning about new technologies such as Realm Database?
Then this is the course for you!
Join me as I take you step-by-step through building a to do list app that's like the Clear app.
Along the way, we'll cover all the essential topics such as:
and much much more...
Take a look at what other students have been saying about this course:
"I am about a third through this course and I have learned so much. This course is worth way more than what it cost but I'm thankful prices are low or I might have passed it up in the first place not knowing what I would get. I have used a couple Udemy courses and countless youtube tutorials. This is the best course I've ever took." - Jeffrey Nelson
"The course offers interesting concepts coupled with a teacher that explains things clearly. You get to make a bunch of interesting apps and expand your skills. Thanks Angela!" - Megan Eding
"Clear tutorials, the lecturer explains everything well. It is one of the best courses I have participated in on Udemy." - Mark Garcia
"Angela is connecting the missing dots for me... " - Tom Colenbrander
What are you waiting for? Join the course today!