July 02, 2020 | 4min read
Native vs. Cross-Platform Mobile App Development
Not sure how to approach your mobile app project? Today, we break down native, cross-platform, and hybrid app development—pros and cons and what to consider.
Cross-platform app development allows you to create apps for iOS and Android simultaneously, which, in result, saves you time, money, and resources. It’s also easier to maintain; once you find a bug, you can solve it for both platforms simultaneously. Additionally, if you’re using React Native or Flutter you can develop native-looking apps without needing native developers. You can read more about React Native’s benefits for business here.
What’s not to like?
Well, there are some cons. For example, cross-platform frameworks like Flutter and React Native allow for less development freedom and customization than a native approach. It can happen that during the development process your project hits “a wall”, e.g. the list of content in the app is long, and so it starts scrolling slowly (because of the platform’s insufficient performance), or your fancy animation doesn’t look very fluent. In such situations, you have to add native elements, which can take a lot of time.
Here are some cross-platform frameworks you can consider for your project.
- React Native—was created by Facebook and released in 2015. Since then, it has been used by a lot of companies: UberEats, Instagram, Bloomberg, just to name a few. Airbnb also started out with React Native, but after the company grew and their mobile app met a lot of bugs and delays along the way, they’ve decided to move to native. Despite that, React Native allows developers to create a mobile app that works on iOS and Android, while still getting great speed, efficiency, and overall look and feel of the app.
- Flutter—created by Google and younger than React Native, it’s still less popular among the developers. However, it’s catching up fast, having more stars on Github than React Native (at the time of writing this article). According to many app developers, Flutter is easier to set up than React Native and has better tool support. If you’re curious about the pros and cons of Flutter head over to our article.
- Xamarin—created by Microsoft, it’s a .NET developer platform made up of tools, programming languages, and libraries for building Android, iOS and Windows apps.
- Ionic—an SDK for hybrid mobile app development based on HTML5 programming language. It focuses mainly on the look and feel, and UI interaction of the mobile app. Together with Xamarin, they are way less known to developers than React Native and Flutter.
These days you don’t need it that often actually. With cross-platform frameworks offering faster time to market, most businesses opt for React Native or Flutter, instead of native app development. We can see it at Polidea—most of our client’s projects involve simple apps that rely on BLE. However, there are some cases when you should take advantage of the Android or iOS experts.
If your mobile app is solely based on system components of your phone (e.g. camera, sensors), involves AR technology or needs to work in a background—go for native. Cross-platform development frameworks won’t be able to deal with different system components of iOS and Android with one code. Same goes for custom UI elements—if you want your mobile app to have that native look on both platforms you’ll need to write the code for each one of them. Even though React Native offers native elements, they are very simple and will never be perfectly native.
From the development process perspective, the truth is that even if most businesses choose cross-platform development a project often requires some input from a native developer. Why? Because the mobile app still probably uses open source libraries that are inherently native. Or your project grows and suddenly requires a native component (more on that later). Or, as it always goes in the development process—there’s a bug. And if it’s not caused by React Native or Flutter, then someone needs to dig deep into the native code.
So yes—cross-platform development is used more often and for a good reason, but it doesn’t mean that you don’t need a native developer on board.
Hybrid app development can be more demanding when it comes to assembling the team—here you need both native and cross-platform developers on board. Usually, the process starts with building the cross-platform part of the mobile app, and the native components are added along the way. When bugs occur, fixing the hybrid environment is more challenging, as the developers have to work in two environments at the same time.
It rarely happens that a project owner is sure he or she will need a hybrid app development from the get-go. More often than not, if the project involves a lot of native elements—it’s better to go with native app development. If needed, you can always move your native app screen by screen to the cross-platform framework. Of course, there are situations where you start with cross-platform development and then the project grows so much that Flutter or React Native can’t catch up. In this case, the number of bugs and issues might force you to go fully native.
Whether you go with native, cross-platform, or hybrid app development, be sure to have the right experts in your team!
Lead Software Engineer
Senior Communication Specialist
You might also like
August 04, 2020
Société Générale and Their Journey to Open Source
Our PM, Karolina, had the chance to talk to two men from Société Générale before the Airflow Summit 2020 about the company's transition to Apache Airflow. Here's what she learned.