EasyCount is a simple counting app written in Swift / SwiftUI using CoreData. The app is a work-in-progress project which I mainly use to learn the basics of SwiftUI and CoreData. Feel free to open Pull requests or give me some feedback 😄.
There are two entities in the CoreData model, Counter
and CounterDetail
. The Counter
entity has a name, date of creation, a UUID, and holds a set of CounterDetail
entities. Each CounterDetail
entity contains an 64 bit integer variable for counting, a name and a UUID.
This means a Counter
can be thought of as holding a collection of entities used for actual counting.
Contains the main view to create or delete new counters as well as open the settings menu.
Shows the 'CounterDetail' entities of a Counter. This screen can be reached using from the CounterView
Contains the view for accessing user settings. Check out UserSettings.swift
for preference variable declarations.
Used in CounterDetailView for showing the activity sheet to export the CounterDetails of a Counter to .csv
format.
This contains the mostly auto-generated files used by CoreData.
- Create / Remove / Rename counters containing CounterDetails
- Add / Subtract a user-definable integer amount from a CounterDetail
- Export a Counter to
.csv
- Dark Mode
- Enhancing the CounterView text input (e.g. hide the keyboard on scroll-up)
- Non-glitchy way of renaming Counters
- Sorting of Counters (currently newest first)
- Renaming CounterDetails
- Counter resets (both individual CounterDetails as well as a whole Counter)
- Cloning of counters (maybe with template support)
- Write UI-Tests of the currently available features
- Maybe add optional Counter specific settings
- Maybe add option to go below 0 in counting.