By Daniel Alvarez, alvarez.tech.
About 4 hours.
The game is very small so I decided to use a minimal architecture pattern MV (see more about MV). Definitely if the application had more layers, network, data storage, etc. and each of these parts need to be tested, a more natural choice would have been MVVM.
- Model (1 hr)
- Word (All related to the Word model, including reading words)
- View (1.5 hr)
- WordScreen (UI and screen logic, game logic)
- Unit Tests & UI Tests implemented (1.5 hr)
It was important to simplify the code using the modern features that Swift and SwiftUI gives us. This minimizes the amount of code and files. Less code, less bugs.
I focus on meeting the requirements of each Milestone. UI, UX was secondary as it was not mentioned in the requirements.
As a game, it is important that it is attractive to users. I would have added animations, better design, colors, etc.
Also prepare the application to scale it big by perhaps selecting other patterns and making it more testable.