Effectively Developing Swift Apps Before the Backend/Design Is Ready

Caio Zullo
Dec 5, 2018 · 3 min read
Watch on YouTube

In this episode, we start the development of the Image Feed Feature case study.

Learning Outcomes

  • How contracts enable teams to develop independently (even when key parts of the system such as the UI or the backend API are not yet implemented.)
  • Establishing processes promoting detailed documentation.
  • The tradeoffs of the project’s starting point (should we start with abstractions or concrete components?!).
  • How to speed up the development process using macOS frameworks.

Establishing contracts

At this time we don’t have UI designs for the app, and we lack a remote API for serving the remote feed items. We don’t let the absence of parts of the system influence our productivity. We create contracts that serve as boundaries for our system to enable us to continue the development process.

You can think of these contracts as the input and output of the components. For example, we know the specification of a FeedItem model and the remote API response. The remote API response is produced by the remote API (server/backend) and consumed by the RemoteFeedLoader (client/frontend). Thus, the backend and frontend developers can now work in parallel, as the contract they have agreed on describes how they will communicate.

The same holds true between the UI module and the rest of the system. The UI needs an input of FeedItem's (to render on the screen), thus, as long as we describe an interface boundary (contract), we can continue developing in parallel without being blocked by the fact that we don't have a backend or the UI design yet. Once the backend and UI design are ready, we can compose all the modules together.

Finally, since our components will be UI (and platform) agnostic for now, we create a new macOS framework which will help us expedite the development and testing processes, as we won’t need to run the app nor our tests on the slow iOS simulator.

Subscribe now to our Youtube channel and catch **free new episodes every week** and follow the project’s progress on GitHub.

Originally published at www.essentialdeveloper.com.

We’ve been helping dedicated developers to get from low paying jobs to high tier roles — sometimes in a matter of weeks! To do so, we continuously run and share free market researches on how to improve your skills with Empathy, Integrity, and Economics in mind. If you want to step up in your career, access now our latest research for free.

Let’s connect

If you enjoyed this article, visit us at https://essentialdeveloper.com and get more in-depth tailored content like this.

Follow us on: YouTubeTwitterFacebookGitHub

Essential Developer — iOS

Skilled, disciplined and professional iOS software development resources tailored for you. Join us https://essentialdeveloper.com

Caio Zullo

Written by

I love building robust, well-engineered, and beautiful iOS applications and coaching developers to achieve their best potential @ https://essentialdeveloper.com

Essential Developer — iOS

Skilled, disciplined and professional iOS software development resources tailored for you. Join us https://essentialdeveloper.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade