Simple time tracking app.
Running the app
ThymeTraquescheme and a suitable destination.
Running the tests
Running the performance tests
The app has a dedicated Performance Tests bundle. It is disabled by default due to the considerable amount of time they take. In order to run them:
ThymeTraquescheme in Xcode.
- Navigate to
Edit Scheme.... Open the
Testtab in the sidebar.
- In the main section in the
Infopane check the
- Close the scheme editor and run the tests as usual.
Project layout and structure
HistoryEntrystruct, which is the sole model object shared by all the features.
Featurescorrespond to primary app’s functionality bits:
Appcontains the general glue setting up the app and dispatching between Tracking functionalty and the History.
Historyprovides a way to communicate with previously tracked entries / activities.
Trackgives a way to track new activities.
Servicesare dependencies of the main features:
DateProvideris utilized to inject
Dates into reducers. Especially useful with tests.
DateFormatterconfigures and stores a shared DateFormatter in order not to recreate it all the time.
HistoryEntryPersistencehosts the types that handle entries persistence between the app launches.
ReducerProduceris a set of types to make Reducers more OOP (personal preference).
TimeIntervalFormatterdeals with converting seconds into displayable text.
- Thyme icon created by Icongeek26 – Flaticon.