Do you know anyone who doesn’t have a mobile device of some type?

Chances are, the answer is no. So you’re probably already aware that there’s high demand for mobile apps.

If you have an idea for an app, there’s no day like today to get started. With most people accessing digital media via smartphones and tablets (a number that will only increase), developing a mobile app is a great way to extend your reach and grow your online presence.

In this guide, we will walk you through the process of how to turn your idea into a successful app. We’ll begin with a brief introduction to all things mobile apps, why they’re important, and how they can help you. Then, we’ll get into the nitty gritty of app development: designing it, developing it, and shipping it so that people can access it via their app store of choice. We’ll also discuss costs associated with mobile app development. Finally, we discuss scalability and future planning so that you’re ready for whatever is the next big thing in technology and business.

Mobile Apps 101

Mobile app developmentMobile apps are small, self-contained programs designed to run on mobile devices, such as smartphones and tablets. Not only do they tend to be lighter than comparable programs for laptops and desktops (since mobile devices typically aren’t as powerful as their more stationary counterparts), the UIs of apps are optimized for use on smaller screens and touchscreen-style controls.

“Mobile app” is an umbrella term of sorts. There are several different types of mobile apps:

  • Native apps are those that are developed for use on a particular platform. For example, if you want your app to be used by iPhone users, you (or your development team) will be working in Objective-C, and your product will be sold in Apple’s App Store. Users of Android devices will not be able to use your app. Conversely, if you’re developing for Android users, you’ll be using Java — iPhone users cannot use apps designed and built for Android. The “native” name comes from the fact that the app is “native” to only one type of mobile operating system. This is typically the kind of app people think of when you say “mobile apps”.
  • Web apps aren’t apps per se, but websites designed to look and feel like apps. Web apps are usually written in HTML5 and run in the user’s mobile browser. To install a web app, users navigate to a specific URL, agree to “install” the app, and can then access the app using an icon located on the home screen. As web technologies improve, the line between a web app and a well-design mobile site becomes harder and harder to discern.
  • Hybrid apps, as the name implies, are a mix of native and web apps. The specific mix of features varies — some hybrid apps rely more on web-based technologies, while others rely more on native features. Generally speaking, you’ll see hybrid apps built using web technologies (such as HTML5 and JavaScript) and then wrapped in a “container” of sorts that allows the app to access the device’s features the way a native app could.

The Growth of Mobile Apps

Consider the following:

However, as robust as the mobile app marketplace is based on the statistics cited above, there is still plenty of growth waiting to happen. With less than half of the global population in possession of a mobile device, the growth potential for mobile apps is certainly there, especially as those in developing countries gain access to technologies that get cheaper and cheaper.

The Principles Behind Building a Successful App

Most apps fail. Some app developers claim that succeeding in the app store is like “striking it rich”. However, accepting the idea of luck means that there is nothing you can do to ensure success, which is not the case. Here are some things to keep in mind as you go through the app-building process.

Your Idea is Everything

The most important thing behind a successful app is a solid idea. You might think that your idea is the best thing since sliced bread, but a little market research and testing ahead of time can keep you from pursuing an idea that no one else finds interesting.

You should be able to describe your app in only one sentence. Apps are pretty disposable — if something doesn’t meet a user’s needs, they have no qualms about deleting it off their phone or tablet. However, this assumes that your app made it onto their device in the first place.

When users peruse app stores, they pretty much have just a brief description and some screenshots to see before they decide to download or not. Your one-sentence app summary, therefore, acts as a forcing function to ensure that your idea conveys the benefits of your app to your audience.

Identifying Your Audience

Who are you targeting with your audience?

To build a successful app, you need to know who your target audience is. In addition to helping you narrow down the feature set you include in the app you ship, knowing this helps you determine your potential revenue streams. We are, however, assuming you’re planning on monetizing and earning revenue with app sales (and you might not be — your app might be an extension of your business the way that the Amazon shopping app is an extension of

Generally speaking, there are four types of revenue-earning apps:

  • Apps that become hits are those that appeal to almost everybody. Though you charge very little per download, your revenue streams are high due to the volume of people downloading your app.
  • On the flip side are apps with a high price tag targeting a very specific set of users. While you don’t sell very many downloads, each download nets you a large profit.
  • Some apps are high profit, yet also high volume. Needless to say, these apps are rare. One example is Candy Crush Saga (or any hit “freemium” apps; the initial download is free, but there’s a huge profit through add-ons and in-game purchases).
  • Finally, we have apps that generate low revenue and a low number of downloads. These apps are obviously the ones that fail, and unfortunately, these are the most common types of apps out there. The reality is that your app most likely falls into this category, but hopefully, by doing some planning and research ahead of time, you can move it into any of the other three, revenue positive categories.

BA mobile app for iPhone - Mobile boarding pass

By determining your audience, you’ll be able to pinpoint which of the three successful categories to which your app might belong. Then, as you’re making the many decisions required during the app development cycle, you’ll have additional information to help inform your choices.

Putting Design First

Next to having a great idea, the design of your app might be the most critical component in determining whether your app succeeds or not.

There’s a reason why the most popular and most successful apps are well-designed. To get started, we recommend familiarizing yourself with the guidelines put out by Apple and Google:

The guidelines provided are conventions for a reason (the short explanation is that the guidelines reflect how users expect to interact with an app so that it feels as natural as possible). Don’t deviate from the norm unless you have a very compelling reason.

You might be tempted to make a design decision due to a programming or device limitation, but doing this might cut the size of your audience down quite a bit. For example, if your app requires users to use their cameras, don’t force the user to turn their devices sideways — allow the user to take pictures with the device oriented portrait-style.

Furthermore, users are more likely to continue using your app if they don’t have to work hard to use it:

  • Make it intuitive — everything a user needs to complete an action should be present on a given screen
  • Don’t make the user type if at all possible
  • Explain to users why a certain action is important.

Finally, the visual experience is important. Your colors should be appealing, your images crisp, and so on.

Does all of this sound daunting? Luckily, it doesn’t have to be. The best way to see if your design works is to put it in front of real people. Can they figure out how to use your app? What parts do they find confusing? How does your expectation of what a user does compare to what a user really does when they pull up your app? If you conduct such tests (and they don’t have to be big productions — they can be simple affairs) early and often, you’ll see improvements to your product continuously.

Important vs. Nice to Have

While it’s nice to have all of the bells and whistles in your app so that there’s something for everyone, it can be difficult (or impossible) to achieve. Each additional feature you include adds to development time, increases costs, increases complexity, and if executed poorly, can impact your users’ experiences with your app negatively.

TIA development team showcasing the app (BETA version) on different devices.

As such, you should decide ahead of time whether something is essential to your app or if it’s just “nice to have.” For example, if you’re building an app that allows your users to purchase items from your online shop, you’ll need the following:

  • A product catalog to view information about your items
  • A shopping cart to hold the items people want to buy
  • A payment processor so that people can pay for their items.

It might also be nice to have buying guides (for example, REI offers guides on things like what to buy for a family camping trip). But these are almost certainly extras that can wait.

Obviously, deciding what’s essential and what’s not is dependent on the type of app you’re launching, as well as the audience you’re targeting. This is another reason why it’s so important to know who your audience is.

Mapping Your Flow and Prototyping

Now that you know what you’re building, who you’re building for, and what features you’re including, it’s time to map your flow and build your prototypes.

When we say “map your flow,” we are referring to the flow of actions taken by your users. For example, the flow for a shopping app might be:

  1. The user opens up the app
  2. The user browses the product catalog
  3. The user opens up a product page to learn more about the product
  4. The user may opt to add a product to their shopping cart
  5. The user may view their shopping cart and its contents
  6. The user may purchase their goods by initiating the checkout process
  7. The user provides their billing information to the payment processor.

By listing out such steps, you can see clearly what types of screens you need. This informs the tasks you’ll need to complete when you build prototypes for the screens your user will see throughout your app. One great way to do this is via storyboarding.

When building a prototype, you can take the simple, low-tech route with pen and paper. Alternatively, there are many prototyping tools, such as Balsamiq, Invision, and, that can help you create digital mock-ups. There are pros and cons to all of these options, but what’s important is selecting a tool that works for you (pen and paper probably aren’t a great idea if your design team is fully distributed, for example).

Planning Your Development Cycle

The decisions you make impact every aspect of your development cycle (not to mention its final success).

The first decision you’ll need to make is the type of app you’re going to build (skip back to Mobile Apps 101 if you need a refresh on the types of app you can build), as well as the ecosystem you’re going to support.

Are you going to focus strictly on the Apple environment, since that’s what a majority of people use? Are you going to focus on Android, where most of the growth is occurring today?

Are you going to build a web-based experience that eschews app stores entirely?

There are a lot of considerations you’ll take into account when making this decision, and we defer to Smashing Magazine when it comes to comparing the pros and cons.

The shortest summary is as follows: pick your technology based on your design — don’t shoehorn your design into a particular tech stack.

The Cost of App Development

Building an app is expensive. Sorry. However, that doesn’t quite tell the entire story. If you’d like a quick, back-of-the-envelope calculation, Crew (which is a job-seeking platform for freelance designs and developers) offers a tool called How Much to Make an App. The purpose of this tool is to get you an estimate of the financial cost for your app.

iPhone App Dev is Messy

You begin by answering a series of questions about your app, such as “What type of app are you building?” and “Do people create personal profiles [in your app]?” and when you’re done, you’ll see an estimate of how much it will cost to build your app based on the features you’re planning to include. This number is strictly an estimate, but when building the tool, Crew gathered data from over 30,000 projects submitted using its platform to perform the calculations.

Finally, after you’ve designed and built your app, you’ll need to list it in the appropriate app store (if you’ve built a native app). All app stores charge fees for listing your product, and if you’re targeting multiple platforms, you’ll need to pay for multiple listings.

Continuing Development Costs

App development costs aren’t a one-time thing — it’s best to think of the upfront cost as the tip of the iceberg.

The biggest cost concern might be due to the frequency with which apps are updated. According to Any Presence, who surveyed over 100 professionals involved in mobile app development and strategies as part of their job, almost 30% indicated their apps were updated more than once per month. Over half updated at least once every six months.

Furthermore, Forrester Research indicated that the average amount spent on an app at the beginning of the project reflects only 35% of the true two-year cost of having an app.

Designers and Developers

Someone’s going to be designing and developing your app. Given the complexity associated with these tasks, we’re assuming that you either have the required skills already or if you don’t, you’ll be hiring someone to do this for you.

First, you’ll need to decide if you need a designer, developer, or both. Generally speaking, the designer is the person who decides what your app will look like; essentially, the deliverable will be some type of mockup or design file. The developer is the person coding your app. Sometimes people will offer both services, but it’s important to be clear from the beginning what you’re looking for and hire appropriately. More often than not, you’ll have to hire at least two people (or teams).

Here are some things to keep in mind when hiring a designer:

  • If you have design ideas in mind, include these in your job listing so that your candidates know what you’re trying to achieve. If you don’t, you can present design samples that you like.
  • Be clear about the features you must have in your design, as well as what styles you like or don’t like.
  • Provide a project timeline so that your designer knows what you’re working with. There’s a big difference between a three week period and a three month period, and it’s only fair to be upfront about this to the best of your ability
  • Look to see if they have the technical skills to handle your stack. They don’t have to be coders, but they should be familiar with your environment so that they don’t create designs that your developers can’t implement.
  • Ask to see examples of their previous work.

App development

The above suggestions also apply when selecting a developer. However, the technical skill of the developer, which is of the utmost importance, can be hard to judge unless you’re familiar with the language itself. As such, you might need to rely on proxy indicators to see if the person you’re working with is capable of executing your project.

In instances like this, customer reviews and referrals and, most importantly, the developer’s project portfolio should give you an idea of how working with that person is likely to end. You might even ask to contact your developer’s previous clients — how did that person handle setbacks? Were they amenable to making changes during the development process (something that happens quite frequently)?

There are good designers and developers at all skill levels. Generally speaking, experience costs more money. However, before you balk at the extra expense, it might be penny-wise, pound-foolish to opt for the less expensive person. More experienced developers tend to be easier to work with, easier to manage, have faster turnaround times, and know, from experience, how to ask the appropriate questions to prevent roadblocks and keep the project moving.

Building Your App

At this point, you’ve thought through your idea, drawn up prototypes, conducted usability tests, gotten your UI designed, and hired your development team. Here’s a bit more on what you can expect regarding tools used and development environments based on what type of app you’re building. Note that these are just generalizations — depending on your company (as well as your developers), one or more aspects of your tech stack might look different.

Stream of Apps

Native iOS Apps

Most of the offerings in Apple’s App Store are written in Objective-C with Xcode (which runs only on macOS) as the IDE of choice. Both Xcode and the iOS SDKs you need for developing apps are available free of charge, but to publish to the App Store, you’ll need the appropriate developer account. This costs $99 per year.

For full information on developing iOS apps, see Apple’s App Store Developer pages.

Native Android Apps

The languages used for the Android platform is Java, which is commonly used with the Eclipse IDE, and Kotlin. Alternatively, you can use Android Studio, which is the official IDE.

You can easily develop Android apps in any ecosystem, including Windows, Mac, and Linux. All development tools are available to you free of charge, though publishing to the Google Play Store requires a developer account. To obtain your account, you’ll have to pay the one-time registration fee of $25.

For in-depth information on developing apps for the Google Play Store, visit the Android Developer pages.

Multi-Platform, Web-Based Mobile Apps

Hybrid apps are great in that you can write one set of code and then bundle it for deployment to multiple platforms. Not only can your app run on iOS and Android devices, but you can also easily use the code you’ve written to build a progressive web application. To build a hybrid app, you’ll begin by selecting a mobile app framework. Here are some of the most popular options:

  • Ionic: an open source SDK that’s built on top of Cordova and Angular.js, allowing you to use existing web technologies like CSS3, HTML5, and Sass to build hybrid apps. You can then distribute your apps to different app stores to be installed on users’ devices.
  • Mobile Angular UI: if you have a development team well-versed in and familiar with Bootstrap and Angular, Mobile Angular UI, which combines these two frameworks, might be a good fit for your team.
  • PhoneGap: probably the most popular cross-platform framework for creating hybrid apps. Using just HTML, CSS, and JavaScript, PhoneGap allows you to build hybrid apps that work across multiple platforms.
  • Sencha Ext JS: if you’re looking for an enterprise-level product, Sencha Ext JS might be the option for you. Using Sencha Ext JS, you can build cross-platform apps that feature native UIs using HTML5 and JavaScript. While this product might be overkill for individuals, freelancers, and small businesses, those looking for a heavy-hitting product would find a lot of value in Sencha Ext JS.
  • Xamarin: allows you to use Microsoft-owned technologies to create native Android, iOS, and Windows apps with native interfaces. You can also repackage the code to create apps for Windows and macOS.

Marketing and Launching Your App

While you might think that marketing your app can wait until development is complete and you’ve launched your app, this isn’t the case.

First, pre-launch marketing makes a successful launch more likely. This is important, particularly for apps that don’t cost very much. Generally speaking, attention toward and excitement for your app is highest when it’s new, and by taking advantage of this, you can push your app toward the top of app store sales charts. If you don’t, it’s quite likely that your app will fade into oblivion right away — thousands of apps are launched every week, so it’ll be tough to recover from a slow start.

Here are some ways you might go about marketing your app even before it launches:

  • Make connections. Social media is an obvious candidate for this, and by connecting with influential people in the community you’re targeting helps get the word out about your app. You probably already know the best channels for communicating with those in your industry, so those would be the best places to start. By sharing your app with your connections, they can help you spread the word about your project.
  • Develop a solid digital presence for your app. Create social media accounts for your product, so that people can easily find information about your app no matter which platform they’re using. You can also use these accounts to advertise the features of and benefits to using your app, as well as provide news and updates.
  • Implement a private beta testing program. Not only are your beta testers likely to become champions of your product (since they’ve used and become invested in it), this gets you additional feedback that helps you refine and improve your app before it goes live to the general public.

Post-Launch Marketing

While pre-launch marketing is important, don’t forget that post-launch marketing is just as important. Pre-launch activities generate buzz and keep your app from fading, but that doesn’t mean that you won’t fly under the radar of possible users at a later date if you don’t keep up with your marketing efforts.

Growing Your User Base

Now that you’ve designed, developed, and launched your app, how do you grow your user base? It goes without saying that the larger your audience, the greater the chances you have to turn them into long-term users and customers of your business. Here are some things to remember when you implement your app’s growth marketing programs.

  1. Market on the appropriate platforms. It might be tempting to advertise on the platforms with the largest number of users, such as Facebook or Google, but quality is better than quantity. Your time might be better off advertising on platforms specific to your industry. For example, if you have a food-related app, you could consider advertising on or partnering with a few food bloggers. While you’ll probably gain fewer users using this method, the users you do get are more likely to be active and engaged.
  2. Focus. There’s probably a small number of places driving traffic to your site. Using tools like Google Analytics, you can hone in on that information and dedicate your marketing efforts to these channels.
  3. SEO, SEO, SEO. If you have a website, it’s imperative that you apply the basics of SEO so that your site gets indexed appropriately and returned often in search engine results. Track the keywords associated with your site, place them in strategic locations, and make sure that your site is performant.
  4. Provide value to your users. There’s a lot of talk about things “going viral” and achieving success in that manner, but this isn’t a viable method for ensuring success for most apps. More importantly is whether your app provides value to your users. If it does, you’ll have an easier time marketing your product, bringing on users, and keeping people happy. If you don’t, there’s little that marketing can do to help you. Remember: apps are very disposable, so if your app doesn’t work for the user, they’ll likely just remove it from their devices and move on.

Improving Your App

To improve your app, you’ll need to gather information on what works, what doesn’t, and what your users’ pain points are. However, it can be tricky gathering such information from apps. If you’ve developed a web-based app, you’ll have an easier time with this, since collecting information based on activity undertaken by someone using a browser is an established practice. If you have a native app, this process might be a bit trickier.


The following analytics tools are useful for getting information on how your users behave. While all of the options listed below are very good, none are perfect so you might consider using more than one to capture as much data as possible. 2-3 is a good number of tools to have, but using any more might reduce the signal to noise as you become overwhelmed by all of the data you’re collecting.

  • App Analytics: If you’ve built an iOS app, Apple’s App Analytics tool allows you to measure user engagement, marketing campaigns, and monetizing for your apps. Included with your Apple Developer Program membership, App Analytics doesn’t require any technical implementation.
  • App Annie: One of the most well-known mobile app analytics programs. It works with iOS and Android apps, and its full set of features means that you can access market data intelligence, basic app analytics, and store stats (if you conduct sales via your app) across multiple devices.
  • Countly: In addition to learning more about your users’ behaviors, Countly allows you to send push notifications, gather crash reports, and develop individual user activity profiles.
  • Facebook Analytics: Facebook’s analytics tool allows you to track your users and analyze your data. You can use this tool for mobile apps, websites, bots, and more. You do not have to be a Facebook user to use Facebook Analytics.
  • Google Analytics: Google offers one of the most popular analytics tools, and it can easily be used to measure app usage and behavior.
  • Mixpanel: Mixpanel is an analytics suite designed for product owners (or those who think like product owners). The goal of Mixpanel is to present you with information deeper than that provided by the more typical analytics suites so you can better understand your customers, keep them engaged, and gain new users.
  • Sensor Tower: If you’re looking for an enterprise-level analytics product that does much more than just obtain and graph data, Sensor Tower might be a good fit for you. You’ll get SEO-related features, information on your competitors, and in-depth information on your marketing campaigns.


Feedback and Improvements

Analytics suites are great at gathering information so that you can make informed decisions, but there’s little that can replace direct feedback from your users.

For example, analytics might be able to tell you that you see a high bounce rate on your login screen, but why might this be? You might already know that users prefer to type as little as possible. You may be forcing them to log in when it’s not clear what the purpose of logging in is. But it’s harder to capture a usability problem, such as a login box that is too small to tap.

Alternatively, you might have flow-related issues, where the actions asked of your users doesn’t feel natural. The users would be able to tell you that it doesn’t make sense to do X before Y because of reasons A, B, and C. Again, this information is difficult to capture with an analytics suite.

When an app doesn’t meet a user’s needs, the easiest step to take is to delete the app. However, if the user decides to provide feedback instead, you should ensure that they can do so with ease. While criticism never feels good, such users are proving that they’re invested in your app and would like to continue engaging with your product. Make it easy for them to provide your team feedback, respond if at all possible, and give serious thought to whether the criticism is appropriate and if you’ll implement the changes for which the user has asked.

Incorporating Additional Features

As we mentioned above, you should expect to update your app frequently. Since a sizable majority of apps are updated at least once every six months, you’ll be at a significant disadvantage if you don’t plan on frequent updates to fix issues, implement new features, and keep it from going stale.

Android appBug Fixes

The first category of updates is bug fixes. This is fairly obvious — if something is broken, you should fix it. Users find malfunctioning apps extremely frustrating, and because they find apps so disposable, not fixing bugs is a great way to have your app fade into oblivion.

Pay attention to errors logged by your analytics suites and monitoring tools, but more importantly, address the pain points your customers bring to your attention. The more expensive your app, the higher your users’ standards are, but under no circumstances should you ignore what people are telling you.

It can be challenging to find the right frequency in terms of releasing updates containing updates. Installing updates is an annoyance, but so are the bugs themselves. There’s no “right answer” regarding how often you should ship, so you’ll need to make this determination based on the severity of the issue, as well as the expectations of your users.

New Features

Once you’ve gotten the must-have features implemented, update cycles are a great time to add those nice-to-have features, as well as those requested by users. Very few apps survive without adding new features, so it’s important to keep your app from getting stale. It might be overkill to release new features every month, but you should probably strive for at least one release featuring new functionality every six months (or twice a year).

Tips for Mobile App Development

We’ve covered a lot of material above, but there is still more for you to consider as you develop your mobile app. Here are five things to keep in mind to make it more likely your app will succeed.

  1. Test, test, test. When it comes to software development, testing seems to get pushed aside with ease. However, the earlier you find a bug, the cheaper it will be to fix (PDF). Mobile apps are expensive enough as is, and testing is a good way to keep costs low(er).
  2. Plan for the offline experience. You might take the user having access to the internet as a given, but what happens if that’s not the case? There are plenty of apps (such as Evernote) known for their usability even without connectivity, and if you can build this kind of support into your app, your users will be less frustrated in the event of technical issues.
  3. Use the features available to you. Modern day smartphones and tablets come with things like a camera, GPS, accelerometers, and Bluetooth support. Consider taking advantage of these features to improve your app and make it easier to use.
  4. Keep it simple. Applications for desktops and laptops have gotten extremely fancy as these products grow in power, but mobile devices tend not to have the same resource allocations. Furthermore, mobile devices (more often than not) run on slower networks. Simple screens, intuitive UI, and grid-like formats that prioritize scrolling over tapping are what you should be aiming to implement.
  5. Start small. It’s easier to build for a larger device, but when it comes time to shrink your design for use on a smartphone, you’ll be forced to make some very tough decisions. However, if you start work with the smartphone-ready version of your product, you’ll find it much easier to scale up to a larger version.


The road to building a successful app is long and hard, but that doesn’t mean that you shouldn’t even attempt this journey. If executed correctly, projects like this can be very rewarding.

The keys to a successful project include:

  • A well-developed idea that can be explained in one sentence
  • A solid design and development team united to prioritize design and user experience
  • Frequent communication with end-users
  • Frequent updates and innovations to prevent app staleness

Altogether, there’s a lot of work to do. But if start with this knowledge in hand, you won’t be caught off-guard, and you’ll be capable of handling any of the bumps that might occur throughout the app-building cycle. There’s a large and growing market for apps out there, and by identifying the needs and wants of consumers, you might be just the person to fill that niche.

Further Resources

The following references might be helpful to you as you embark on the journey of turning your idea into a successful app.


  • The Android Developer pages are where you should go for official information on the Android operating system and development
  • If you’re building iOS apps, Apple’s developer pages have everything you need to know throughout the development lifecycle.



  • Google’s App Engine allows you to build the web and mobile backends in any programming language using Google’s infrastructure
  • Get up-to-date tools from Apple to build iOS apps (Apple Developer Program membership required)
  • Prototyping on Paper turns your pen and paper ideas into an interactive iPhone or Android prototype.
  • Treehouse – learning code in a user-friendly environment.

Case Studies

BA mobile app for iPhone – Mobile boarding pass by British Airways under a CC BY 2.0 license. Tenants in Action (TIA) App by Craig Dietrich under a CC BY 2.0 license. iPhone App Dev is Messy by Deryck Hodge under a CC BY-SA 2.0 license. Stream of Apps by Phil Aaronson under a CC BY 2.0 license. App development by Andria under a CC BY-ND 2.0 license. Android app by fsse8info under a CC BY-SA 2.0 license.