With so many different technologies for developing apps today, it’s easy to get lost when deciding what’s best to use.
You need to consider the pros and cons of each app development technology in relation to the goals of the app you’re developing.
We’ll detail out the options and pros and cons in this article to help you make the right decisions.
Chapter 1: Web Apps, PWAs and Native Apps
Before building an app, you have to decide if a web app, progressive web app (PWA), or native app will be the best option for you.
The most popular app technology is by far a native app, and those are the ones we typically build for our clients.
We should mention that native apps also have sub-categories: fully native apps (built for a single platform) and cross-platform apps.
We’ll explain more about the two types in Chapter 2: Single-Platform Native Apps and Chapter 3: Cross-Platform Native Apps.
Web apps are just mobile responsive websites. They are dependent on being accessed through a browser and therefore are limited by the browser’s capabilities.
Since web apps work via a web browser on the smartphone, they require a cell signal or wi-fi to function properly. There is also tight security on access to mobile hardware.
This means web apps don’t have access to certain features, many of which can drive customer engagement and conversion, like offline support, push notifications, Bluetooth, smart assistants (Bixby and Siri integration), and other native-like features that users have come to expect.
Due to the lack of mobile hardware access, data presented in the app must be fed in by back-end APIs; for example, storefronts rely on back-end servers to feed images, text, and the payment gateway.
- Easier to maintain
- Cross-platform compatibility and wide browser support
- No approval process from app store owners
- Dependent on a network connection and does not work offline
- Not promoted on app stores and harder to find
- Very limited access to mobile devices’ native features
Progressive Web App (PWA)
A great feature PWAs have that web apps don’t is the ability to add the app to the home screen. They run in the browser, but once saved to the home screen, they function much like a native app. That means PWAs have access to the native hardware like the camera, microphone, photo library, and GPS location — basically, features the browser would not be allowed to access for security reasons. Another great benefit is that app developers can push updates to PWAs, much like a native app.
There are limitations on PWAs being able to access hardware features depending on whether the app is Android or iOS, but these are not as strict as they are for web apps. For example, support for camera features is only partly supported on iOS. Another example is Push notifications – they work great on Android but are not supported on iOS.
Google is pushing for PWA support on Android and features are widely supported. Apple has always been a more closed system in part due to security, so features are much more limited on iOS.
Third-party browsers on mobile platforms, such as Firefox and Edge, also have their limitations.
- Quicker development time than a native app
- Cross-platform compatibility
- Lightweight for a smooth experience
- Works offline and not dependent on a network connection
- Limited support for native features
- Many browsers to target and no uniform support for all
- No presence in app stores, therefore, lower traffic
- No access to advanced features such as Bluetooth and NFCs
Here’s a site that provides in-depth information about what is and isn’t supported in PWAs.
A native mobile app is installed directly on the smartphone and can work with no internet connectivity, although how much content can be accessed offline may be limited and is dependent on how the app is built.
Native apps are the ones you know from Google’s Play Store and Apple’s App Store. With over 4.35 million apps in their combined library, they are by far the most popular option of the three types of apps we’ll discuss.
There are several ways to make native apps: either by targeting the platform itself (Android or iOS) or by developing a cross-platform solution that works on both using one codebase.
These apps have full access to native features on the mobile or tablet they are installed on. To gain this trust from Google and Apple, all native apps have to go through a review process before being published. This is a short process that typically only takes about a week.
- Best UI experience since they have to conform to Google and/or Apple’s guidelines
- Better security with two-factor authentication, TouchID, and a closed system
- Best performance of all three development options resulting in higher user satisfaction
- Not dependent on a network connection, so they work offline
- Access to all hardware features on devices
- Published in app stores with access to a large audience
- Upfront costs are higher than the two other alternatives
- More complex for developers to build, so they take longer to build
- Less potential revenue if based on an in-app payment model since both Google and Apple take a 30% commission
Web Apps vs. PWAs vs. Native Apps
Chapter 2: Single-Platform Native Apps
In the earlier days of app development, apps used to be built with a codebase for each platform. Essentially, you would build an app for Android and another app for iOS in their native SDKs (software development kits).
Those days are mostly gone with the introduction of strong cross-platform development kits, so is there still a reason to develop a single-platform native app?
Oftentimes the answer is no; however, below we explain some advantages that still make single-platform native app development desirable.
Differences Between Single-Platform vs Cross-Platform Native Apps
The differences are becoming less noticeable with powerful cross-platform development kits maturing, but there are times you might want to consider developing a single-platform native app.
Here are some pros and cons of building an app for only one platform:
- Code optimization is at its best in a single-platform app
- These apps are faster and more responsive since they are developed using the platform’s core programming language and libraries. This makes the processing time faster than if the app has to translate another programming language (like a cross-platform app does).
- UI/UX are made specifically for the chosen platform
- New features are released immediately to the manufacturer’s own SDK first
- If it’s important to get access to these features on every new Android and iOS version release, you can’t get it any faster than you can with native.
- Cost increase
- Cost increase is likely if you want your app available on both the Android and iOS devices since two code-bases will have to be developed instead of utilizing one shared codebase.
- Only targets one market
- With a 47.3% market share for Android and 52.5% for iOS, it can be difficult to choose between the two, so you might want availability on both platforms.
- Development time takes longer
- Developing two separate code-bases requires two different teams (or at least different app programmers) working on their version of the app. The complexity of coordinating two teams instead of one will also add to the timeline.
- Maintenance is more difficult
- When a new feature is introduced, it will have to be implemented on two codebases, not just one.
When it comes to building the best performing, best UI/UX interface, and most new feature compatible app, single platform is the obvious choice. But as you will learn in chapter 3, there are also great cross-platform SDKs available that now have almost all of the advantages that fully native apps have (with few of the disadvantages remaining).
Chapter 3: Cross-Platform Native Apps
Cross-platform mobile app development allows you to build just one code-base for Android and iOS instead of building a code-base for each and essentially doubling the work.
This option saves on development cost and time if your goal is to release your app on both Google’s Play Store and Apple’s App Store. It also makes for a unified UI/UX experience coming from Android to iOS and vice versa as the interface will be identical.
There are too many options to count if we were to list all app development kits, so let’s focus on the three most popular development kits today.
The open-source mobile app development kit was created by Google in 2017. It is the newest of the three most popular app development kits but has become widely popular due to its ability to output high-quality apps.
Its programming language is called DART; built from the ground-up with a focus on a seamless UI experience between Android and iOS as well as optimized and fast code output. While being difficult to compete with truly native built apps in terms of speed and smooth performance, Flutter is shining among the cross-platform options and a worthy candidate.
- Hot Reload allows for a live view of the app while programming
- Any code changes will reflect immediately helping speed up the app development as features and bugs will show instantly.
- Less testing since the codebase is shared between Android and iOS
- You will save on cost by not having to test two different app codebases with the risk of different kinds of bugs on each. Note that you will have to test on both platforms, but fixing a bug on one platform is likely to fix it on the other platform as well.
- Support from a powerful company and over 500,000 developers use Flutter monthly
- This makes for a very active development community. The development kit gets regular updates with new features and offers well-written documentation.
- Scaling makes it possible to develop for Android and iOS and later expand to desktop and web apps.
- No direct API calling
- Instead, it has to go through either a plug-in or be written natively for each platform.
- Limited tools and libraries due to its young age
- Libraries save development time by being able to use already built functionality for specific features.
React Native is another big player in the mobile app development market. It was created by Facebook in 2015 and was made to be a replacement for building Facebook in HTML. Once it was available for public use, it quickly became widely popular as a cross-platform development kit.
- Hot Reload is supported by React Native allowing for developers to apply changes instantly without having to recompile the app.
- The user interface implements native UI components
- This makes for a uniform UI experience — it will look consistent.
- Option to target native functionality on each device to take advantage of each platform’s full potential.
- Plenty of tools and libraries makes for a quicker development cycle.
- Some features are not supported and will have to be natively programmed for each platform.
- Slightly slower applications when comparing Flutter and Xamarin.
- The user interface does not support complex transitions and animations.
Xamarin is the oldest and first cross-platform mobile app development framework of the three app development kits. It was the first framework that allowed developers to make apps that look almost like native Android and iOS apps. Its performance is also outstanding running at nearly native speed.
Developers use C# to develop apps in Visual Studio. Although Visual Studio is free in its most basic form — targeted for students and individual developers — it can get pricy for professional or enterprise use. The professional edition is at a subscription cost of $1,199 for the first year and $799 for renewal. Enterprise is $5,999 for the first year and $2,569 for renewal.
- Fast performance
- Almost comparable to native built apps
- The user interface support is strong
- It provides both cross-platform and native UI customization.
- Complete development framework with Visual Studio, .NET and C#
- High cost for Professional and Enterprise use
- Starting at $1,199/year for a subscription to the Visual Studio development kit.
- Minimal community support and finding an experienced developer can be difficult.
- Not great for gaming apps
- Complex graphics are not supported very well and platform-specific code will have to be written, defeating the advantage of using a cross-platform tool.
Flutter vs React Native vs Xamarin
Recommending one app development method over another is difficult since it really depends on the needs of your app. For example, social apps packed with features will have different requirements than a gaming or financial app.
Generally, both Flutter and React Native come out ahead of their older counterpart, Xamarin. While Microsoft is a large well-established company, its market is much more diverse than Google and Facebook, and it seems their focus on their app development kit is not as strong as Facebook and Google’s.
We hope this article has given you a good overview of the technologies available today. Now that you have an idea of which mobile app development framework will work best for you, it’s time to start thinking about the rest of the app development process!