mHealth App Development Technologies: Comparing Flutter and Native Development
With the COVID-19 pandemic and diseases emerging dynamically, digital health market size demonstrates faster growth than ever. For example, in the USA, it is predicted to grow at a CAGR (compound annual growth rate) of 26.9% in the next eight years, and that’s not all: according to the IQVIA Institute for Human Data Science’s Report, today, the number of mHealth apps has surpassed 350,000. The niche is so popular that entrepreneurs from all over the world are investing in mHealth apps development to help people take care of their health without leaving their homes.
But how to choose a tech stack for your mHealth app and offer excellent user experience both for medical staff and patients?
At Surf, we’ve been developing mobile apps for various niches, including healthcare, banking, e-commerce, and entertainment. Before the cross-platform framework Flutter appeared, we had used native technologies to create iOS and Android apps for our clients and their audiences. However, since 2019, we started using Flutter and have developed over 10 large-scale projects with it by today.
Based on our experience in cross-platform and native development over the years, in the article we’re sharing the results of our Flutter vs native comparison for mHealth app development. Read it if you still hesitate to choose native technologies or Flutter for your new app.
Most used types of mHealth apps
There are numerous categories of mHealth apps. Let’s learn more about them to predict challenges usually met while creating the apps. This is the first step to understanding what technology to choose for mHealth app development and why.
Healthy living apps
The apps are extremely popular among a wide audience and help people control their health metrics. For example, people with heart diseases or diabetics find the apps unrivaled in their everyday lives. The apps send reminders when any health metrics reach critical numbers and a user has a reason to worry about. Thus, the users can quickly take measures to help themselves.
The apps help practitioners monitor records and other data related to patients’ health, and share them. Thus, it’s much easier to diagnose any illness by checking symptoms. With such apps, patients have an opportunity to schedule their next appointments in a few clicks.
Remote patient monitoring (RPM) apps
This type of app is the most useful for patients with chronic diseases and their doctors. To monitor patients’ health changes remotely, doctors integrate the apps with medical devices that stay with each patient and send a warning if any risks for patients’ health appear. Doctors usually use web apps—it’s a convenient way to monitor health changes and deliver patients timely help.
Clinical reference apps
These mobile health apps are created mostly for medical staff and provide them with fast access to ICD-9 and ICD-10 and other top reference documents to help diagnose disease and offer patients quality treatment.
In this article we’ll discuss mHealth app development in terms of checking the difference between two approaches to their development. We’ll discuss what are the strengths of native development, and where Flutter can make the process faster and easier.
If you’re planning to create a web app, and looking for a reliable and cost-efficient tech stack, read our dedicated article about Flutter 3.0 for web development.
Key challenges in mHealth apps development
Mobile health applications are one of the most difficult types to build. The healthcare domain sets some extra requirements that motivate developers to choose the top tech stack. Let’s take a closer look at the challenges they face. Having a better understanding of the question, we’ll be ready to turn to the main theme of our article and compare Flutter-based approach and native technologies for mHealth app development.
High performance is vital
mHealth apps are widely used by patients with serious diagnoses and their doctors. This means that people’s health and well-being depend on how fast and seamlessly the app works, especially when we mean remote health monitoring. Any medical app should perform flawlessly, regardless of the number of downloads and store ratings. Performance becomes critical when someone’s life depends on how fast the doctor will be aware of the patient’s situation and take measures.
Strict security requirements at the core of mHealth apps development
There are various security requirements to follow in different countries and, creating an mHealth app, you and your developer team or vendor should not only know everything about them but comply with them in every detail. For example, in the USA, it’s HIPAA, in Singapore—PDPA, and in Canada—PIPEDA.
Easy navigation for different ages and background
Developing your mHealth app, consider laconic design. It is easy to perceive for different people, both for younger and older generations, and it’s a smart way to make navigation fast and smooth.
To make your UX/UI convenient for a wide audience, don’t use too bright or vivid colours—add gestures for faster navigation, and create TabBar with tabs located in logical order instead. Do not forget that identical elements should behave in identical ways—it’s extremely important for users to understand how your app works. The same refers to the font size: people with poor eyesight shouldn’t have any difficulties while using your app.
mHealth app development requires much time and money
To meet the challenges described above, the development team needs much time and resources to create an app. As any minute mistake can cost a patient’s health and a healthcare provider’s reputation, IT experts take particular care of each detail and don’t release an app before everything is perfect.
However, there is a solution that helps reduce custom mHealth app development cost and increase the development speed without compromising quality. And the solution is Flutter: since 2018, companies in various domains use the cross-platform framework to implement top business ideas and create products that become examples to follow.
At Surf, we have been developing both Flutter-powered and native apps, including mHealth, and we know exactly which technology to choose for a particular case. In the article, we share our expertise, and compare two approaches, giving reasoned verdicts on 5 important criteria. To make our arguments stronger, we also show you examples from our development practice and explain why we chose any tech stack for each of them.
Flutter vs native for mHealth app development: unbiased review
Faster time to market
Flutter provides extremely high development speed. The 3.0 version released this year allows to use a single codebase for several platforms—iOS, Android, Windows, macOS, and Linux. What does it mean for business? The main part (80–95%) of the project’s codebase is unified. Features and UX need to be adapted, but it takes far less time than rewriting an application from scratch. Native developers need to write different codebases for each of the platforms, and it’s a longer process.
For Flutter development it’s enough to have one developer team, while using native technologies means at least two teams (Android and iOS developers) working on your project. It’s not that easy, fast, or cost-efficient to hire and coordinate specialists for two or more teams simultaneously.
At Surf, we use both Flutter and native technologies in our projects. Our experience has shown that Flutter app development is approximately 20–50% faster than creating native mobile applications for 2 platforms.
One of our Clients, a pharmacy chain having 3,000 pharmacy stores, addressed us with a task to create 6 mobile apps—two apps (iOS and Android) for each of their three brands.
Had we done as the Client planned, it would have cost them a fortune. Instead, we offered to use Flutter and create 3 cross-platform applications with different designs instead of 6 native ones. The Client trusted us, and saved about 40% of the development cost and much time as well. As a result, the product was released to the market fast, and today, 70% of online customers of the Client’s pharmacies buy medicines via mobile apps, created by our team. Moreover, an average purchase size in the app exceeds an offline purchase.
Verdict: Flutter wins.
Flutter provides high performance on a par with native applications. However, there are some points we noticed while working with both technologies:
- Most native apps have lower CPU usage and memory expenses.
- Flutter is a perfect match in apps with typical logic.
- Flutter has its own graphics engine with optimization comparable to native. With the 3.0 version of the framework, developers can build user experiences for 120 Hz ProMotion displays.
- Flutter 3.0 offers an experimental Impeller tool that improves animations and rendering.
- With Dart, a programming language used in Flutter development, developers have the Hot Reload. This feature helps load the code into the app in debug mode instantly, without loss of state.
- Even comparing with other cross-platform frameworks, Flutter wins. For example, React Native apps are inferior in performance.
Verdict: Flutter and native apps deliver high performance. Meanwhile, Flutter is evolving day by day, offering developers new functionality.
Flutter offers numerous ways to boost your mHealth app performance and offer your audience flawless service regardless of the amount of simultaneous users. Read our article about Flutter performance tips to get some insights from our developer team.
Easy code maintenance
Flutter uses Dart, an easy programming language. Skilled developers can master it from zero for 2 weeks. Moreover, syntax of the language can be learned for several days if necessary. Dart was thought to become a programming language offering an easy onboarding and development process, and that’s how it works today.
Thanks to Dart’s simplicity, developers can write code, correct, and test it fast, without help from senior teammates. The technology makes Flutter mHealth apps surpass the native ones in code maintenance. As Flutter developers use a single codebase for iOS and Android mobile apps, they quickly detect issues, and, as we’ve written above, Flutter’s Hot Reload feature helps to promptly solve the eventual issues.
… And that’s not all. Dart offers an utility Dart Code Metrics, a static analyzer, and test coverage tools, thus, any problems are tracked and visualised to provide great code maintenance.
To compare Flutter health apps to native apps, the second ones are more difficult to maintain. Two codebases instead of one, creating updates for two mobile platforms, identifying bugs for both of them—all the things lead to more resources required for a project.
Verdict: Flutter wins. However, code maintenance depends on the developer team’s approach, not less or equal. Post-release support and project’s in-house transfer become easier if your vendor offers you comprehensive documentation while transferring the app for support to your in-house team.
To see how it works at Surf, read our case study about creating the first Flutter banking app.
Most cross-platform frameworks cannot offer such quality UI and UX as native. But it’s not about Flutter. Applications developed with this framework look visually indistinguishable from native ones: they look consistent, support smooth animation and native visual styles. In Flutter 3.0, there are all Material 3 features, such as dynamic colour, updated colour system and typography, and Android 12 graphic effects. It means that you can implement the most advanced design features while creating an app.
To compare UX/UI created with Flutter vs native technologies, look at the examples of app designs created by our team.
Here are designs implemented in Flutter-powered apps.
And here are designs we created for native apps.
Verdict: Both the technologies offer high quality solutions.
Developers availability & development cost
Flutter app developers’ salaries are higher than native developers have. For example, if Kotlin and Swift developers earn about $108,000 per year, Flutter (Dart) developers will cost you not less than $120,000. However, in this question many things depend on a region.
Though there are more Kotlin and Swift developers compared to Dart developers, the second ones can offer you a lower cost of an app development. And it’s easy to explain: Flutter developers use a single codebase for iOS and Android, while using native technologies means creating two codebases. Besides, Flutter teams include fewer specialists than native—so, you have less spendings.
Verdict: Though Kotlin and Swift developers’ salaries are lower, Flutter development final cost appears to be cheaper.
Curious to know about best hiring practices in our Flutter developer team? In the article, we share 12 years’ experience that helps us select developers for large projects: KFC, Y Combibator startups, and numerous banks. Read it to learn more.
If we consider native technologies, it is a great match for mHealth app development. However, Flutter is an up-to-date and powerful technology, opening attractive perspectives. It offers great performance, code maintenance, and security, and helps businesses save development cost and time. The choice for your project will depend on the scope, developers availability, and specific features you are going to implement.
At Surf, we have 12 years’ experience in native apps development and have been working with Flutter since it has appeared. Today, we have over 10 various large-scale Flutter projects in our portfolio and created our own tools to help developers all over the world optimise the Flutter development process.