Pros & Cons of Cross-Platform Mobile Development: Is It Right for Your Project?
The growing popularity of mobile apps among various businesses, both physical and digital, makes developers search for new cost-effective and faster solutions to build apps for iOS and Android. Cross-platform app development technologies offer an alternative to developing separate apps on native platforms’ languages — a single set of code with minimal changes is used for creating both iOS and Android apps.
At Surf, we have over 10 years of experience creating mobile apps with both native and cross-platform frameworks for banks, stores, restaurants, streaming platforms and other businesses. In this article, we’ll talk about the pros and cons of cross-platform mobile application development software and review one of the most popular of them, Flutter, so you can make an informed decision when choosing between native and cross-platform technologies for your app.
Cross-platform vs native
Advantages of cross-platform development
Speed of development
Cross-platform frameworks let developers create apps for two different platforms with just one set of code, which significantly reduces the time and cost of development. Of course, the speed of development depends on the app’s complexity, features and integrations. But, according to our experience, creating an app with such cross-platform technology as Flutter requires 20-50% fewer development houses than building native apps with the same functionality.
App development cost
If you build native apps for iOS and Android users, you’ll need two teams of developers writing code in two languages: Swift and Kotlin. With a cross-platform framework, both apps can be built by one team of developers. A typical native development team consists of 3 Android developers, 3 iOS developers, a designer, a QA engineer and a project manager — in total, 9 highly skilled (and, accordingly, paid) professionals. A cross-platform development team for the same project would likely require only 7 team members: a designer, a project manager, a QA engineer and 4 developers. A smaller team size means a significant decrease in a project’s final cost.
For example, when Surf developed apps for Rigla pharmaceutical chain, the client required 6 apps: Android and iOS app for each of 3 brands. Using Flutter cross-platform framework, we’ve built all 6 apps from a single code base, saving 40% of the project’s initial budget.
After the initial release of apps, maintaining two separate native apps is a resource-consuming enterprise. Each platform will have its own set of bugs and issues, while developers will need to work on different fixes and updates for each app. The costs of code maintenance increase even further with the releases of new iOS and Android versions. Support of a cross-platform app is a less complicated process since, in the majority of the cases, identical code requires identical solutions for both platforms.
Disadvantages of cross-platform development
When it comes to performance, nothing beats an app written in a code language native to the platform. Because native apps have direct access to the device’s resources, a native app uses at least half less CPU power than an identical app built with cross-platform technology. When it comes to memory usage, native apps are also far less demanding on the hardware.
However, the performance of cross-platform apps varies greatly, depending on the technology used. For example, apps built with Cordova cross-platform framework execute in a WebView, which essentially makes them a set of web pages embedded in an app. This technological solution can result in poor performance of apps with heavy graphics and games. On the other hand, such frameworks as Flutter and React Native, thanks to their optimization and architectural solutions, handle animation and multiple graphic elements almost as smoothly as native apps, at least to a degree that the majority of users won’t spot a difference.
When built with a cross-platform framework, apps with complicated logic and platform-specific integrations are at a higher risk to have issues running on one of the platforms. Also, cross-platform frameworks usually have delayed access to the latest Android or iOS updates and features, which makes them not the best choice for building apps focused on the latest and platform-specific technologies.
Nevertheless, plenty of potential bugs and errors can be prevented at the development stage by means of high-quality code and proper testing. Thanks to the increased popularity in recent years, the most popular cross-platform technologies now support integrations with many third-party testing tools and have large communities, members of which are ready to help fellow developers.
What is Flutter
One of the popular cross-platform frameworks, considered the best technology for cross-platform mobile development by many, is Flutter. Initially released by Google in 2017, Flutter runs on Dart programming language and offers plenty of possibilities to build smooth and beautiful apps for iOS and Android. The framework concept is based on widgets, which serve as building blocks of an app. The appearance of widgets updates automatically adapting to the visual style of a platform the app is launched on. The framework uses a powerful graphic engine Skia that provides stable FPS even in apps with heavy animation. Read our in-depth article for more details on Flutter architecture.
Being a relatively novel technology, Flutter has quickly gained popularity among developers all over the world. We at Surf have chosen Flutter for various projects, from an app for a video-streaming platform to a corporate banking app. Let’s take a look at some examples of apps built with Flutter and why Flutter might be the framework of choice for your next app.
Apps built with Flutter
My BMW app was developed with Flutter by the company’s in-house team. The app allows car owners to remotely check the amount of fuel in the tank or battery’s charge and the car’s location. If a car requires oil change or other technical maintenance, the app will promptly send a push notification. Also, some car models support Remote Services of My BMW app, such as locking and unlocking doors remotely and viewing area around the car in 3D.
The Hole is a video-streaming app built by Surf for Medium Quality, a large YouTube publisher and production company with an audience of over 16 million users. To make watching content on mobile devices comfortable, Medium Quality films many shows vertically, while horizontal videos get automatically cropped by the app to fit the screen size. Interactive quizzes and series that allow viewers to choose plot turns are just some of the features that make the platform stand out among its competitors. The choice of Flutter framework ensured smooth UI animations and screen transitions, while the client was able to save about 40% of the initial budget compared to the development of two native apps.
Stadia is a gaming platform developed by Google. The app allows users to stream and play video games on multiple devices. Thanks to cloud-based solutions, a user can start playing a game on their smartphone and seamlessly continue on TV or laptop. Also, Stadia allows you to start playing games right from the moment of purchase, downloading and uploading files in the background.
Learn about other apps built with Flutter in our dedicated article.
Why choose Flutter
As we said before, developing apps with cross-platform frameworks saves time and money, because there is essentially one app to be built for both iOS and Android devices. Flutter takes things even further with the Hot Reload feature. It updates the app instantly when its code gets changed — the developer can experiment and try different solutions without slowing down the process to refresh the whole app.
Like any other cross-platform technology, Flutter uses its own library of UI elements.
However, in contrast to Apache Cordova framework, for example, Flutter updates the appearance of UI (fonts, colors, animations) automatically to match the visual style with Material Design and Cupertino style systems. This way, the developer can easily make the app maintain a consistent native look and feel according to the platform used.
Many developers consider Flutter to be more secure than other frameworks because its source code is compiled into native code, which makes the code unreadable to humans and complicates the reverse-engineering process. Also, Flutter fully supports the integration of security features such as Touch ID and Face ID. These aspects, together with other benefits of the framework, make Flutter a good fit for creating banking apps. One of the most remarkable cases of Flutter usage in fintech is an app for one of the largest neobanks, Brazilian Nubank, which has over 40 million customers across the globe.
Surf was the first developer in Russia to build a banking app with Flutter. Our corporate banking app for Rosbank allows users to comfortably manage the finances of several legal entities or companies within a bright and modern interface. The app won Tagline Awards 2020-2021, the highest Russian award for interactive projects in the Banking, Finance, and Insurance category.
Currently, Flutter is the most popular cross-platform framework among developers. Taking into account the technology’s young age and the fact that it requires learning Dart programming language, Flutter has gained popularity at an outstanding pace over the past few years, overtaking both React Native and Apache Cordova, two other mature cross-platform frameworks.
The number of developers actively using the framework says a lot about its capabilities and performance. Also, a large community makes the development process easier: there are many ready-made solutions, resources and people willing to help in case you are stuck at some point in the development of your app. The rising popularity of Flutter and multiple cases of using it by renowned and wealthy companies proves that the future of the technology looks brighter than ever.
When to choose Flutter
Summing up the features and advantages of Flutter, let’s see what types of apps are best suited to be built with the framework.
- MVPs and app prototypes. If you need to build a minimal viable product (MVP) — an app with essential functions in a short time frame, Flutter is a great tool for that. When developing an app on Flutter, you’re building apps for iOS and Android almost simultaneously, while the framework’s Hot Reload feature allows you to apply changes and experiment with code on the go. Decreasing time to market is essential for startups in the fast-paced digital environment, and Flutter can help deliver the working product to investors and customers as quickly as possible.
- Beautiful and smoothly working apps. Flutter is a highly optimized framework with a powerful graphics engine, and it shows fewer dropped frames and higher FPS compared to other cross-platform technologies. So, if your project is an app with heavy animations and visuals or one in which a short response time is essential (stock trading platform, for example), we recommend going with Flutter.
- Native looking apps. If you want to build a cross-platform app that looks and feels close to an app programmed with Android or iOS native technologies, go with Flutter. Although the framework doesn’t use native UI elements, it updates their appearance automatically to match the platform’s visual style and supports native scrolling, navigation and gestures.
If you want to develop an app specifically for one platform, your concept is focused on platform-specific features or you want to update the app as soon as new OS versions get released, native development is your best choice in terms of convenience, performance and stability. Otherwise, if you want to create the app for Android and iOS users, consider building the app with cross-platform mobile development tools.
Cross-platform frameworks have multiple advantages compared to native ones, including faster development process, smaller team size and reduced costs. Popular cross-platform mobile app development software, such as Flutter, is highly optimized and supports integration with many third-party libraries and kits, effectively neutralizing common drawbacks of cross-platform development: poor performance and lack of tools for specific tasks.
Surf has extensive experience developing mobile apps using both native and cross-platform technologies. Over the years we’ve made apps for e-stores, restaurants, banks and digital platforms. If you want to discuss your project and estimate its costs fill in the short form and we’ll contact you shortly.