If you’ve ever considered building a mobile application and wondered about different development paths there are to follow, you’ve come to the right place. Drawing on our extensive experience in building digital products for clients representing a wide range of market segments, we’ve set out to compile an ultimate guide to cross-platform mobile development in 2022.
What can you find in it? The overview of the current state of mobile development, the summary of the non-native solution’s pros and cons, the rundown of promising cross-platform frameworks to choose in 2022… Sounds good already? If so, sit back and find out for yourself what the near future holds for cross-platform app development.
Table of contents
- The current state of mobile
- Mobile development choices you can make
- How do I know if cross-platform mobile development is the right choice for my business?
- Pros and cons of cross-platform mobile app development
- Cross-platform mobile development frameworks to consider in 2022
- Is 2022 the year of cross-platform app development?
Let’s start from scratch and discuss the current state of the digital market. According to the Digital 2022 Global Overview report, we spent 6 hours 58 minutes using the internet last year, which amounts to four minutes more than in 2020. It may not be exponential growth, but it may indicate that the pandemic has solidified our habit of spending time online. What’s the place of mobile in this landscape? Out of all internet users, 92.1% access it via a smartphone or a feature phone. To give you a more precise number, there are now over 5.31 billion unique mobile phone users – compared to last year, this number grew by 95 million.
Looking back, we can also say with confidence that mobile is here to stay: in October 2020, it overtook desktop’s market share worldwide, and since then, it’s been slowly but steadily gaining ground.
Was mobile’s rule inevitable? Probably. The simplest explanation for this state of events is the change in our lifestyle. You probably know from your own experience that we spend more time online than ever before – especially in developed countries, where nearly everybody has access to a smartphone or a tablet. With the statistical user surfing the net for almost 7 hours a day on average, it’s no wonder that over half of this traffic (which equals o 3 hours 43 minutes) comes from mobile devices.
The preference for mobile solutions translates into pretty impressive numbers. As App Annie suggests, over 435 thousand apps are downloaded every minute – or at least that was the case last year. According to Statista’s report, on the other hand, worldwide mobile app revenues in 2021 amounted to over 400 billion US dollars. By 2025, paid downloads and in-app adverts are believed to generate over 613 billion dollars in revenue.
Apps are not only popular among modern internet users, but also quite lucrative for their owners; that’s a fact. That being said, there’s a fair chance your business plan involves building one. The trick is, however, choosing the right mobile app development path.
One of the first steps towards digital success is deciding on the mobile operating system – which, by the way, wasn’t so easy a decade ago, when Android, iOS, Microsoft, RIM, and Symbian were all viable options.
Today, the choice is much simpler as the only major players left are Android and iOS, which together account for around 99.22% of the total mobile operating system market share. Android wins in terms of the number of users and available apps (3.48 million available in the Google Play Store as of Q1 2021). However, there’s no shortage of iOS supporters as well, with over 2 million apps being available in the Apple App Store in Q1 2021. This fact alone is enough to show that neither of the two platforms should be overlooked.
With the choice of the mobile operating system being the question of users’ personal preferences rather than the matter of performance or availability, you’re likely to end up building a mobile app for both Android and iOS – and there are three ways to do so.
One native app for each operating system
The native solution, as the name suggests, assumes developing an application with the programming language native to a given platform: Java or Kotlin for Android and Objective-C or Swift for iOS. Being system-specific, native app development can be considered a mixed blessing. On the one hand, it provides access to all features of a given OS, enables unlimited interface customization, and makes it easier to prevent performance issues (although the final result always depends on how the developer handles the code). On the other hand, if you want to reach both types of users, you’ll simply need to build two separate apps which call for more time, money, and effort.
Progressive Web Application
Wait, aren’t we talking about mobile solutions? That’s true, but web apps can do the job of a mobile app pretty well. A good example is that of Progressive Web Apps (PWAs), which are basically websites that mimic the behavior of native apps, e.g., in sending push notifications, working offline, or simply being added to the mobile device’s home screen. Like any other option, however, PWAs are not flawless, as they consume more battery and can’t access all features of a given device.
One cross-platform app for two systems
Last but not least, there’s cross-platform development, which allows covering multiple operating systems with one code. It doesn’t assume writing code with a native programming language; however, if you take a closer look at it, you’ll notice that it ensures much a near-native experience thanks to rendering the interface using native controls.
With at least three different ways to materialize your mobile app business idea, you might be wondering how to choose the most suitable one. Below, you’ll find a list of criteria you need to consider if you wish to make a genuinely informed choice.
First and foremost, you need to decide if your app is going to be available on one or multiple operating systems. If you’re targeting a larger audience comprised of different platforms’ users, cross-platform development will be the go-to solution. If it’s enough for you to reach only Android or iOS users, on the other hand, providing a flawless user experience with a native solution will be your priority.
This criterion pertains to how far you want to go with the product. One way to address this issue is to clarify whether you’re aiming at testing your vision with an MVP or you’re ready to hit the ground running with a fully-fledged application. Cross-platform mobile development will work wonders in the former scenario because of its brevity. However, if implemented right, it’ll work out in the case of bigger applications as well. The other question you need to answer is that of your product’s functionalities, e.g., access to the mobile device’s hardware or platform-specific functions, which can be achieved with cross-platform solutions but will be easier with native development.
- native feel
The next thing to consider is how native your mobile application should feel to the user. Designing a mobile application with Material Design (for Android) or the Human Interface Guidelines (for iOS) in mind is what makes the digital product intuitive and user-friendly. Nonetheless, you can achieve a similar effect with some of the most popular cross-platform frameworks.
- price and time
One thing is for sure: native development is neither the cheapest nor the fastest. Building separate applications for different platforms requires employing more developers, which may cause a freshly-minted entrepreneur to exceed the tight project budget early on. At the same time, going for the cross-platform approach, you’ll end up outsourcing a smaller but equally professional team which is both a time-efficient and cost-effective solution.
Let’s assume you’ve asked yourself all the above questions, and you’ve concluded that native development is not your cup of tea. You’re leaning towards cross-platform mobile app development but before the die is cast, you need to analyze the pros and cons of this solution thoroughly. Afraid that the research will take too much time? Don’t worry; we’ve got you covered.
Cross-platform mobile developmentprosconswide market reachpossibly slower performancesingle codebaseUX and UI discrepanciesfaster and cheaper deployment reduced workload platform consistency
How cross-platform mobile app development benefits your business
You might have guessed that we wouldn’t devote an extensive article to the cross-platform approach if it wasn’t advantageous for various businesses, ranging from startups to large corporations. And you were right in doing so. Choosing to build your digital product with a cross-platform mobile framework, you’ll enjoy the following benefits:
- wider market reach
While each of us has our favorite mobile operating systems, you shouldn’t let personal preferences get in the way of your business success. Making your mobile application equally available to Android and iOS enthusiasts, you’re paving the way to significantly increased revenues in the future.
- one codebase
As the name suggests, the cross-platform approach allows you to write code covering multiple operating systems at once. Of course, there will be cases in which handling platform differences will require more time and effort. Nonetheless, one codebase will undoubtedly influence all stages of the software development process by allowing you to save money you’d typically spend on fixing and upgrading two separate sets of code.
- faster and cheaper deployment
Despite requiring only one codebase, cross-platform app development still has developers to think about ways to effectively handle OS differences such as UI or platform-specific store publication procedures. At the same time, one can’t deny that this approach will reduce the sketch-to-launch time. This, in turn, can translate into the possibility of saving a large proportion of the initial project budget, which you can later devote to perfecting your app according to the user feedback.
- reduced workload
We won’t lie: when working on a cross-platform project, it’s still advisable to hire developers with a deeper understanding of Android and iOS. Why? Just to name one reason, they’s expertise will come in handy during deploying the app in Google Play and App Store since both have very specific requirements. At the same time, however, deciding on cross-platform mobile development, you’ll need fewer resources. You’ll especially appreciate this benefit in the case of outsourcing IT professionals since the cross-platform approach will call for a smaller team.
- platform consistency
There’s no doubt that Android and iOS differ significantly in terms of both UX and UI. With cross-platform app development, most of these disparities are handled by default, which makes design and navigation inconsistencies less likely to happen.
What can go wrong with the cross-platform solution
Notwithstanding all the advantages mentioned above, cross-platform app development is not all fun and games, as you may be already suspecting. The main drawbacks of this approach include:
- possible lower performance
It’s not a secret that time is money – and the longer it takes for your app to load, the more users give up on it and the more money you lose in the long run. Cross-platform apps are faster to deploy; however, there are situations in which they may turn out to work slower than their native counterparts. If you’re up to developing a mobile game or an app with a complex video chat, for example, React Native or Flutter won’t work as efficiently as native technologies. However, at the end of the day, it all boils down to the type of project you have in mind and how the code is written.
- inferior UX and UI
Another issue pertains to the graphical user interface. If you take a closer look at Android and iOS apps, you’ll notice that they differ in navigation, buttons, lists, etc. When building a cross-platform mobile app, developers need to be aware of these discrepancies and make the final product user-friendly to the supporters of both operating systems. In the end, it may turn out that the cross-platform approach won’t save them that much time at all.
Cross-platform mobile app development has both pros and cons. But if you’re still reading this guide, benefits such as shortened development process, major time and cost savings, and near-native user experience that requires less workload must outweigh the drawbacks from your perspective. And you aren’t the only one to recognize the value of this approach. In fact, the ever-growing demand for cross-platform mobile applications has resulted in the sea of specific tools being available to businesses these days.
We know that choice overload can give you a severe headache. That’s why in this guide, we’re focusing only on the most prominent cross-platform mobile development frameworks: React Native, Flutter, and Xamarin.
To give you greater insight into what makes each of these tools a viable option for software development in 2022, we’ll examine them according to the following criteria: community support, programming languages they’re based on, code reusability, performance, interface, and prominent apps build with their use.
React Native is an open-source, cross-platform app development framework released by Facebook in 2015. Born as a product of an internal hackathon held in 2013, it has soon become one of the most popular alternatives to native development. As of February 2022, it has gathered over 101k GitHub stars and 2288 GitHub contributors. In the 2021 Stack Overflow Survey, 16.48% of professional developers chose React Native as the framework they’ve used most extensively recently, making it the fifth most popular non-web framework. In practice, the ever-growing community recognition is what makes it relatively easy to find a reliable and knowledgeable developer team to kick off your React Native project.
Learn once and write anywhere
While these components can’t be shared between the different platforms and require more work on the developers’ part, up to 90% of React Native Codebase can be reused. This value shows pretty well that the framework’s motto is not “write once, use everywhere” but rather “learn once, write anywhere.”
As far as the GUI is concerned, React Native can provide an almost native user experience thanks to using controllers native to both Android and iOS. It also employs the ReactJS library with UI elements, which speeds up the UI design process. Another interface-related factor that makes this particular framework worth considering when developing a mobile application is hot reloading, which allows introducing changes to the UI without losing the state of the app.
Talking about what makes React Native one of the go-to cross-platform mobile development frameworks in 2020, it would be a shame not to mention the regular updates which help the framework respond to the developers’ and users’ needs better. The notable changes introduced in version 0.67 (released in January 2022) include:
- Lean-core removals: DatePickerAndroid,
- Bump Gradle version to 7.2,
- Bump Kotlin version to 1.5.31,
- 0.67 continues to depend on Hermes 0.9.0, unchanged from 0.66.
The full changelog can be accessed on GitLab. And mind you – that’s just a small sample of how well React Native is adjusting to the changing expectations.
React Native: pros and (very few) cons
While React Native is not a flawless solution (for instance, its implementation requires at least basic knowledge of platform-specific components), it’s been trusted by some of the world’s largest companies, including Facebook, Instagram, Tesla, Uber, Pinterest, and Skype – and that happened for more than one reason.
Pros of using React Native include:
- time and cost efficiency,
- the nearly native look and UX,
- performance close to that of a native app,
- strong community support.
All of that makes this framework a convenient choice for both startups wishing to build a functional MVP regardless of a tight budget and larger companies.
Care for a little inspiration? Read how SportsHi, a US startup, benefitted from working with us on a React Native-based social network app.
The second framework to consider in 2022 is Flutter. Announced at Google I/O 2017 and released in 2018, it’s still a freshman to the cross-platform world. Nonetheless, with over 135k GitHub stars and 68.17% of engineers dubbing it one of the most loved frameworks in the 2021 Stack Overflow survey, Flutter seems to be doing better than React Native and is undoubtedly a force to be reckoned with.
How Dart makes Flutter one of a kind
The programming language behind Flutter is Dart, which Google calls “client-optimized” and suitable for building “fast apps on any platform.” Introduced in 2011, it’s a responsive objected-oriented language that is considered relatively easy to learn for two reasons: one, it draws from C/C++ and Java; two, on Dart’s official website you’ll find extensive and pretty straight-forward documentation. It’s also worth mentioning that Dart comes with a substantial repository of Flutter-compatible software packages allowing you to make your app even more complex.
Efficiency is inextricably linked to user experience and interface. As mentioned before, rather than relying on a set of native components, Flutter uses the visual, structural, platform, and interactive widgets for Material Design and Cupertino, all of which are rendered by the framework’s graphics engine. What’s more, Flutter leaves plenty of room for customization and emphasizes visual details, which makes it a good choice if you’re looking to design a pixel-perfect interface. We've seen that for ourselves while working on Ginny, our internal application that started as a parking management app with backend written in Go, Python, and Flutter, and is now evolving into a whole-rounded office management solution with Firebase BaaS – but still based on Flutter.
When it comes to Flutter’s updates, the latest stable release took place on February 3. According to the official release note, it involved merging 1525 pull requests from 155 contributors worldwide. Among enhancements introduced in version 2.10, there are:
- Update on Flutter’s support for Windows, including improvements for text and keyboard handling, as well as new integrations directly into Windows,
- Performance improvements, such as a faster implementation of type flow analysis,
- New support for icons and colors in the framework,
- Integration testing and tooling improvements.
Flutter is a young cross-platform mobile app development framework; thus, it shouldn’t come as a surprise that it hasn’t been adopted by as many fat cats as React Native. This doesn’t mean, however, that Flutter isn’t doing well on the digital playgrounds. As of February 2022, it constitutes the core of Alibaba, Google Pay, eBay, Toyota, Nubank apps, just to name a few.
Pros and cons of Flutter
What made these brands choose Flutter? It might have been one or more of the framework’s advantages, such as:
- comprehensive documentation,
- high app responsiveness,
- hot reloading feature that facilitates designer-developer cooperation,
- pixel-perfect UI and customizable widgets with a truly native feel to them.
Just like any other technology, Flutter is not flawless. One potential issue is that it may make applications quite large in comparison to other frameworks. This, however, is the risk tied to the nature of a given project and the experience of the hired developer team. A problem you’re more likely to encounter when choosing Flutter is that – being still relatively new – it sometimes requires to write their own functionalities which can’t be found in Flutter supported libraries. Nonetheless, the ecosystem is growing fast, and the numerous benefits of building your product with Flutter are enough to make you consider this framework for 2022 cross-platform mobile app development.
If you’re about to start working on your revolutionary product, React Native and Flutter aren’t the only solutions out there. An alternative framework that may prove just right for your business this year is Xamarin. This open-source framework was created in 2011 – which makes it the oldest one on this list – but it hadn’t gained momentum until five years later, when it was acquired by Microsoft. As of today, it boasts a community of over 60 thousand contributors.
Xamarin.Native and Xamarin.Forms: two approaches to performance and UI
What distinguishes Xamarin from other frameworks is that it offers two ways of compiling mobile applications: Xamarin Native (also referred to as Xamarin.Android/iOS) and Xamarin.Forms. The former approach prioritizes sharing business logic and, by making use of the native interface controls, enables almost native performance. The latter focuses on sharing code rather than business rationale, which results in the increased proportion of the code reuse on the one hand (with Xamarin, developers can reuse up to 96% of their C# code) and the decreased code performance on the other.
You might have already noticed that the performance and the GUI of the cross-platform mobile apps are closely related so we probably won’t surprise if we say that Xamarin’s two approaches to building apps have a major influence on the final look and feel of the interface. While Xamarin.Android/iOS allows developers to work with native controls and layouts, Xamarin.Forms is based on the standard UI elements, which allows for designing apps from a single API but at the same time might not be enough if you’re looking for an impeccably native look.
Xamarin: popularity check
When it comes to the use cases, Xamarin hasn’t managed to attract the attention of brands as popular as those mentioned above. Nonetheless, enterprises worldwide use Xamarin to build mobile applications.
UPS, Azure, Olo, and Academy of Motion Pictures Arts and Sciences, to name a few, appreciate the benefits of using this framework, such as:
- complete development ecosystem,
- full hardware support,
- high proportion of code reuse and near-native UX,
- stability ensured by Microsoft’s support.
All of these make Xamarin worth considering if you’re looking for a cross-platform mobile app development framework to power the enterprise solution.
In terms of the recent releases, Xamarin.Forms 5.0 brings to stable release several new controls and features, including App Themes (Dark Mode), Brushes, CarouselView, RadioButton, Shapes and Paths, and SwipeView.
Yes and no – at the end of the day, it all depends on your business objectives, budget, and time constraints. Nevertheless, cross-platform is sure a direction worth considering, especially if we’re talking about React Native and Flutter.
Looking for more in-depth comparisons of cross-platform frameworks?
The former is a mature and stable framework utilizing one of the most popular programming languages and boasting unwavering support of a large developer community. The latter, on the other hand, is a rapidly evolving technology that, regardless of being much younger than React Native, has already managed to win the hearts of many developers all around the world.
Whether you choose React Native, Flutter, or any other framework, the cross-platform approach is bound to save you both time and money while ensuring a maximized market reach.
Are you toying with the idea of building a mobile app? See how cross-platform can jumpstart your business!