So you've come up with a sweet new idea for a computer program that organizes your whatsits and connects them to your whateverthehecks in ways that no one has thought of before. Genius! People are going to love this idea! It's revolutionary! Now you just need someone to make you an app to get this beautiful brainchild of yours out into the world.
Ok well hang on a second, you want users to be able to access it on their phones, but they also need to be able to access it on their desktops. And it needs to use a camera to take pictures. And the whole service is subscription based. Does that mean you need an app? What about a website? What's the difference and how do you choose a team that can translate your vision into a concrete product?
First things first, let's take a deep breath. It's easy to get lost in the wild world of tech requirements and terminology. The term “app” gets thrown around a lot these days and it's hard to tell what exactly it means. Well first of all, as you may already know, “app” is short for application. This is a super generic term that refers to a software application, or program, designed to perform a certain task or set of tasks. Not very helpful, right? Welcome to the world of tech-related business jargon.
The important thing to note is there are a few different kinds of apps, which all vary slightly from the traditional “website”. In order to choose what's best for your shiny new idea, it's important to know your options .
This is what most people immediately think of when they hear the word “app”. A mobile app is any software application that is specifically programmed to target a mobile operating system. These are the apps you download to your iPhone or Android device.
Mobile apps are great if you know your audience will constantly be accessing your app on the go AND will need to use one or more of the mobile device's hardware components (like the camera, accelerometer, fingerprint scanner, etc.). Mobile apps offer conveniences, but come with their fair share of development headaches. For example, if you'd like your users to be able to access your app on both iPhone and Android devices, you will likely need two separate apps to get the full functionality you desire on both devices. This leads to increased costs and dev time.
It's very important to carefully consider both your hardware and software requirements when deciding if a mobile app is right for your cool new idea.
A desktop app is pretty much exactly what it sounds like: an app that users run as a stand-alone application on their desktop computers. This might be what comes to mind when you think of traditional “software” or a “computer program”. Like mobile apps, desktop apps are specifically programmed for a single operating system and while they may occasionally use an internet connection, it is often not required.
Desktop apps used to be the standard for computer software, but there has been a growing trend of companies moving their products to the web, and with good reason. As mentioned before, desktop apps are built to work on a single operating system (or on top of a single app framework). And like for a mobile app, it is likely you will need to build two versions of your product if you want users to be able to use it on both Mac OS X and Windows 10. However, since desktop machines are (usually) significantly more powerful than mobile devices, desktop apps allow you to use the increased processing power of the user's machine to run more calculation-intensive applications.
If your new idea requires a lot of processing power and your users would have no reason to use it on a mobile device, a desktop app may be your best bet.
Websites and web apps are a little bit tricky to define separately so we'll approach them together. Traditionally, a website displays a collection of content users can view online with very limited interaction, while a web application is a program designed to allow a web browser to perform more calculation-intensive tasks that may require a connection to an external data source.
However, with the increased popularity of the internet and increased computing power of our personal machines, the distinction between website and web app has become blurred. Most popular “websites” are either technically web applications or contain one or more applications to control the site's functionality.
Confusing right? Well luckily the terminology doesn't matter much. What is important is that a website/web app allows you to use your own machine (or group of machines) to generate content or perform calculation-intensive tasks (the servers) and rely on the user's web browser (the client) to display information to the user properly. Talk about modularity and computing power!
Another great thing about this setup is that it automatically makes your application device-agnostic (which means it can be used by iPhone and Mac users, Android users, Windows users, etc.) since nearly all popular devices have web browsers these days.
Of course the users' devices are different sizes so any web app needs to be responsive to accommodate a variety of screen sizes – we call this responsive design. Luckily there are plenty of frameworks that make this a simple task.
While websites solve most compatibility issues, they still may fall short when it comes to delivering your specific product. Since they interact with browsers, websites usually have pretty limited capabilities when it comes to using a specific device's hardware. Also, the point of a web app is to allow the client machine to interact with a server machine and this requires an internet connection.
Web apps may be growing in popularity, but it's important to consider limited device functionality and connection requirements before pulling the trigger.
So what's the correct app for your big idea? Well, it depends. Give us a shout and we can help you decide what's best for your Next Big Thing.
Want to make a good first impression? Pay attention to your homepage (your users already are!). Here are some tips for great homepage design.
How do you make a minimum viable product that gets all parties' buy-in? You prototype. See why prototypes are a required step in app design.