Appatomy 101: What’s inside An App?
When you hear ‘app’, you probably think of the program that launches when you tap a icon on your smartphone’s home screen. You might be surprised to learn that many apps are actually made up of many components, some that live on your phone and others that live on the web, that come together to form a single ‘app’. Depending on the kind of app you are building, you might need to build back end servers, databases and web sites in addition to the app code that runs on the phone.
Let’s say you are building a simple alarm clock app, then you generally won’t need anything more than the app that runs on the phone. However, if you wanted to include functionality that allows a user to stream a radio station for their alarm, or to manage their alarms via a web site, then your app will also need a web site, server and database to work. As a rule of thumb, if your app retrieves or stores data on the web (or in the ‘cloud’ as the Glitterati refer to it) then you will likely need to build additional back-end components that the app on the phone can talk to. The exception to this rule is if your app will be plugging into existing online services, like Google Maps, Facebook, or RSS, then your app can usually plug right into them.
Here is a simple breakdown of common components that make up an ‘app’:
Component | Description |
App |
|
Web Site |
|
Server |
|
Database |
|
With this breakdown, let’s now look compare 2 different apps and see which components they each have. For this example, we’ll use the photo-captioning game Bahndr and the frequent flier point management app TravelWallet
Component | Bahndr | TravelWallet |
App |
|
|
Web Site |
|
|
Server |
|
|
Database |
|
|
If you compare the two apps side-by-side, its not immediately obvious that Bahndr is more complex app of an app to build than Travel Wallet. The TravelWallet App exists solely on a user’s smartphone, with no backend communication at all. Every thing about TravelWallet app lives on the smartphone. On the other hand, the Bahndr App requires a Server, Web Site and Database components to be available over the Internet for it to work. Each of those components needed to be built alongside the actual iPhone App and ready to launch at the same time.
If you are designing an app, think about the types of interactions it will have and what/if any additional components might be needed to build your app. Its important because having to build these components in addition to the smartphone will add both to the overall cost of the project and increase the time it takes to build it. Case in point: TravelWallet took roughly 4 weeks to develop end-to-end, Bahndr was a 4-month effort that required multiple engineers working across many different technologies. Apps are much more than what you see on your smartphone, know what components will make up your app.
Bobby Gill