Some weeks ago, we were hosting a webinar dedicated to cross-platform development. Our experts – including Co-Founder of itCraft, our Sales Director and experienced developer – discussed the leading technologies, project costs, risks of using cross-platform frameworks and when to choose native app development instead. We want to sum up the knowledge they shared and add a bit to it, so you can learn everything you need about the subject.
Table of contents
- What is cross-platform development?
- What are the main cross-platform technologies?
- Will the end-user distinguish the difference between native and cross-platform?
- What is the difference in capabilities between Flutter & React Native?
- What are the limitations of cross-platform?
- Flutter and React Native claims that the end product is also a native app. So is it native or not and what does it mean?
- What is the price difference between native and cross-platform development?
- Is there a difference in development time when using cross-platform?
- What are the commercial risks of choosing cross-platform over native development?
- When should I choose native and when cross-platform?
- Which apps have been built using React Native?
- Which apps have been built using Flutter?
- What commercial benefit is there for native development over cross-platform?
Here are 13 fundamental things you should know about cross-platform development.
What is cross-platform development?
Let’s start with the basics – you might wonder what actually is cross-platform app development and how native apps are different from those made with major cross-platform technologies. You need to know that cross-platform apps are made with a single codebase and work similarly on every operating system – like iOS and Android.
In native app development, programmers use dedicated languages like Swift and Objective-C for iOS or Kotlin and Java for Android. A cross-platform app is written in one framework and works on Android, iOS and sometimes even web or desktop in a similar way. Of course, devs can adjust the app to the OS using native components, but usually, the code reusability is higher than 90%.
Cross-platform frameworks are claimed to be excellent tools for Agile Scrum development because only one team works on the app, which promotes productivity and control over the project. They also have several benefits appreciated by software houses and product owners, but they are not entirely flawless. We will explore when native apps are a better choice below. Check out our article about this type of software to learn even more.
What are the main cross-platform technologies?
The leading technologies for cross-platform mobile app development are Flutter and React Native. Xamarin is usually mentioned as the third one on the podium, but IT companies rarely use Microsoft’s framework.
The technologies from Google (Flutter) and Facebook (React Native) are appreciated for many advantages they bring to the table. Sometimes our clients are confused and don’t know which framework will be better for their mobile app project. The answer is not obvious and usually depends on the requirements and proficiency of the team.
Both offer hot reloads, outstanding performance and native-like UIs. We will explore their differences later on.
Will the end-user distinguish the difference between native and cross-platform?
During the webinar, our seasoned Android and Flutter developer Krzysztof said that the users shouldn’t be able to tell the difference – mostly because primary frameworks advertise themselves as capable of creating “native-like experience”. That includes excellent UI and fluent animations.
What Krzysztof emphasized was a more vital issue – that the user will definitely be able to evaluate which app is well-written and which one is poorly-written. Following the guidelines of the chosen framework or language helps create a high-quality mobile app. The technology is a matter of choice – depending on the budget, client needs, and other factors.
Cross-platform apps might require additional styling to make them look similar to their native counterparts. Still, Krzysztof stated that there is a possibility to build a world-class app using such frameworks without a doubt.
What is the difference in capabilities between Flutter & React Native?
Here are the main differences between these two frameworks:
As you can see, a couple of differences distinguish both technologies and show their strong points and weaknesses. Still, they are both great for cross-platform development for iOS and Android.
What are the limitations of cross-platform?
During the webinar, Krzysztof mentioned that one of the main concerns is the size of the app. Cross-platform frameworks need to be included in the final file, which can add 8-10 megabytes to it.
Also, Flutter doesn’t use existing native components to build UIs but instead needs the elements to be done from scratch. It can be a severe problem when the developer wants to incorporate, for example, Google Maps into the app. Fortunately, there are plans to create a way to embed such components into Flutter projects – right now, it is not stable enough.
In general, the communication between the app and the device is what one should be cautious about. A cross-platform app acts a bit like a middleman in this case and can’t connect with APIs the same way the native apps can. A platform-specific code is required to enable it in cross-platform apps.
Karol, the Co-Founder of itCraft, mentioned that there were many tries to create multi-platform technologies before – starting with hybrid apps. Each generation of frameworks was solving problems of the previous ones. Right now, the most popular tools can achieve effects that are very close to native apps when it comes to user experience, performance and general quality.
From the discussion between our specialists, we can draw one conclusion. Suppose you need advanced features or connections between device-specific functions (GPS, Bluetooth, etc.). In that case, it is better to go with native apps because achieving similar outcomes with cross-platform frameworks can take a longer time and more resources.
Flutter and React Native claims that the end product is also a native app. So is it native or not and what does it mean?
Let’s start with an explanation. In hybrid frameworks, apps are displayed as web views in a simple browser. But a cross-platform app uses the exact same components as native apps. This way, the web intermediary can be eliminated, improving the user experience by eliminating glitches and performance issues. The native-feeling is achieved using UI components that look and work as they would in a native app made with Objective-C, Swift, Kotlin or Java.
So to answer the question – yes, the multi-platform apps can be considered native even though they are coded with other frameworks. What you need to know about native and cross-platform apps is that picking the technology should be based on app project requirements and advised by an experienced IT business consultant.
What is the price difference between native and cross-platform development?
It is true that cross-platform app development can be a bit cheaper than native app development, but the difference is not as spectacular as some claim. You will definitely save money by hiring one team to create your iOS and Android mobile app, but besides that, nothing really changes. We’ve explained that in our article about React Native myths:
“React Native is cross-platform. This means that it can be used to write apps for Android and iOS (and recently Windows) using the same technology. The specifics of these operating systems differ significantly. Components for Android apps must meet different requirements than iOS or Windows. When creating apps with React Native, we still need to build a separate, dedicated app for each system. The cross-platform advantage is that we only need a single technology instead of 2 (or 3) native ones.”
If you wonder how much it cost to build an app and what influences its final price, we recommend checking our article: How Much Does it Cost to Make An App in 2020? – where we consider various types of apps, features, technologies and all the other factors you need to remember about when estimating the app development budget.
Is there a difference in development time when using cross-platform?
Again, similarly to the question above. The time of app development can be shorter when using cross-platform technologies, as opposed to creating native apps. But the time-to-market won’t be decreased by 50%, as some people say. The main advantage here is that a cross-platform app is developed by one team simultaneously, which can eliminate potential delays.
With native app development, we have two separate teams that are coding an Android app and an app for iOS. Sometimes they can stumble upon some problems, or one feature will take more time for one team to complete. That can be risky, especially if you care about the quick release of your app.
Cross-platform apps can be recommended for clients that care about time efficiency and coding speed but don’t expect that your app will be done within days. It all depends on your project details, the app’s complexity, and other elements that can take more time to be done.
What are the commercial risks of choosing cross-platform over native development?
First of all, cross-platform frameworks are still relatively new on the market, so there might be not enough specialists in mobile app development that specialize in them. These technologies still evolve and are constantly updated, so you need a team that will be able to catch up without delaying the project. Even though the communities around these frameworks are growing, some issues might remain unresolved for a longer time than native ones.
Since hybrid apps became a thing, new technologies were regularly popping up to replace the old ones. Flutter is gaining enormous popularity now, but who knows what will happen in the upcoming months or years. That means some apps will need re-building in the future because old frameworks won’t be supported anymore.
When should I choose native and when cross-platform?
During the webinar, our hosts provided a comprehensive list of cases when using cross-platform app development is NOT recommended. That includes situations when:
- You don’t have all the requirements worked out – it is better to pick the framework after UX and UI is done
- There’s a need to integrate the app with external devices – for example, in IoT
- The app needs to use low-level mobile API
- The team you hired doesn’t have experience in multi-platform tech
- You need exquisite performance and quality of your app
- Your competition has a native app
Remember always to ask your software house for recommendations and pick technology based on all the known factors. Sometimes it is better to invest in a more expensive native app to get an advantage when it hits the Android and iOS app store.
Which apps have been built using React Native?
Many established brands decided to trust React Native and develop their software as cross-platform apps for Android and iOS. First and foremost, we have Facebook that released the framework. It would be weird if they didn’t use their own product. Funny thing though – the Facebook app is not coded entirely with their own technology. It was used only in some parts like Marketplace, Ads Manager and Analytics.
Another app that is done with this cross-platform tool is Instagram, which is owned by Facebook. When it was acquired by Facebook, the engineers of the biggest social network started to think how to implement their own technology into it. And that’s precisely what they did.
Airbnb is an example of an app that was utilizing the framework but doesn’t anymore. Their experience with it was positive, but they needed something else, so they switched to native app development.
Which apps have been built using Flutter?
Flutter became extremely popular in recent years and just like its competitor, it was adopted by many well-known brands that needed Android and iOS apps. The author of the framework – meaning Google – uses it in Google Ads, Stadia and Google Assistant.
Two prominent Chinese enterprises – Alibaba Group and Tencent – also developed their apps with Flutter. It is interesting how big corporations use multi-platform technologies instead of native app development to create products that will be used by millions of users. That is proof that excellent user experience can be achieved with these technologies.
You will also find more popular Flutter-based apps in the Android or iOS app store – like Groupon, eBay Motors, Hamilton, Philips Hue and SpaceX Go. Even simple games can be done with this framework! Check out our article about Flutter apps to see what are the capabilities of it.
What commercial benefit is there for native development over cross-platform?
If you decide to go native, you will get a competitive advantage, that’s for sure. Remember that if your competition picks native tech and you go for cross-platform – there is a big chance they will have a better product.
We should also mention that some projects just can’t rely on cross-platform technologies and you should pick native development for them. The best way to choose a suitable framework is just to ask your IT team for advice.
If you want to hit an app store with a product that will work on more than one operating system – there are several ways to go. Each has its benefits but also drawbacks. We hope the questions we answered above will give you a better outlook on two main tech options and this way, you will understand what can influence the choice of framework for your project.
Hiring a reliable business partner means you will get proper advice on technologies and other aspects of your product – so we recommend outsourcing your IT needs. You can contact us to discuss the idea you have and we will help you transform it into a real product.