Understanding the hows and whys of different development approaches
Clients often ask us which technical approach they should take in creating a mobile app. Like with many great UX questions, the answer is “it depends”. In this case, it depends on budgetary/timing constraints, the type of tasks that will be performed using the app, and the expectations your audience may have.
Question #1: Are you sure you need a mobile app?
You’d be amazed at how often we hear clients struggle to answer very basic questions about why they need a mobile app. We will typically challenge answers such as “because our senior leaders think we should” or “because our competitors have one”. Your app should have real utility for your users, and you should be able to justify the investment in creating one. Before you define your technical approach, make sure you can clearly articulate why your audience needs a mobile app. This is definitely a worthwhile exercise, and may inform which approach you take to development.
Here’s a breakdown of the different approaches to developing apps, along with pros and cons for each.
Native apps are developed for a specific platform (e.g. iOS, Android) by using platform-specific development tools and APIs.
- Excellent performance (speed) if built right
- Can easily take advantage of platform-specific features (such as Touch/Face ID, device haptics)
- Generally offers users the smoothest and “most expected” UX possible
- Downloadable through the App/Play stores, which automatically creates an app icon on the user’s device, making the app easily accessible
- Often more time-consuming and expensive to develop due to the nature of the native development process
- Need to be maintained/updated every time a major operating system update is released
- You’ll need to do twice as much development if you want your app to run on iOS and Android
Cross-platform apps are developed for multiple platforms using a single code base, which can help speed up development time and reduce costs.
- Streamlined development process means speed the market and less maintenance
- App can reach a wider audience since it can run on any platform
- Performance and speed is not as good as a native app
- More limited in functionality and UX than a native app
Hybrid apps are essentially mobile websites packaged into a native wrapper. This means that they have a similar feel to a native app, but outside of a native “frame” (which could include navigation and certain controls), at least some (if not all) of the content is pulled in from the web.
- Easier/faster to develop (and less development is necessary) because they’re built using standard web technologies
- App can be downloaded from the App/Play stores
- If the app is essentially a mobile website inside a native wrapper, it’s easier to maintain, since updates just need to be made to a website
- The UX is typically not as seamless and smooth as a native app (since many parts of the app are really just rendering mobile web pages)
- While accessing a device’s native features is possible with a hybrid app, the development needed to achieve this is often a bit more complex
- Performance can be heavily dependent on a user’s connection (or lack of thereof), which could lead to suboptimal UX. This may mean not meeting users’ expectations, leading to dissatisfaction with the app
Progressive web apps (PWAs) run entirely on your mobile internet browser, which means you can target any platform with a single application and codebase. A PWA is essentially a website that is designed to look and feel as much like a mobile app as possible.
- Compatible with any modern platform, browser, or device
- Development can be done by almost any web developer, using standard web development tools
- Updating content is pretty much the same as updating a website
- Can only access a limited number of device’s native features (for example, camera, accelerometer, or GPS), but access to less common features might be limited, and depend on the device type and OS
- All of the “cons” for hybrid apps apply here as well, but additionally (and perhaps most importantly), PWAs cannot be submitted to the App store (the Play store, however, does accept them)
So, which approach is the right one for your app?
There are several factors to consider when deciding which approach you should take, and some key questions you should be asking yourself.
- How much budget do I have to develop and maintain an app? This is an important question to answer upfront. Native apps will always have a better, smoother UX, and will perform better. But they are more expensive to develop, and will require periodic updates over time. Is the cost of native app development in your budget?
- How important is speed to market? If this is a driving factor, a hybrid app or a cross-platform app may be the right approach, at least in the short term.
- What platform(s) do my users use? Understanding the answer to this will help you determine whether you target a single platform (say, developing a native app for iOS only, if that’s what most of your users use) — at least as a starting point. This could greatly reduce development cost and time.
- What do my users expect out of the mobile app? In many ways, this may be the most important question to answer. Your audience’s expectations are impacted by the level of service they are used to (from you AND your competitors) and what other apps are in the market that perform a similar function. You certainly wouldn’t want to disappoint your audience by developing an app that they feel doesn’t hit the mark.
Bottom line: there is no single right answer! The mobile app development landscape changes constantly, with native tools allowing for more rapid development all the time, and web technologies closing the gap on what’s possible to implement with just a web browser.
By asking yourself some key questions about your audience, their needs, the technical/feature requirements of your app, and your own limiting factors (time/budget), you should be able to determine the best approach for development. And remember, you can always develop a phased roadmap that allows you to build upon and evolve your approach over time.