Building a mobile application can be challenging and time consuming. Breaking it down into smaller components and understanding what’s needed to be successful in developing the product is a great place to begin. As an example we took the Instagram app and deconstructed it at a high level to understand what it would take to ship this product.
Instagram allows users to sign in with either a username and password combination or using Facebook Connect to use an existing Facebook account. Both of these authentication methodologies can be employed in building your own application User Interface The screen which first appears when opening the app is the activity feed which shows a list of the most recent pictures from accounts being followed by the user. The app also uses a tab bar interface to allow the user to easily access different features in the app.
Populating the Activity Feed
The activity feed is populated into a table view by loading data from a web server. If the web server application which is being called is written correctly, the app will send a request to get the user’s activity feed and it will respond with the necessary for the app to populate the activity feed. The endpoint being called should support pagination so that the app can specify how many results to receive from the server at a time. The images to be shown in the activity feed are send to the app as URLs where the images can be loaded from and should be “lazy loaded”, meaning that they should only download to the app from the cloud when the user scrolls to it.
A user should theoretically be able to view all images posted by all accounts they are following if they continually scroll down. This is a lot of data for the app to download from the cloud and it will be extremely slow and inefficient to download all of this data at the same time. Pagination allows an app to request a certain number of records from the cloud on a single request. The app will keep track of which records have already been requested and will request the next set of data once the user scrolls far enough down on the activity feed.
An important feature that the instagram app provides is the ability to search for other users and find content from users you may not necessarily know. The ability to seek out new content and connect with other users is part of what makes the instagram app “sticky” and keeps users coming back and is an essential feature for this type of app. All the information displayed here will be retrieved from your backend web application (discussed below).
A custom backend app which will need deployed and be hosted either on your own server if you have access to your own hardware infrastructure, or on a cloud computing platform. Some examples of cloud computing platforms are Amazon Web Services, Digital Ocean and Google Cloud Platform.
The mobile application will make requests to the web application on this server via RESTful endpoints. An example of a request which can be made is for the app to request the user’s activity feed. The server will respond to the app with all the data needed to populate the activity feed on the mobile device. A list of image objects will be sent back to the mobile device. Each image object will contain at the very least an image url, list of comments and image owner name. The mobile application will be responsible for displaying and formatting the data appropriately.
Building your App
Building a mobile app similar to Instagram with a supporting backend web application along with the managing the server infrastructure can be long and costly. At Tappforce, we’ve been building mobile and web applications for the last decade. We’ve successfully implemented several Instagram-like applications for happy customers.