Skip to content

fail-b/todo-app

Repository files navigation

Todoey 📝

Todoey is a simple, yet powerful task management app. This project was developed to master various local data persistence methods in iOS development, ranging from basic key-value storage to advanced relational databases.

This is an educational project focused on data architecture and local storage solutions.

🚀 Key Learning Objectives

Throughout this project, I explored and implemented three different ways to save and manage user data:

  • UserDefaults: Implemented basic persistence for small settings (like app theme or simple arrays).
  • Core Data: Mastered Apple’s native persistent framework. Learned how to create Data Models, perform CRUD (Create, Read, Update, Delete) operations, and use NSFetchRequest with NSPredicate for filtering data.
  • Realm: Integrated a third-party mobile database. Gained experience with Object-Oriented databases, handling relationships between categories and items, and writing clean, concise code with Swift's modern syntax.
  • External Libraries: Used CocoaPods (or Swift Package Manager) to integrate Realm and other third-party tools.
  • Data Searching: Implemented search functionality using UISearchBar and filtering logic for both Core Data and Realm.
  • UI/UX: Worked with UITableViewController, custom cells, and dynamic color libraries (like Chameleon) to create a clean, user-friendly interface.

🛠 Tech Stack

  • Language: Swift 5
  • Framework: UIKit
  • Storage: Core Data / Realm / UserDefaults
  • Dependency Manager: CocoaPods
  • Architecture: MVC (Model-View-Controller)

⚙️ How to Setup

Since this project uses a private API key, you will need to:

  1. Clone the repository.
  2. Get a free API key from OpenWeatherMap.
  3. Create a Keys.plist file in the project root.
  4. Add a key named APIKey with your API key as the string value.

Contact: fail-b

About

A training project for practicing working with databases

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages