The mobile phone operating system landscape was much more diverse 10 to 15 years ago. There was Windows Phone, BlackBerry OS, and Symbian along with the now well-known iOS and Android.
However, the variety of operating systems was a real challenge for software developers, who had to build a whole new app for each platform they wanted to support. The development process a decade ago was much harder and more expensive than it is now. Developers released their apps on the operating systems that were most popular among their target audiences and ignored less popular OSs.
Symbian, BlackBerry OS, and Windows Phone ultimately proved less popular than iOS and Android, and supporting them didn’t pay off. So these platforms died, and the world of mobile operating systems is now binary: only iOS and Android have been competing for the last few years.
This has made life easier for app developers, as they can build two versions of their apps and reach the majority of smartphone users worldwide.
But things can be even better. You can now reach both iOS and Android users with a single cross-platform app. And along with targeting smartphones, you can use a cross-platform app to target other devices such as smartwatches and smart TVs — no matter what platform they operate on. With one app to rule them all.
It sounds like cross-platform development erases the borders between operating systems and gives you almost endless possibilities. But are things really so promising as they first seem? Let’s find out.
What is cross-platform development? A short comparison with native and web apps
If you’re already familiar with this topic, feel free to scroll down to the next section. But if you want to enhance your understanding of the development process, keep reading. We’ll keep it short.
Generally, there are three approaches to software development: building a native app, building a cross-platform app, or building a web app.
Native applications are classic apps. They’re built specifically for each platform. Usually, developers build native apps for iOS and Android.
- iOS — Apps for iPhones and iPads are built using the Swift or Objective-C programming language.
- Android — Apps built for Android smartphones and tablets are written in Java or Kotlin.
As you can see, apps for iOS and Android are built with completely different programming languages, which means you have to hire a separate team of developers to build, update, and support each of them.
Advantages of native apps:
- Exceptional performance. Native apps can handle high-end graphics and animations and provide fast response times.
- Consistent user experience. Native apps use the same UI elements and gestures as other platform-specific apps.
Disadvantages of native apps:
- Need to hire a separate team for each platform. Each native app is developed from scratch, and there’s no chance to share the codebase across platforms. Testing and bug fixing take twice as long. Also, designers have to do their jobs twice, since the design requirements are different for each platform.
- Most startups can’t afford the cost. The number of specialists required and the time invested in app development affects the cost of the project. Also, don’t forget to add the cost of supporting two separate applications.
Developing a native app is expensive, but it’s well worth it when it comes to performance-critical apps.
When starting your business, you likely can’t allocate the budget needed to build two separate apps. And the development time also doesn’t look inspiring.
But don’t worry: there are much cheaper and faster options.
Web app development
Web applications work in browsers. This means they can run on any device with a browser, regardless of the particular browser and the operating system.
Advantages of web apps:
- Available on all platforms. Build just one version of your app and everybody can access it from their smartphones, tablets, laptops, and even smart TVs.
- No installation needed. People don’t like installing new apps without a compelling reason. Web apps, on the contrary, are available at a link.
- Fast and cheap development. Your team has to design, program, test, and support only one app. Also, the rates for web development are generally lower than for native mobile app development. We’ve devoted an entire article to the topic of web app development costs, so make sure you read it.
Disadvantages of web apps:
- Limited performance. Web apps can’t perform heavy calculations since they can’t directly access a device’s hardware.
- Lack a native look and feel. Since there’s only one version of a web app, there’s no way to adjust it to each platform’s design guidelines.
Web apps can be built fast and cost much less than native apps. They’re also easy to update, which is great if you want to be on the edge of web development trends.
Generally, web apps are a perfect choice for startups when time to market is critical. They give you a chance to test your idea without risking a fortune.
Cross-platform app development
Advantages of cross-platform apps:
- High performance. A cross-platform mobile app demonstrates higher performance than a web-based application and is able to meet almost any requirements.
- Cost-effective and fast development. Compared to a native app, a cross-platform app has a significantly shorter development time and lower cost.
- Native look and feel. In most cases, a user can’t recognize a cross-platform app since it uses the smartphone’s hardware and native controllers, just as native apps do.
Disadvantages of cross-platform apps:
- Limited capabilities. Certain platform-specific features can be accessed only with native code. For example, you won’t be able to employ augmented reality in a cross-platform app.
The capabilities of cross-platform apps can cover the needs of almost any small to medium-sized business. The only cases when cross-platform apps may be insufficient are when performance is critical or you need to access platform- or device-specific functionality. However, these issues can be solved by employing third-party plugins or including native code in the app.
In fact, cross-platform application development is a silver bullet for almost any type of software. Let’s focus on this approach and find out more about cross-platform programming.
But before you jump to the next section, check out our comprehensive article on web, native, and cross-platform development to dive deeper in the topic and get answers to all possible questions.
Two types of cross-platform app development
You already know that applications for various platforms can be built with the same toolset. However, development approaches differ according to project needs, a developer’s skills, and the allocated budget. There are two variations on the cross-platform approach:
- Hybrid app development (Ionic, Cordova)
- Native cross-platform mobile app development (React Native, Flutter, NativeScript)
What’s the difference between hybrid and native cross-platform development?
Hybrid development — all you need to know
How does hybrid development work?
To make the website code available to the embedded browser, you need a wrapper. The most popular solutions currently are Cordova and Ionic. Both of these wrappers support a variety of plugins that extend the capabilities of the browser and can access most platform-specific features. Moreover, you can make your hybrid app available via the App Store and Google Play Market.
With a hybrid app, users never notice that they’re using a browser since WebView and WKWebView perfectly imitate a native application interface, gestures, and controllers.
A significant advantage of hybrid apps is that any updates to your software are instantly available to users — there’s no need to install updates from an app store.
The drawback of this approach is a unified design. It’s impossible to adhere to the design guidelines of both Google and Apple at the same time. When you build one application that will be used by iOS and Android users, some users will notice slight design discrepancies. However, hybrid apps do tend to look and feel rather native.
When should you choose hybrid app development?
There are dozens of situations when hybrid development is the preferable approach. Here are some of them:
- You want to test your startup idea but are short on money
This is a classic use case for hybrid development. With this approach, you can release an app in a short time and test it with real users without risking much money. After you prove your idea and attract investors, you can focus on native cross-platform app development for better results.
- You’re building a simple application but value the user experience
Weather applications, currency exchange rate apps, habit tracking apps, and similar products are based on one simple core feature. They’re not performance-critical, so building native apps for this purpose would be a waste of time and money. By opting for hybrid development, you can achieve a high-level user experience in exchange for reasonable investments.
- You have a web app and want to release a mobile version
Once you’ve developed a web app, you can reuse much of your existing code for hybrid mobile apps. Also, hybrid apps for iOS and Android share 80% of code on average, which is extremely attractive for software developers. Overall, code sharing is one of the best things about hybrid app development.
Top hybrid app examples
We’ve emphasized that a hybrid approach is good for new businesses and startups with simple applications. However, you might be surprised by all the capabilities of hybrid apps. Check out these powerful apps built with Ionic development:
- 86 400 app for Australia’s first mobile-only smart bank
Yes, a hybrid approach fits FinTech projects as well. 86 400 wanted to release an application for both iOS and Android simultaneously but were limited in time. Also, the founders planned frequent updates, and the idea that users could automatically access the latest version of the software seemed attractive. Currently, the bank has 225,000 accounts in Australia and has processed more than $1 billion in transactions.
- Amtrak railway app for passengers
With this Ionic app, passengers can book Amtrak tickets online, check schedules, manage their trips, etc. Amtrak services over 500 destinations across Canada and the US. Is this hybrid software user-friendly? More than 40% of Amtrak tickets are booked through the app, which proves its usability.
- Sworkit fitness application
Sworkit started as a pet project and grew into a popular worldwide fitness app with millions of users. The founder wanted to build an app by himself and chose Ionic since it enabled fast development for both iOS and Android platforms and was easy to handle even for one person. The hybrid approach reduced the development time by half and saved a lot of money.
- Toddy online marketplace for parents and babysitters
This is one of the projects our team is extremely proud of. We used Ionic to build the first version of an iOS application, after which development of the Android app was 90% faster. This proves the code-sharing advantages of Ionic in combination with Angular.
- WijnSpijs food tourism app
The WijnSpijs startup arranges gastronomical experiences for tourists in the Netherlands. To make this possible, we built two separate applications that needed to run on both iOS and Android: a fancy app for guests and a simple and intuitive app for restaurant owners. Both were built with Ionic by a team of just two developers.
By the way, the links to the apps mentioned above include real case studies with detailed descriptions of challenges, solutions, and the cross-platform development process. You’ll probably want to take a look at them.
Some time ago, hybrid app development was considered a compromise. However, over the last few years, the capabilities of modern browsers have dramatically improved, as have hybrid frameworks. As a result, most common app functionality is easily supported by a browser.
The conclusion is clear: hybrid app development is a stable and powerful solution that enables you to smartly use available resources.
But if you’re looking for an even more powerful approach, consider cross-platform native development.
Cross-platform native development — all you need to know
Previously, we talked about native development as the use of platform-specific technologies to build software for iOS and Android. Then we found out that it’s possible to build a single hybrid application and make it available on all platforms through a built-in browser.
Cross-platform native development is a smart blend of both approaches and is absolutely worth your attention.
How it works
Even though these frameworks are different, they share the same goal: to build custom apps for multiple platforms using the same technology stack. React Native and Flutter apps for iOS and Android may share much of the codebase, but there’s still platform-specific code that needs to be written from scratch for each app.
You also have the chance to create a platform-specific UI and ensure a native look and feel.
When to choose native cross-platform development
We’ve already mentioned that hybrid app development covers most use cases and is perfect for small businesses. However, you should consider cross-platform development with React Native if:
- You care for the user experience. iPhone and Android smartphone owners are used to different user interfaces: gestures, button styles, and controllers differ between these platforms. With cross-platform development, you can adjust the app’s interface to each platform and satisfy both groups of users.
Top native cross-platform app examples
Even though Flutter shows great results, React Native remains the go-to option for native cross-platform development. Let’s take a look at a few pieces React Native app developers have created. You’ll be amazed by their performance and their native look and feel.
- Uber Eats
The Uber Eats restaurant dashboard was initially built for the web, and developing the same functionality from scratch in Java and then in Objective-C or Swift was work that Uber wanted to avoid. React Native enabled Uber to reuse the code behind the dashboard. Also, cross-platform support enables a seamless experience for everyone: restaurant employees working with tablets as well as buyers and drivers using smartphones. In 2021, building an app like Uber Eats is a great startup idea. And with React Native, it’s as easy as ever.
Like most apps, Discord started its path as a web application. As soon as Facebook released React Native, the Discord team adopted it to build native mobile apps. First of all, there was no need to hire separate teams for iOS and Android app development — the core team could handle the task. A nice bonus was the ability to reuse code from the web application, which reduced the development time. The Discord iOS app shows impressive performance on the iPhone 6S and all newer iPhone models - just in case you still had some doubts.
At the moment when React Native went live, Pinterest’s native applications were already available in the app stores. But the team was willing to experiment, so they developed one screen with React Native and released it to iOS and Android. The results were even better than expected: React Native didn’t impact the performance and user experience but reduced the development time by 40%. Now, the company keeps combining a core written in native languages with new features developed using React Native.
As you see, React Native has multiple use cases:
- Building iOS and Android apps from scratch
- Reusing code from your web app in a mobile app
- Combining native and cross-platform native code in one app
Comparing React Native and Ionic will help you better understand the difference between hybrid and native cross-platform apps.
What other platforms can you support with a cross-platform app?
Cross-platform apps are not limited to smartphones. You can build cross-platform apps for:
- Smartwatches (Wear OS, watchOS, Tizen, etc.)
- Smart TVs (Android TV, WebOS, Roku TV, Tizen OS, Apple TV)
- Smart speakers (Alexa, Google Home)
You can convert an Ionic app to support Wear OS smartwatches or Tizen OS smart TVs within a few hours.
When working with React Native, you can reuse an app’s back end and only adjust the user interface to the platform you wish to support. This usually takes a matter of days.
Cross-platform development used to be a low-cost yet poor quality compromise solution that only startups with no initial investment would choose. However, these times are over.
Today, unicorns like Uber and Pinterest use React Native to reduce development speed and deliver high-quality updates faster. Banks choose Ionic for security-critical apps because it satisfies their requirements. And startups opt for Ionic because of the accelerated development speed, ability to iterate fast, and unquestionable reliability.