This programming challenge is meant to provide a programming challenge that is as close to possible to the real-world tasks that iOS developers face each and every day. During the interview we'll ask you about software engineering principles like Big O notation, data structures, MVC, etc., but when the rubber meets the road, mobile developers need to create fluid user interfaces that often have complex controllers behind them, and this exercise attempts to test that aspect of the job.
You can spend as much time on the exersize as you want, but we will primarily be reviewing your commits for the first hour after the initial commit of the iOS project files, which must occur within a reasonable amount of time after we send you the interview question kickoff email.
- Create a new repository and (optionally) copy the contents of this repository to it.
- Create a new iOS project and perform an initial commit at this point.
- As you solve the programming challenge, commit your code as you go to show your progress.
- For an hour after your initial project commit, attempt to solve the challenge. At around the hour limit, be sure to perform an aptly labelled "final commit".
- Send Hathway your repository URL immediately after your time has expired.
Create a simple iOS application that retrieves Instagram's popular posts feed and renders it in a straightforward way such as the following example:
Your result does not need to match this design exactly -- feel free to expand & improve on it as you see fit.Included in the email from Hathway, you will receive a URL that can be used to retrieve popular Instagram posts, and the URL will include a client_id parameter to use so that the URL can be used anonymously. You can get more information about this REST endpoint at (https://instagram.com/developer/endpoints/media/#get_media_popular)
Implement this feature as you would in a typical project, utilizing open-source libraries, CocoaPods, and iOS platform SDK's where you find it applicable to assist you.
In general, we'll be looking at:
- How you structure the iOS application, and that you're using the SDK API's correctly
- Code readability & simplicity
- How much progress you make in the alotted time
- The level of documentation you provide in your code
Don't overthink it! Don't do things differently for this exercise than what you would in a real project -- whatever you produce in this exercise is what we'll expect if we hire you!
Good Luck!