The world of app development is an exciting, yet sometimes confusing place. One of the first decisions you will face is which type of app to build. And there is no definitive answer. Your choice will depend on a bunch of competing factors including your budget and your deadline. The aim of this article is to give you a sound understanding of the different types of apps available and to aid your decision as to what technology you should use to build your app.
The moment you consider investing in a mobile app, you’re immediately faced with a barrage of terminology. What’s the difference between iOS and Android? What are native, hybrid and web apps? More importantly, which is most appropriate for you and your app?
When talking about app development, we are usually talking about developing for mobile devices. This includes smartphones, phablets, and tablets. There are also apps for the web and wearables like smartwatches, but for the purposes of this article, we’ll stay within the bounds of mobile devices like phones and tablets.
For the most part, mobile devices run one of two operating systems: iOS and Android. iOS is developed and supported by Apple and is used on only on their own iPhones and iPads. In other words, in the Apple universe, they control both the hardware and the software.
Android is developed and supported by Google, often considered a more open platform compared to Apple. In fact, Android is an open source operating system, which means that anyone can use their code to run a device. Google sells a few devices of its own, but Android normally runs on devices built by other companies like Samsung, Huawei, LG, HTC, etc.
As of Q3 2016, Android controls about 88% of the mobile device market worldwide, and Apple owns most of the rest. But that doesn’t mean you should develop for Android first. We will discuss this later in the article.
There isn’t any overlap between the apps of each of these devices, that is, native iPhone apps won’t run on Android phones and vice versa. Even though you see Snapchat, for example, running on both phones and looking very similar, they were actually built entirely separately.
The commercial success of smartphones and tablets isn’t showing any signs of slowing down. While it may seem like everyone around you has a smartphone, there are only about 2 billion smartphone users worldwide. So in the next few years, you can expect billions of people around the world to be getting their first smartphone. The opportunity to get your app into the app store and into the hands of millions (or even billions) of people is still growing.
First, let’s define web, native, and mobile apps.
What is a web app?
According to Wikipedia, a web app “is an application that is accessed via a web browser over a network such as the Internet.” So how is this different than a web site?
The difference is subjective, but most would agree that a web site will generally just be informational and a web app provides functionality. For example, Wikipedia is a website; it provides information. Facebook is a web app.
Don’t let the word “app” confuse you though. Web apps don’t need to be downloaded like mobile apps do. Web apps load in browsers like Chrome, Safari, or Firefox and they don’t take up any memory or storage on the user’s device.
Progressive Web Apps
Until recently mobile web apps lacked a lot of the functionality of native mobile apps like the ability to send push notifications, work offline, and load on the homescreen, but there have been a few improvements to browsers and web apps that offer these features. Apps that take advantage of these features are called progressive web apps.
There are a few steps you need to take in order to make your web app into a progressive web app. They go beyond the scope of this article, but you can see find a comprehensive guide here.
Are progressive web apps the way to go? It depends what your goal is. They only work on Google Chrome which is fairly limiting. If your goal is to cover an audience on Android and iOS, then progressive web apps are probably not for you. In that sense, they are not a substitute for a mobile app but they can be a way to quickly get a mobile-app-like web app into people’s hands. If you were considering converting your web app into a progressive web app, consider instead using a solution like Canvas to make your web app into a mobile app. It’s really easy!
There are two kinds of mobile apps: native and hybrid. When we talk about mobile apps in this article, we’re talking about apps you download from an app store.
Why build an app vs a web app?
The simple answer to this question is that an app store presence is really important for your company. People search for new apps frequently and you want yours to be there. With a mobile app in the app store, you’re encouraging them to install it and put your icon on their coveted home screen.
Getting users to your product the first time is easy. Getting them to return can be a challenge. Only mobile apps give you the opportunity to send well timed push notifications to re-engage users. Push notifications will be extremely important for any serious app. According to data from Localytics, when a user opts in to receive push notifications, they will launch your app 88% more than a user who doesn’t receive them.
Another key to growing your app is getting people to share the app itself or content within it to their friends. This can be done on a web app, but it’s best done on a mobile app. As an app user, you can quickly share to any app (Email, WhatsApp, Messenger, Facebook, etc) in a much easier way compared to a browser.
Users spend a lot more on apps than they do on the web. The popularity of apps has increased enormously and is continuing to rise. According to eMarketer, the average user “will spend 3 hours 15 minutes per day using apps. Time spent on mobile browser activities will hold steady at 51 minutes”.
One more advantage to building a mobile app over a web app is ad revenue. CPM for ads in mobile apps are generally higher than in web apps. Many people also use ad blockers for their web browsers which can lower your revenue. This isn’t possible in mobile apps.
Does this mean you should always build an app vs a web app or simply a mobile site? Not really! As a good rule of thumb, if you can imagine a good portion of your users accessing your service or content once daily, then an app will probably make sense. If what you provide is generally used once and never again, then don’t invest in an app and focus instead on a good mobile optimised web presence.
Apple and Google offer app developers their own development tools, interface elements and standardised SDK; Xcode and Android Studio. This allows any professional developer to develop a native app relatively easily.
Advantages of native apps
So why are most apps native? The reason is that native apps have a number of significant advantages over the alternatives.
- They offer the fastest, most reliable and most responsive experience to users. This is unlikely to change in favor of web apps.
- It is easier to tap into the wider functionality of the device including the camera, microphone, compass, accelerometer and swipe gestures. It’s still possible using the alternatives, but it’s easiest on native.
- Native apps can make use of push-notifications, alerting users when their attention is required in the app. You get the opportunity to continually bring your audience back for more which is key to a successful app.
- You’re more likely to please your users due to the way you can match each app’s UI/UX to the platform conventions. There are dozens of UI/UX differences that make users feel at home. By building native, you don’t have to compromise with UI/UX that you hope will be user-friendly for all platforms.
Disadvantages of native mobile apps
- You’ll have to manage a codebase for each platform you launch on
- iOS apps will not run on Android and vice versa
- Most developers specialize in one platform ( Android or iOS), so to create an app on both platforms will require two separate developers (or teams)
- Native apps generally cost more to make than hybrid apps
Examples of Native Apps
Most of the most popular apps out there like Pokemon Go, Twitter, and Waze, are fully native. It’s become trickier though to distinguish who’s using purely native code on Swift, Objective C and Java and who’s relying on hybrid solutions or cross-platform SDKs.
Building Cross-platform Native Apps
As we said, the main disadvantage of native apps is having to develop apps separately for each platform you want to cover. That’s still true if you want to stick to the native SDKs provided by Apple and Google, but in the last few years, several alternatives have become available to reap the benefits of cross-platform development without sacrificing the user experience or access to native APIs. Two of such platforms are Xamarin and React Native, both worth a look.
Made by Microsoft, Xamarin is a platform that lets developers build one app that work on multiple platforms in C#. They also provide free tools to build, test, distribute, and learn from your apps. Xamarin seems like a more complete development environment than PhoneGap and Titanium, even offering a test environment where you can test your app on thousands of virtual devices before launching (this is crucial for cross-platform apps). Xamarin also offers a few prebuilt apps you can use to get a quick start. Some companies that have built apps with Xamarin include Slack, Pinterest, and Honeywell.
While React Native doesn’t give you access to all the device’s functionality, you can weave in native code if you need to. There are some pretty heavy-hitters using React Native including Facebook, Walmart, Tesla, and Airbnb. You can check out some React Native apps here.
What are hybrid apps?
Why should you consider hybrid? Say you have an idea for an app and you don’t know if people will like it or not. Your goal is to put something usable into their hands as quickly as possible. In the startup world, this is called an MVP, or minimum viable product. You’re short on resources so you need to create the a simple version of your product that still provides value. Building a web app might be the truly minimal option, but won’t really allow you to test whether people will download and use an app on their device.
Advantages of Hybrid Apps
All the advantages of hybrid apps stem from the fact that instead of building two apps, you’re building one app and tweaking it a bit so it works on both platforms. Now you only have one codebase to manage. This will probably require half the number of developers two native apps would have required. Or, with the same number of developers, a hybrid app could be published in half the time.
- Developers for hybrid apps are often less expensive than native developers
- Hybrid apps are easier to scale to another platform. Once you’ve built for one platform, you can launch on another like Windows Mobile.
- You retain the same ability to access device features as with native apps, thanks to solutions like Phonegap that act like a bridge between the native SDK and the webview in which the app runs
Bottom line: Hybrid apps save you time and money
Disadvantages of Hybrid Apps
- Getting your hybrid app to run appropriately on each platform generally takes substantial work. In some situations, the total cost might become comparable to that of fully native apps, rendering the cost benefits negligible. It all depends on how close you want to get to the “native user experience” or how simple your app is.
- The UX of the app will suffer. iOS and Android users tend to be very loyal to their platforms, and since they’ve been using them for years, they’re used to how things work in native apps. The differences are subtle but can be frustrating for your users. By building a hybrid app, you won’t be able to please both camps. Try too hard to customize the app based on the platform and it may end up costing the same as two native apps. There are some ways you can do this which we will discuss shortly.
Hybrid App Platforms
Our own take on the hybrid app, Canvas is a service offering anyone with a mobile web app or responsive site the ability to build a mobile app for it, with no development work. As with our News solution, it’s offered as a service, meaning we will build, publish and maintain your apps for you. Technically, Canvas relies on our own native codebase for iOS and Android, including native elements for navigation such as a tab bar, functionality like a push notifications inbox, content preloading for your pages, caching and offline support. The app is designed to rely on a remote web app or mobile site which you control – any change on your mobile site is immediately reflected in the app.
Can you convert a web app into a hybrid app?
If you’re building an app for an existing site or you have a mobile web app ready that does exactly what your app should do, but only misses what a native app generally provides (app store presence, push notifications, home screen icon, offline use), then turning your site or web app into a native app can be both quick and economical.
You won’t have to manage two platforms (iOS/Android) separately. You’ll have a single web app that covers the mobile web and the two major mobile platforms with your apps. This is what we built our latest Canvas platform for!
How to make a web app or hybrid app feel native
As we mentioned earlier, the ultimate goal of a hybrid app is to feel native. So if you decide to go hybrid, much of your time will be spent trying to do just that. There are a bunch of things you can do to make your hybrid app feel more native.
- Use a splash screen, so that the app loads to a fully loaded web app, ready to be used.
- Add a back button to the UI, to make sure users can navigate it intuitively. Android already includes a back button in the system interface or in the device, but iOS needs your app to allow users to navigate back as they move around.
- If you’re building an app from scratch, use a UI library like Onsen UI, it will not only speed up development time, it will make design decisions much easier. UX and design is based on conventions or what the user is used to. A library like Onsen UI has already made all the mobile components according to conventions.
- Get rid of the 300ms delay. All browsers, including webviews would normally add a 300ms delay when users tap on an element. Why? It’s because it’s waiting for a second tap. 300ms may not seem long, but it’s enough to make an interface feel sluggish. So getting rid of that helps.
- Where possible, follow the style guides. If you’re designing your app from scratch, have your developer and designer has read the guidelines created by Apple and Google. This will give them a good idea of what users of each platform are used to.
- Make wait times seem shorter. If you can’t avoid having a longish delay in loading a screen, show a loading icon or progress bar. Any delays longer than 0.1s are significant enough to warrant a loader, in order to warn a user the app is alive and loading, rather than stuck.
Canvas already does most of this for you, so if you’re looking for a quicker way, give it a try!
How to choose?
The following is a list of factors that should help you decide what kind of app to build.
UX is the overall experience a user has when using your product, especially in terms of how easy or pleasing it is. A user interface is like a joke. If you have to explain it, it’s not that good. And if your app has bad UX, people will stop using it.
Needless to say, you need to invest in UX. The best possible thing you can do for UX is to write two separate native apps. Like we mentioned earlier, there are differences between the two operating systems and people have gotten used to them. If you hand an Android phone to a loyal iPhone user, chances are they’ll stumble a bit.
To see a list of the major differences between iOS and Android, click here.
Time to market and cost
How much does building an app cost? There’s obviously a large range here. Prices will vary based on complexity, features, and platforms.
A quick way to get an estimate is to use this tool created by the fine people at Crew. It asks a number of questions and gives you an estimate of how much your app will cost.
But essentially, your app development cost can be determined by just 2 factors: hours required and hourly cost. The hourly cost will stay mostly the same and is easy to determine, but the number of hours the app requires depends on what you need the app to do. Some of the major features you might need are covered in the tool created by Crew.
The best data about app development costs comes, unsurprisingly, from app development agencies. One such agency is The Nine Hertz. In 2016, they released this handy inforgraphic.
There are a few important data points here so let’s go through them.
The cost of hiring native app developers
If you’re building two (or more) native apps, you’re going to be paying an iOS and Android (and possibly Windows) developers. You might think that because Android is the more popular operating system it would be cheaper to develop for. That’s actually not the case, at least according to this article by Infinum, an app development agency. They found that Android apps contained 40% more code and took 30% more time to develop.
According to the infographic, mobile developers in North America cost an average of about $150 per hour. This price decreases drastically if you hire developers in India or Eastern Europe where average costs are about $30-50 an hour.
Time required to build a native app
According to the same infographic, it takes an average of 18 weeks to build a standard native mobile app; 10 weeks for the back-end and 8 for the front end. Keep in mind though that not all apps have a backend and some may use a back-end as a service to reduce development time and complexity. Your actual timeframe will vary widely from this average, but this is still a good reference if you’re new to the world of app development.
For more information on the breakdown of these and other steps, check out this link.
|App Type||Time in hours||iOS Cost ($150 per hour)||Android Cost ($168 per hour)|
|Simple Apps||300||$45 000||$50 400|
|Moderate Apps||500||$75 000||$84 000|
|Multifaceted Apps||750||$112 500||$126 000|
|Highly Multifaceted Apps||900+||$135 000||$151 200|
- This table is based on North American developers
- App type is somewhat arbitrary
How should time to market affect your decision?
If your app seems like it would be a good fit for hybrid, this can considerably reduce your time to market. However, by doing this, you may be sacrificing something that will be hard to gain in the future. There’s an important term “technical debt” that applies here. Assuming your app does really well, you will eventually have to face some of the technology decisions you made earlier. In general, technical debt is costlier in the future than it is now.
On the other hand, your job isn’t to write great code, it’s to ship products, so technical debt is okay! As Joel Spolsky says in his blog post The Duct Tape Programmer, “A 50%-good solution that people actually have solves more problems and survives longer than a 99% solution that nobody has because it’s in your lab where you’re endlessly polishing the damn thing.” And he would know. He’s CEO and co-founder of Stack Overflow and also founded Trello, FogBugz, and Gomix.
The cost of hiring hybrid app developers
The cost of building a hybrid app that can run on both Android and iOS is generally lower than building one native app. However, there are a few caveats:
- Because these aren’t native apps, you will have to invest a considerable amount of money into making it feel native. There are ways to do this, but it’s not as easy as if it was native. This could bring the cost up to the equivalent of 2 native apps.
- Apple has a fairly strict app submission process where real people use your app to check that it fits their guidelines. If hybrid apps don’t feel like iOS apps, they might be rejected which could delay the launch (costing more money to fix the app).
Using Device Features
Depending on the complexity of your app, you may want to tap into the various features the device itself has like the accelerometer or camera. Once again, the best way to get access to these things is by building fully native apps . But, if you build your app in PhoneGap, you can use PhoneGap plugins to access those features. You can search for anything you need here. Using plugins means relying on someone else’s code or possibly writing your own plugin if you can’t find something that fits your needs.
If there’s one word that sums up what your user cares about, it’s performance. If they don’t like the performance of your app, they will simply find another one.
Native apps have the best overall performance, period. In the early days of the Facebook mobile app, the company took a bet on HTML5 apps. Later, Mark Zuckerberg said that was one of the biggest mistake the company ever made, as the technology was way too young at the time to provide the experience users expected. Let’s dive into the various areas of app performance.
Since hybrid apps are basically just browsers, they’re good at showing apps that mimic the experience you would get in a browser on a computer, namely pages. If you app is just a series of pages and doesn’t have impressive graphics, a hybrid app may be just fine for you. However, building a game or an app with lots of animation would not be a good fit for a hybrid app.
Apps are supposed to “feel” right. If you swipe an element in a certain direction, you expect it to react immediately and according to your wishes. This is easy in native apps. Not so much in hybrid apps. Though developers could try an external library like Hammer.js to get native-like gestures.
Data processing needs
You have a few options for the kinds of developers you can hire to get your job done. The classic options are hiring someone full-time to work with you, hiring a freelancer, or hiring an agency. In an extreme case, you might find yourself learning to code in order to build an app.
The process for finding developers for native and hybrid apps is more or less the same except for one major difference. If you decide to build two native apps, you will likely need 2 developers as most specialize in only one platform
Having said that, finding a quality developer, to hire as a freelance or employ, is really, really hard. That’s with the assumption you have a fixed budget and it’s not even that big, which is where we all start with, right?
So you might find the option of hiring a single developer who can build your app for two or even more platform a much more feasible endeavour than building a small team of native app developers. Trust me, costs will add up pretty quickly if you’re building natively and hiring different people for it.
So, how do you find developers?
Finding iOS developers can actually be really difficult because they’re in high demand. The best ones are taken and the rest are overloaded with projects. Android developers can be a bit easier to find
Here are a few things you can do to try and find a developer:
Search freelance websites
Freelance sites like Upwork have a very wide range of developers in terms of quality. You’ll have to vet their skills for yourself – expect to pay $35-$100/hour for a good mobile developer. Sites like Crew or Toptal have pre-vetted developers available for hire, though generally more expensive ($50-$200 per hour).
To find developers, you have to hang out where they hang out. Often, that’s in-person at meetups. They go to hear about the latest technologies and how to use them. The most popular site for tech meetups is meetup.com. The added benefit of meeting developers at these meetups is that you know they’re keeping up with the latest development methods and technologies.
Approach app agencies
There are thousands of digital agencies worldwide that build websites and mobile apps for other companies. The advantage with hiring an app agency is that you will get a lot more than if you just hire a freelance developer. An app agency will have in-house designers and marketers who can help develop your app.
Case Study – Building a News app
Say you want to build a news app. How would you go about it? We made a list earlier of some of the considerations that go into the hybrid vs. native decision so let’s go through each one as it applies to a news app.
News apps don’t seem very complex. For the most part, they deliver information in text or video form. Your news app will probably be very similar to other news apps from major publishers, like the BBC, Huffington Post, Reuters, The Times. It can be separated easily into pages: front page, sections, articles, pages, comments. Once you add support for push notifications, options for users to select what alerts they want to receive, comments, sharing, you’ve done it. Sounds simple? It may be, but once you consider you’ll need to integrate it with your CMS of choice (where the content comes from), you’re still looking at several weeks of work, for each platform if you’re building native. And how about triggering notifications for new content? Well, now you need a backend too.
The best experience you can give a user for a text-based app is an uncluttered page with text that is easy to read. Navigation is important but most time in the app will be spent reading articles, not flipping between different sections. Since you won’t have to invest a lot of time in the UX, it is worth going native.
Poor app performance is one of the biggest attributors to people leaving an app. But in the case of a news app, that’s unlikely to be the case unless it’s really bad. It shouldn’t be hard to create a news app that performs just as well in hybrid form as it does in native. It’s just pages of text.
Time to Market
For a news app, the fastest time to market is a week, and that’s for a native app! How is this possible?
As we’ve established, native apps can be expensive, especially if you’re looking to build a custom app from scratch, not to mention time-consuming (when you have to build for multiple platforms). What if you could get an affordable native app? With our MobiLoud News platform, we are focused on making native apps easy and inexpensive for a specific kind of customer; WordPress news publishers.
Unlike other “app builders”, we focus on doing one thing and doing it well. Publishers and bloggers get plenty of customisation options — including, colour scheme, style and branding. Plus, all of the advantages of native apps, on both iOS and Android. We provide these features at a fraction of the price a developer would charge.
If you’re using WordPress, MobiLoud is a simple, effective and professional way to launch your own mobile apps.
You need a spectacular app. By building it native from scratch, you can get there, but it will cost you. You can build it hybrid and save time and money, but you won’t get the native experience. The timeframe for both of these solutions is months.
Or you can get native apps in a week using MobiLoud News. It gives you a fully native app, with all the UX and design details you’d expect from a professional news app, without the cost and time required to build. How? By focusing on the WordPress publishers niche we can provide a great product that offers a professional result at a fraction of the cost. And your app is live in a week, not months.
Case Study – Building a Social Network App
Although social networks seem complex due to their size, the complexity of the app for each individual user isn’t off the charts. It can be split up into a few fairly simple areas like a feed, a profile, and messaging. This shouldn’t require a native app. Hybrid apps can handle this with relative ease.
The user’s experience in a social network app is quite important. Social networks work because they form a “network effect”, which means the app gets more valuable the more people are on it. Would having Facebook be fun if you were the only one using it? No, so in a social network app, you need to encourage people to invite their friends. This is no easy task. It can be scary to invite people to a new app. What if they don’t like it? A great UX and UI can often be the thing that makes it easier to sending out invitations. You can absolutely achieve great UX in a hybrid app, but because the goal of a social network is to keep growing, you may find yourself needing to build a native app in the future. Maybe it’s worth building it from the start?
While social networks used to be mostly profiles and photos, today they’re using more live video, recorded video, and messaging. Complex features like live video are probably best left for native, but everything else can easily be handled by hybrid.
Time to Market
Building a new social network app from scratch is a lot of work and you’ll only find out if it’s successful months after launching it. As an owner/CEO, your job is to minimize the time and cost for you to test whether your idea can be successful. Therefore, a sacrifice of going hybrid in favor of a quicker time to market may be useful. You also have the option of turning your Buddypress theme directly into a native app using Canvas.
Social networks need to wow users in order to get them to invite all their friends. If the app isn’t impressive or better than apps they’ve used before, there’s simply a lower chance that they will share the app. Therefore, social networks need to be done right the first time to succeed. Keep that in mind when choosing your app technology.
There are many different directions in which you can take your app, all of which have their pros and cons. There will always be some kind of limitation of time or money that will push you to make a certain decision about your app. What’s important is to spend enough time thinking and calculating before you start building. Apps are expensive enough that you may only have one go at getting it right. Read as much as you can about the different kinds of apps and the development stages. If you can, get in touch with people that have gone through the process of building each of these kinds of apps. They will be able to give you the best opinions