The Feed API challenge with swift

The Swifty Challenge was started by iOS engineer Michał Jankowski. The app makes it easy for developers to create apps that will use the feed API introduced in iOS 9 along with other important features like 3D Touch support and autocomplete text boxes. But first, there’s a lot of work ahead of them because there are many different APIs involved! This is where “Swiftly” comes into play: Swiftly helps you set up your feed using these available APIs, so you can start building your own awesome apps without battling all the complexity yourself.

One of the most exciting new features on iOS 10 is the ability to natively support third-party keyboards. With this, apps can finally leverage a feature that many developers have been begging for years: using custom keyboards in their app. However, with great power comes great responsibility. For every success story there are dozens of stories about buggy or poorly designed implementations that break at random intervals across major platforms like Android and Windows Phone. To get around these problems, Swift has developed its own feed API which provides an alternative way to communicate with certain types of 3rd party apps while still supporting Apple’s keyboard system behind the scenes if needed..The “swift coding projects” is a challenge that has been released by the Feed API. This challenge is to make an app that uses the Feed API and show it off at Swift’s booth at WWDC.


Now is the moment to put your knowledge to the test!

To load a collection of photos from a backend, you must implement the RemoteFeedLoader.

Your implementation must have the following elements:

  1. Create an array of FeedImage: to comply with the protocol.

  1. The following is the backend contract:

Image Specs for Remote Feed

Property Type
image_id UUID
image desc a line (optional)
image_loc a line (optional)
image_url URL

Contract for payload

RESPONSE NUMBER 200 “items” means “things.” [“image id”: “a UUID”, “image desc”: “a description”, “image loc”: “a location”, “image url”: “https://a-image.url”, “image url”: “https://a-image.url”, “image url”: “https://a-image.url”, “image url”: “https://a-image.url”, “image url”: “https://a-image. “image id”: “another UUID”, “image desc”: “another description”, “image url”: “https://another-image.url”, “image desc”: “another description”, “image url”: “https://another-image.url”, “image id”: “yet another UUID”, “image loc”: “yet another location”, “image url”: “https://yet-another-image.url”…]


The purpose of this exercise is to familiarize you with the TDD flow.

We’ve given you the tests you need to lead and verify your solution. By implementing the load method in the current RemoteFeedLoader class, you must pass all of the tests one by one.

  1. Fork the challenge repo’s most recent version.

  2. Open the project FeedAPIChallenge.xcodeproj.

  3. The project is divided into two primary folders:

    • The production types, including the RemoteFeedLoader and dependencies for requesting and loading the feed remotely, are stored in the FeedAPIChallenge folder. To implement the load method, just update the RemoteFeedLoader.swift file.

    • The test cases are kept in the Tests folder. To implement all test cases, just edit the LoadFeedFromRemoteUseCaseTests.swift file.

  4. Validate your implementation using the Tests/LoadFeedFromRemoteUseCaseTests.swift file. Remove the comments and implement one test at a time using the TDD method: Pass the test, then commit and go on to the next.

  5. Run all tests with CMD+U when building your solutions.

  6. Create a Pull Request from your branch to the main challenge repo after all tests have passed and you’ve finished implementing your solution.


  1. Every time you add/alter the behavior of your system or reorganize your code, try to commit your modifications.

  2. Aim for detailed commit messages that explain the aim of your contribution, allowing other developers to follow your thinking process and comprehend the changes you’ve made.

  3. The system should always be in a green state, which means that all tests should pass in each commit.

  4. There should be no warnings when the project is built.

  5. The code should be well-organized and simple to understand (e.g. indentation must be consistent).

  6. Use access control wisely, labeling any implementation details that aren’t referenced by other external components as private.

  7. Aim to produce self-documenting code by naming your components in a way that provides context and depth, rather than relying on comments to explain things.

  8. Make an effort to create a clean solution since it will make a great addition to your project portfolio!


Visit Github for further information.

The “recipe-app ios github” is a project that uses the feed API to create an app. The challenge with this project, is that it’s written in swift and you need to use the swift playground for it to work.

Related Tags

  • ios projects for students
  • swift student challenge
  • beginner swift projects
  • cool xcode projects
  • cool ios projects