A common refrain people say is “I have an idea for an app that ….”. But once you have that idea, how do you go about evaluating its merits? What constraints are you putting on your idea by making it into a mobile application? What steps can you take to ensure your app is as useful as possible? This article aims to answer some of those questions from a product-centric lens, meaning it will stay away from the nitty-gritty technical details and instead focus on the high-level ideas that a technology enthusiast or aspiring entrepreneur who doesn’t know how to code can follow. The advice I present here is a culmination of my mobile development experience as well as what I’ve learned while working with my peers in the Mobile Developers of Berkeley.
Before I begin, I should mention that this article defines a successful app as one which brings maximal user engagement and maximal utility to consumers. By utility, I simply mean that users are getting some benefit from using the application. Maximal utility means that every feature in the application is meaningfully contributing to the benefit that users receive (i.e features are not going unused). These factors are often, but not always, positively correlated with a high number of downloads. This is important to keep in mind when I talk about applications which are widely used and have strong reviews but don’t necessarily meet this definition of success. That being said, let’s begin.
The Beginning: Deciding to Build an App
Suppose you have an idea for a solution which provides people with some kind of service. One of the first questions you should ask is “How will people interact with my solution?” Mobile applications belong to the long list of interfaces alongside websites, physical products, and brick-and-mortar stores. While subtle, it is important to never forget that the question is about interaction and not the actual service. Each mode of interaction has its pros and cons, and the interface you choose is going to influence the design and capabilities of your product. With digital ideas, the most common choice is between a website and a mobile app. Accordingly, whenever you find yourself thinking “I have an idea for an app that…”, the first thing which you should ask is “Should this be an app or a website?” Answering this question means looking at the pros and cons of each interface and choosing the one which is best suited for your idea. Forcing your website to be an app or vice versa is often a recipe for disaster.
One of the primary benefits of mobile applications is their proximity to the user. Whereas a website sits in cyberspace, an app sits in the user’s pocket. Access is immediate, and it is fast; in other words, the app’s features are highly accessible. Using the app doesn’t require remembering a URL or executing a Google Search. Good mobile applications take full advantage of this proximity. There is a reason 81% of Facebook’s users only access the site via a mobile phone (source), and there is a reason food delivery companies like DoorDash and UberEats are mobile-first services. For Facebook, being in the user’s pocket means that on a whim, the user can flip open the application, scroll for some time, and then quickly set it aside. Food delivery particularly benefits from proximity because once the user decides they want to order food, they can immediately open the delivery app. In principle, the user could do this with a website, but making the service an app means it will nearby at exactly the time the user needs it.
Proximity is closely tied to the fact that a mobile application requires a user to explicitly download it. After they download it, your app has a presence on their phone, even if the user is not consuming its content. This “permanence” is a blessing in the sense that a user can open the application after they happened to glimpse the icon when they finish accessing a different app. It is always at their fingertips, both when they have an explicit intent to access it (which they can do quicker than they can access a website), and also when they access it on a whim.
However, permanence does not imply that a mobile application will automatically used. In fact, 25% of apps are used only once after they are downloaded (source). These apps are still “permanent”, but they are never, or rarely, used because they aren’t providing the engagement or utility which make them a successful mobile application. Apps which frequently fall into this kind of disuse are those which either don’t provide immediate information, or they only provide information and features that a user needs on a highly infrequent basis. These are the types of ideas which might be better implemented as websites because they aren’t taking advantage of the proximity to the user that the mobile interface has to offer.
One broad class of ideas that are sometimes pitched as mobile applications but are typically better suited for websites are informational applications. The sole purpose of these applications is to provide largely static information. For example, UC Berkeley has UC Berkeley Mobile to help inform parents, students, and visitors about the campus.
Nearly all of the information on the application can be found on Berkeley’s website (indeed, most of the mobile application just links to the website). However, compared to a website, finding things on the application is significantly more difficult than on the website because the user has to tap through various categories before they can filter down to the information they are looking for. By contrast, the user can just perform a Google search and find the same information. Moreover, it is not often that one need to access information about financial aid or student nutrition or most of the services on the application. So, from a user’s perspective, there is no point downloading the application, and if they do, there is not much reason to come back to it. A general rule of thumb is that if a user can replace your app with a Google Search, then perhaps it shouldn’t be an app.
Similar to these educational apps, other apps which are used infrequently are those provided by large institutions like banks and healthcare organizations to interface with their services. These apps will be downloaded by virtue of the fact that they are provided by a large institution, but that does not mean they are successful apps. Often, these apps offer features like booking appointments, maintaining portfolios, or other services provided by the institution. In general, these are features are certainly of high utility, but low frequency. The user most likely does not need to use these features on a regular basis, and when they do, they probably wouldn’t mind going to a website. Often, these features can be of high complexity as well, requiring numerous taps and gestures to accomplish their goal. Successful mobile apps which attempt to put these low frequency and high complexity features on a smartphone require significant design and often have a very reduced feature set. They also complement the low frequency nature of their complex features by also including low complexity features which can be used at a higher frequency.
The overall purpose of both apps is finance. However, as an institution, Schwab offers a great deal of features. In addition to monitoring stock prices and making trades, Schwab Mobile lets users open an account, monitor all of their accounts (not just investment accounts), set goals, etc. It’s an incredibly diverse feature set that captures mostly everything that can be done on the Schwab website. As a result, most users probably use it infrequently.
By contrast, Robinhood is highly specialized. Its most important low-frequency feature is to execute a trade, and they make it as easy as setting an amount and swiping to confirm. They keep users checking the app daily and weekly by making it incredibly easy to just open it to check portfolio performance via a large number on the app’s home screen (as well as their graphs and red/green color scheme) and then set it aside. In other words, they take full advantage of the interface mobile provides and use the proximity to the user to strengthen their ethos as an app which makes finance accessible. In this sense, Robinhood is better suited for a mobile application than a website because its mission and purpose is directly tied to the immediacy and accessibility that only mobile can bring.
With proximity/accessibility and permanence being the pros of mobile application, it is important to not to forget the cons of turning an idea into a mobile app. In particular, you need to make sure the constraints of mobile don’t hinder the execution of your idea. The biggest constraint which mobile places on ideas is the screen-size, as well as the fact that we interact with apps through touch. This means components need to be large enough to interact with, and you have limited screen real-estate to display information to the user. While a seemingly innocuous constraint, it heavily restricts what kinds of features you can include. There is a reason that complex tasks like intense data analytics or programming aren’t typically done on mobile phones or even tablets. Limited screen real estate also means that complex features need to be broken across views, and the common, but unproven, wisdom is that once a consumer decides to use your feature, they should be able to do it within 3 clicks (source). Any more than 3 clicks, and the number of people using that feature will diminish.
Beside the design constraints presented by the screen-size, other constraints on mobile come from the hardware. While mobile processors get faster and faster, there is still limited processing power on mobile. That means computationally expensive tasks like Machine Learning are still difficult on mobile devices. This is part of the reason why a lot of modern Machine Learning apps place all of their algorithms on a server rather than executing on device (particularly for training models). That being said, the hardware for mobile is continuously getting better. Recently, Apple put a Neural Processing Unit in the iPhone as well as designated processors for image processing, bring machine learning and computer vision algorithms closer to mobile devices . Mobile hardware also presents other incredibly unique opportunities such as Augmented Reality and letting the user connect with sensors in their surroundings (Smartwatches, iOT devices, etc). If your idea requires this type of specialized hardware, then mobile development is likely your best option.
The Middle: Choosing Your Platform
Once you are certain that your idea would be best developed as a mobile application, the next step is to decide which platform to build it for. Broadly speaking, you have three choices:
The outcome of the decision will depend heavily on two key criteria: who are your users, and what is your technical experience.
Of the smartphone OS market, Android has captured about 71%, and iOS has captured about 27% (source). The remainder is taken by operating systems for niche devices. However, global market share aside, demography is what really matters.
Because Apple devices have high price tags, iOS users tend to have a higher socioeconomic status on average whereas Android serves a broader range of consumers. This extends to geography since iOS users are more concentrated in the United States and Europe whereas Android dominates emerging markets like Latin and South America, Asia, and Africa. Depending on who will benefit from your idea, the platform you choose to develop your app in could have an impact on your ability to reach your end users.
As an example, Branch International is a micro-lending startup that serves countries in Latin America, Africa, and Asia. The people they are targeting in these markets largely use Android phones, and so for Branch, Android is the natural platform to build their app for because it will reach a large portion of their target market.
If your idea is meant more for a general consumer, then it might not matter which platform you build for, and to reach the largest audience possible, you might want to build for both platforms. This is known as cross-platform development, and there are several options if you want to go this route. If you and your team have knowledge of both iOS and Android app development, then you can build each app separately with two different sets of code (but with a shared design and layout to keep the branding consistent between the two platforms). This can take lots of time and is labor intensive since you need an iOS and Android team. If you don’t have this ability and still want to build cross platform, you can utilize frameworks like React Native or Flutter which enable you to use a single codebase for both the iOS and Android applications. The downside of these frameworks is that you can sometimes be restricted in the set of platform-specific features you can use, and they tend to have worse performance than building each application separately. However, they do allow for fast development and a single set of code which can be deployed to both platforms. These upsides are so significant that many new startups and personal projects are built using these cross-platform frameworks.
If you have no app development experience, then another option is to create a Progressive Web Application (PWA). PWAs are essentially a website that a user can “install” and access via an app icon. These are built using standard web development tools. If you have no development experience at all, then your last option besides hiring someone to build your idea or learning app development is to use a no-code solution such as AppSheet. Both PWAs and no-code solutions will be highly restrictive in terms of the features you can create, but if they serve your needs, then they can be an easy way to create an application without learning mobile development.
The End: Designing Your App
Now that you know you want to build an app and which platform(s) you will build it for, the only thing left is to actually design your application. To make it successful, you need to keep engagement in mind.
One key attribute which I mentioned earlier is that successful mobile applications provide the user with immediate and frequent information. It shouldn’t be an app that they will download, use once, and then never open again because they have gotten everything they can from the application. Instead, successful mobile applications provide something new to the user each time they open the app. When combined with simple, easy-to-use features and compelling design, your app can provide a powerful experience which maximizes its utility to the user and draws their repeated engagement. It is important to keep in mind that the design of your application is not limited to how your app looks. It also means that you follow very basic design principles such as making sure components that look like buttons are actually buttons, and that a user can open your application for the first time and intuitively know where to find different features.
That being said, design is fluid, and sometimes even successful apps make “poor” design decisions. One example is Snapchat, which, with its gesture-based navigation, was incredibly confusing to non-millennials, particularly with the initial iterations of the app (source). Whereas gesture-based navigation came naturally to millenials, it was highly unnatural for others, so that design decision effectively limited Snapchats growth in the non-millenial market. Of course, Snapchat is a wildly successful mobile application, but even they have added more tap-based navigation alongside their gestures to increase the usability of the app as they tried to scale.
Besides your application’s features and design, one potential method of creating engagement is gamification. Gamifying an application means incorporating game-like mechanisms which emotionally compel users. Often, gamification is accomplished through mechanisms such as badges, awards, or sharing something meaningful they did through the application with their friends. Properly gamified apps can be incredibly addicting and captivate users.
Here, Snapchat Streaks are a great example. People became so attached to keeping a streak with their friend (which required both the user and their friend to exchange a snap at least once every day) that people would use the app only not to lose their streaks.
A more subtle example would be TikTok. Since TikTok deals in short-form video, and their algorithm heavily tailors each individuals feed, users can see a large volume of content in a very short timespan. This gives the appearance that anybody on TikTok can go viral, and so people continue to make TikToks in the hope that they too will someday be seen by thousands or millions of people. The game, in this case, is a “lottery” in the sense that post a user makes is a potential ticket to stardom.
With their gamified structures, Snapchat and TikTok create an emotional attachment to the app, compelling users to return. Of course, gamification can focus the user’s energy on more productive efforts as well.
The app Forest is a productivity booster where the more a user focuses on their task (by not using their phone), the larger a tree grows inside the application. The company behind Forest even plants trees in real life and gives users a sense of ownership over these trees. It is a great example of how to get people emotionally attached and using that attachment to influence how they use your application.
Despite the wild success of many gamified products, it is important to remember that gamification is not a panacea. It won’t work unless it generates genuine attachment, and from your perspective as the application designer, it requires a significant amount of time investment in planning out all of the little details that will make your gamified experience as compelling as possible.
To briefly recap each of these steps, if you want to build a mobile application, the first step is to make sure it would best work as a mobile app. The question to ask here is whether the form fits the function. In other words, does your idea capitalize on the benefits of mobile and is unhindered by its constraints. The second step is to decide which platform you want to build for. This will be largely determined by your target users as well as the technical knowledge you have at your disposal. Finally, you need to design your application in a way which makes it compelling. Here, easy-to-use features which provide immediate and frequent information through a compelling design win the day. If appropriate, gamifying your app can take it to the next level in terms of engagement.
I hope you keep these ideas in mind the next time you find yourself thinking to yourself, “I have an idea for an app that.” Happy building!
Special thanks to Aarushi Agrawal for contributing ideas on how TikTok fits into the framework of gamification.