Over the last few weeks, I’ve been doing interviews for an iOS developer role in San Francisco. I eventually went onsite to interview with 4–5 companies in the area, but before inviting me onsite, they all gave me a take home assessment to complete.
The take home assessment across all of these companies was exactly the same. The assessment generally involved consuming some 3rd party image API and presenting the fetched images in a UITableView or UICollectionView and I’d generally have a few days in order to complete this task.
Though it sounds pretty simple, to do it well, tests a lot of core iOS development fundamentals.
- Custom Cells
- TableView/Collection Views + DataSource/Delegate
- Implementing Network Layer
- Async Tasks
- Error Handling
- Code Quality & Reusability
- URL Session
Generally, the assignment allowed the use of 3rd party libraries, but it was discouraged. A library — like Alamofire — would be overkill for an assignment like this.
There are several ways of solving this problem and there are further improvements that could be made, but I was invited onsite with every company I interviewed with, so I know the approach I’ll show in the next few posts is reasonable.
Part 2 coming soon!