This repository contains the technical test required for the iOS role in Yoti.
Document version 1.1.0
Our experience has shown us that there are many cases in companies where a solution is implemented without proper technical design and review. What we wanted to achieve with this exercise is to create a rather bad project and simulate such a situation. What we would like from you is to identify the issues and resolve them.
Please read the following instructions before you begin the exercise/test. In case you have any questions don't hesitate to contact us.
For the completion of the exercise we are expecting from you to do the following:
- Clone and commit the project locally
- Create a patch file with your changes
- (Optional) In case you would like to provide further expanation on your solution you can attach a separate document in PDF format.
Please avoid doing the following as they will get your application disqalified
- Fork the project.
- Submit a Pull Request on the repo.
- Comment on any of the issues or Existing Pull Requests.
- Submit a solution made by someone else.
The application is a rather simple one. It consists of one screen and it's divided in two areas. Each area should display in sequence an array of 4 images.
The images we would like to load are the following:
[
"https://c1.staticflickr.com/6/5615/15570202337_0e64f5046e_k.jpg",
"https://c1.staticflickr.com/4/3169/2846544061_cb7c04b46f_b.jpg",
"https://i.redd.it/d8q1wkgu1awy.jpg",
"http://www.kapstadt.de/webcam.jpg"
]
// Images under Creative Commons
// Images attributed to (in order) https://www.flickr.com/photos/_torne/
// https://www.flickr.com/photos/chrisyarzab/
// https://www.reddit.com/user/lalien42/
// http://www.kapstadt.de/
The exercise is described under the issues tab on the Github project. Every issue will contain instructions on the specifications and requirements. You don't need to deliver each solution separately. It's perfectly acceptable if you prefer to deliver a result that contains the fix for both issues.
What we would like from you:
- Re-implement the project as if the feature was given to you.
- You are not requested to implement a completely different design unless you want to. However the UI elements implemented should be flexible enough to be re-used.
- Don’t use any external frameworks. We would like to see your problem solving skills and a third party framework is not going to help.
- We completely understand and respect your time so in case you need more time, please email us.
- Don't consider this as a speed contest. Quality and Speed should be balanced and we definitely prefer you taking the full allocated time and send us a better solution than rushing a solution that may not be optimal.
- Send us your commit logs attached with your answer.