This is a frontend exercise that will give you the chance to see what kind of things we build at JetFuel!
You will be building a simplified version of our main app, the Plug (www.plugco.in). This is the app through which our influencer access our offers, track their earnings, and manage their account. In particular, you will be recreating our main 'offer' feed:
We've spun up an endpoint on our server to return a sample feed of offers as a JSON blob. You can access that here: http://www.plugco.in/public/take_home_sample_feed
Your job is set up an Objective-C or Swift iOS project that calls the sample endpoint and renders feed based on the JSON data returned.
You can find the design and an explanation of each component in this Figma file: https://www.figma.com/file/1exs9yHG251QWdUy2YztUg/takehome_template_ios_01?node-id=0%3A1
If you prefer Sketch, I've also included the same design in a sketch file, in this repository: 'feed_template_react_01.sketch'.
We're giving you 3 hours to make as much progress on this project as possible. While we recognize it will be difficult to finish everything, part of the goal is to see how you prioritize, and how much you're able to get through.
Run the following commands:
cd iOS\ Takehome/
open iOS\ Takehome.xcworkspace
This should open an empty Objectice-C project. Please implement this in the provided UIViewController at 'ViewController.m'. Feel free to add any additional files you need.
We set this up as Objective-C, because our app is in Objective-C. However, if you'd prefer Swift, that's okay too. Just set up your own project in the same way!
The project already has a Podfile set up, so any CocoaPod integrations are fair game.
- Can you add pull-to-refresh?
- Can you handle failed API requests gracefully? Maybe redirect to a 'failed' UI state with a rety option?
- Can you get the videos to play inline when the 'play' icon is tapped?
- What steps can you take to optimize the load time of cover photos? How about the scroll performance?
Feel free to reach out if you have any questions!