A Simple time tracking app for iOS
ThymeTraque
Simple time tracking app.
Supported Platforms
iOS
Running the app
- Open
ThymeTraque.xcodeprojin Xcode. - Choose
ThymeTraquescheme and a suitable destination. - Click
RunorCmd+R.
Running the tests
- Open
ThumeTraque.xcodeprojin Xcode. - Click
Product>TestorCmd+U.
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:
- Choose
ThymeTraquescheme in Xcode. - Navigate to
Edit Scheme.... Open theTesttab in the sidebar. - In the main section in the
Infopane check theEnabledcolumn ofThymeTraquePerformanceTests. - Close the scheme editor and run the tests as usual.
Project layout and structure
Modelcontains theHistoryEntrystruct, 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 injectDates 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.Loggerdoes logging.ReducerProduceris a set of types to make Reducers more OOP (personal preference).TimeIntervalFormatterdeals with converting seconds into displayable text.
Attributions
- Thyme icon created by Icongeek26 – Flaticon.