Contents
    Eugene Saturow Head of Flutter

    Cross-Platform Mobile App Development: Pros, Cons, and More Details

    Cross-platform development of mobile applications is the optimal solution for various business areas, from e-commerce to fintech to entertainment apps, and more. This is an efficient way to create a mobile application from scratch and reduce the development budget without losing quality.

    We at Surf have been delivering our clients native and cross-platform mobile apps since 2011. It should be noted that some benefits of a technology or an approach become visible over a long distance. The more intensively we work with it and the more closely we follow the updates, the deeper we understand how to use its strengths. And as a result, we get maximum efficiency.

    In this article, we’ll analyze in detail what is specific about the cross-platform approach, what projects can be implemented with it, and when it is recommended to turn to native app development.

    Curious to check projects developed by Surf?

    Read our case studies

    Cross-platform and three more approaches to building mobile apps

    Before choosing a technology, you need to determine the goals of the project. It depends on which way the product will go and how it will develop. There are four main directions with which you can implement a mobile app: app builders, native, cross-platform, and PWA.

    Ready-made solutions

    You may refer to an app constructor or builder or an off-the-shelf solution. Using a set of standard functions, you can create a minimum viable product (MVP). This option is suitable for testing startup ideas or product hypotheses. But keep in mind that it will not be flexible and hard to be customized to your particular needs.

    The key advantage of the approach is lower cost and faster implementation as compared to any variant of the custom application development.

    But if your hypothesis has been successfully tested or the standard tools of the off-the-shelf solutions are insufficient, make a closer look at the next three options.

    Native technologies

    In this case, the process implies building apps for each specific operating system (Android, iOS). Each OS has certain guidelines, development environment, design requirements, and tools.  

    These technologies are a good match for creating advanced native apps with flawless performance and high speed, where strong OS embedded connection between the app and the device is expected. This is also the case when you need regular application updates or sophisticated features with top reliability and security.

    family banking app

    Read more about SBI Group banking app here

    But if you shall meet tight deadlines for deploying the application into the market and do not dispose of a high investment plan, check further options below. 

    Cross-platform apps

    This approach implies using a single code base for several operating systems and applying ready-made libraries and components. It is a strong alternative for the native approach and even leaves it behind in some respects. It can deliver excellent performance without compromising quality and offering a high level of flexibility and customization.

    KFC mobile app

    Story of creating mobile application for KFC is here

    Cross-platform development is a good match for projects where it is vital to get high quality at an affordable price. The cross-platform approach is a good choice if you need high performance and well-thought-out UI. Besides, it makes team management more transparent and reduces the risks of loss in synchronization and communication. It is easier to work with one developer team than switch between two different teams for two different OS.

    Flutter vs native team

    Speaking about cross-platform development, people usually mention such disadvantages as lower performance and delayed updates.

    As for performance, it varies greatly, depending on the technology used. For example, Cordova is not recommended for heavy graphics and games as it results in poor app performance. While Flutter can handle animation and multiple graphic elements so that they look as well as in the native apps.

    The release of new platform-specific functionality for cross-platform is really somewhat delayed. But do not forget that introducing new features into native code also takes some time. Therefore, the second cross-platform drawback is better to keep in mind but it is not critical.

    technologies comparison table

    PWA (Progressive Web App)

    PWA allows transforming a website into an application from the visual and functional point of view. With the website in its core, PWA can be viewed in a browser or installed on a smartphone and has functionality of a mobile application.

    In terms of technology, PWAs consist of Service Worker which is a layer between the application  and the external servers in charge for fast loading, offline access, push notifications, and more. The second component is App Manifest, a JSON file linked to the app HTML page that defines the look and behavior of the web app.

    PWA is growing in popularity as it is an asset for the businesses that are not planning  to spend much on creating a mobile app. But still there are some OS-related restrictions to be taken into account. 

    iOS vs Android restraints for PWA

    Popular cross-platform app development frameworks

    Today, the market offers a wide choice of cross-platform frameworks. Businesses shall weigh all pros and cons to choose among Flutter, React Native, Apache Cordova, Ionic and many others. The choice will depend on the type of the future app, the features you plan to add, the devices you need to cover, and other factors.

    Next, we’ll give you some insights about some of the cross-platform development tools.

    Flutter

    We start with Flutter not at random. Surf has been developing Flutter applications since 2019 being the framework early adopter. More facts about the framework you can read in our dedicated article.

    In our experience, Flutter has proven to be a reliable tool for implementing any functionality, from online stores, banking solutions to multimedia projects.

    Flutter-powered streaming app

    Read our case study about a video streaming platform built with Flutter

    We value Flutter as it gives freedom in choosing logic and makes it easy to follow the SOLID principle. So, the code is easy to maintain and test. This saves time on debugging and error adjustments, and therefore reduces the time to market.

    Flutter delivers the vital thing for modern apps and services – their flexibility as well as the possibility to quickly add and change product features without disrupting its performance.

    In general, Flutter is a revolutionary tool for the frontend as it covers not only mobile apps, but also web,  desktop, and PWA, and allows for 60% saving in terms of cross-platform development.

    Check our approach to Flutter apps development

    More info here

    React Native

    This is one more framework for cross-platform applications that competes in popularity with Flutter. React Native can provide high performance and the users will hardly see the difference as compared to native applications as it provides for smooth scrolling of screens, animations and transitions.

    But compared with Flutter, they have a different principle of operation. Flutter uses Skia and this results in excellent performance. Besides, it is possible to use platform integrations. ReactNative uses exclusively native elements, and with complex interfaces it can cause a drop in performance due to bridge in communication. With small projects, the difference can be not obvious.

    You can read a more detailed comparison in our blog article and below is a table with use cases for two frameworks.

    Flutter vs RN use cases

    Apache Cordova

    The technology comes from 2009 and is still in use today. It’s an open source development environment running on standard web technologies and can be used to create prototypes or quick apps with little complexity. The Cordova-powered apps consist of several HTML pages in the “shell” of the platform and use a special widget to perform the actions to make the  application close to the native one. However it lacks the performance of more modern frameworks like Flutter which will give you better results in terms graphics & animations as well as speed.

    More about detailed differences between Apache Cordova and Flutter you can read in our blog, and here is a brief comparison. 

    Flutter vs Apache Cordova table

    Xamarin

    This cross-platform framework was developed in 2011 as an open-source project. Xamarin  is free for individuals and small enterprises. But unlike with the three above open-source frameworks, large companies shall pay for its commercial use because it is integrated with Visual Studio.

    Xamarin is supported by Microsoft, has solid architecture, and the apps built with it show overall good performance. But in some cases the performance can be lower. For example, it is valid for Xamarin.Forms that shares most of the code between platforms and is not the best choice for heavy graphics. Some components also have to be developed separately for iOS and Android and consequently, the framework might not be the great match for UI-heavy apps.

    We described more other details about Xamarin in our dedicated article.

    Flutter vs Xamarin table

    Summing up

    The article above gives you a review of the possibilities offered by the cross-platform approach. It can save you up to 60% of the budget without loss in quality and performance. But be sure to hire skilled and experienced experts who can handle strong and weak points of every approach.

    If you still have any open questions left, do not hesitate to contact us. We are ready to discuss with you any details.