Sofia Chevrolat (June 2021)
NB : This project has been carried out for the Slumber Group's Challenge.
This app contains a single view controller with the following views and functionalities:
Views
- A red square in the top left corner
- A white rectangle in the middle of the screen
- A purple rectangle in the white rectangle
- A blue square in the bottom right corner
- A timer in the bottom left corner
Functionalities
-
On tap on the white or purple rectangle:
- the white and purple rectangles resize
- the timer restarts
-
In landscape mode, the purple rectangle disappears.
-
The app has been localized to French and uses DateComponentsFormatter as much as possible to garantee the correct locale presentation of the timer's digits.
-
The app supports the following accessibility settings:
- Voice Over
- Dynamic Type
- Bold Text
Testing
The app comes with a set of tests and UI tests to validate its behavior.
- Open the project in Xcode and run the code.
- Run the tests
NB: A special UI test case has been created with the name "DeliverableScenarioInAction.swift", to enable easy visualization of the requested test scenario, asked to be delivered as a film in the requirements.
Running this UI test will actually execute and display the scenario in the simulator.
All requirements as expressed in the attached document have been respected in terms of:
Functionality
- initial positioning of all the views
- correct resizing of the white and purple rectangles on tap
- restart of the timer on tap
- localization of the app's content (to French) using a Localizable.strings file
Programming Concepts and Techniques
- Composition
- Object Oriented Design (classes, inheritance)
- Protocols
- Auto Layout with Safe Area
- Trait Collections
- Accessibiltiy
- The code follows an MVVM architecture
- Tests and UITests have been implemented with a 88.8% coverage as indicated by Xcode