Android Development iOS

Mobile Apps - Behind the Scenes

February 14, 2017

Our typical mobile app actually consists of three different pieces of software. Many times, the most visible portion of a mobile app project is the software you have running on your mobile device. However, that app is often just a piece of a larger ecosystem, which all must work together to provide the necessary functionality. Below we’ll discuss a typical architecture we would implement for a client’s mid-sized project.



The backend system is the brains of the operation, and it usually lives on self-hosted servers or in the cloud. This is where most of the data the app uses is stored. The backend component itself is made up of multiple pieces such as a data storage system, the application code, or a job runner. In our standard system, the backend talks to the other components using an application programming interface (API).

Common Responsibilities

  • Storing data
  • Running background tasks
  • Sending Push Notifications

Common Technologies We Use

  • Firebase
  • AWS
  • Heroku
  • SQL
  • Python
  • Java

Admin Frontend

Users utilize the web application to manage data and perform administrative functions. Depending on the requirements and how the system will be used, this may sometimes also include all the functionality present in the mobile app. The web admin component interacts with the backend system through the API. In most cases, it never talks directly to the mobile app.

Common Responsibilities

  • Managing data
  • Administering user accounts and permissions
  • Viewing statistics and analytics

Common Technologies We Use

  • Angular
  • S3
  • Javascript/Typescript
  • HTML

Mobile App

Finally, we get to the mobile app. After all that work, the mobile app is typically seen as the main user interface in many of our mobile projects. Like the web admin, all communication is done through the backend API, but the app may connect to many other systems (e.g., Apple’s push notification servers, Google Maps, RSS feeds) to provide all the functions a user needs.

Common Responsibilities

  • End-user functionality

Common Technologies We Use

  • Swift
  • Kotlin
  • Objective-C
  • Java
  • React Native
  • Xamarin
  • Ionic
  • Cordova

General Principals We Consider

  • We often push as much functionality to the backend as possible. This allows a common platform between all other components (e.g., Android App, iOS App, CMS, etc)
  • We pick the best component for each requirement. In some cases, all the system functionality needs to be present through the mobile app, but in many cases, the administrative system work is better suited to a web admin. This allows administrative users to control the app more efficiently and take advantage of the additional screen space a desktop or laptop provides.

Wrapping It All Up

There are many ways to architect a mobile app, and most of the decisions made during that process depend on requirements and budget. The system presented above is a good start for many mobile apps, and it allows the system to grow and scale to meet future needs.

Joshua Hulst
Joshua Hulst
Co-founder & Managing Partner

Stay in the loop with our latest content!

Select the topics you’re interested to receive our new relevant content in your inbox. Don’t worry, we won’t spam you.

The Measure Of Success: Staying On Track From The Very Beginning

The Measure Of Success: Staying On Track From The Very Beginning

July 6, 2020

Any successful project begins with a clearly defined problem to solve (Are You Solving the Right Problem?). Project stakeholders need to be able to articulate the overriding challenge succinctly from the very start. (Spoiler: this often involves narrowing your vision, and may include…gasp…removing functionality.)

Read more
The Future Of The Healthcare App: New Ways To Engage Patients And Doctors

The Future Of The Healthcare App: New Ways To Engage Patients And Doctors

April 1, 2020

It wasn't until the recent events surrounding COVID-19 that I began to consider how apps can help improve the healthcare process. As someone who is purely an app user (not a developer), I decided to use some of my social distancing time to research healthcare apps and better understand where the opportunities lie.

Read more
Time Check

Time Check

June 6, 2019

Read Karl's blog post about an interesting development challenge related to time.

Read more
View more articles