-
Project setup (4 hours) Create github repo, add gitignore, ReadMe file. Add colors, AppIcon, make project use SwiftUI.
-
Listen screen UI (8 hours) Create UIComponents, develop screens using them. Snapshot testing each component та screen, in light and dark mode. Now we do not miss any UI change.
Problems on this step: Disabling animations when making snapshot tests.
- Listen feature (12 hours) Test driving development of AudioViewModel, ListenScreenViewModel. Using AVKit for audio playback, MVVM for UI architecture. Testing ViewModels one by one. Testing ListenScreen (screen playing audio book) in integration: UI + ViewModel.
Problems on this step: fixing edge cases when swiping forward/backward; saving state while toogle is set to read and backward.
- Refactorings (3 hours) Make iOS 16 minimum. Most of the users use current (not beta) and previous versions. Formatting code. Localization to be flexible using new languages in future. Refactoring some code.
- move mocks out of main target code to tests. Use real data and integrate app with data source.
- test viewModel functions that are not tested now
- separate snapshot tests of UIComponenets to separate test and write more test for each with different states
- add SwiftFormat, SwfitLint to keep code clean, readable and following same rules