When learning any new technology I find it beneficial to follow a real world example. In this tutorial series we'll be creating and releasing an iOS application. The application will be created by showing a real thinking process, going through essential steps and providing the motivation behind them. Although every single line of code won't be covered, all of it will be always available on GitHub.
Prior knowledge of iOS development and Swift syntax is needed.
We'll be creating a flight discovery application. The users of our application should be able to:
In the scope of this project we won't be concerned about the source of information. Our application will use mocked flight information data. However, the structure of the application will support an easy integration with any Rest API.
Throughout the series we'll cover these topics one-by-one:
Here is the sneak peek of how the final product will look like. The full codebase can be found on GitHub.
Before we start, it's beneficial to understand how we're going to approach the creation of this application.
Essentially our application should be able to perform 3 main tasks:
We'll separate these different concerns into frameworks for our code to be decoupled and flexible. The primitive diagram of the architecture is displayed in the picture bellow. We'll define data models and protocols in TravelKit
. This framework will contain data fetching protocols, which will be implemented in TravelDataKit
. DataKit, as its name suggests, will be used for fetching, persisting and providing data. User interface will only know about data models and protocols and won't be concerned about the implementation. We'll call this framework TravelFeatureKit
. The entry point of our application will initialize the dependencies required for all the frameworks and present the root view described in TravelFeatureKit
.
In the next part of the series we'll continue by explaining how to create frameworks and setup the base of the application.