Skip to content

AddMile by Headway Test Task. Book Listener. Using SwiftUI, MVVM, TDD

Notifications You must be signed in to change notification settings

constzz/addmile-by-headway-test-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AddMile by Headway Test Task. Book Listener. Using SwiftUI, MVVM, TDD

Path

  1. Project setup (4 hours) Create github repo, add gitignore, ReadMe file. Add colors, AppIcon, make project use SwiftUI.

  2. 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.

  1. 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.

  1. 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.

TODO:

  • 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

App screenshots (latest from snapshot tests)

Listen Screen

About

AddMile by Headway Test Task. Book Listener. Using SwiftUI, MVVM, TDD

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages