Popularity of mobile app development frameworks is growing as phones play an essential part in our everyday lives. There are mobile apps for almost any task, from local bus schedules to augmented reality games, and these days many businesses have not only a website and social networks accounts, but a dedicated mobile app as well.
If you think about developing a mobile app, you’re probably wondering what is the best framework. Your choice will depend on your company’s goals and the type of app you want. There are plenty of options to choose from, different in many aspects. In the article, the Surf team will review the top-rated frameworks, compare features and capabilities they offer, so it will be easier for you to choose the right one in line with your app’s specifics.
Native vs cross-platform approach
Having decided to develop a mobile product with mobile development framework, everyone finds themselves at a crossroads with two main options: to build separate apps for Android and iOS using platforms’ native programming languages (Kotlin and Swift accordingly) or use a cross-platform (hybrid) framework to develop a single app that works on both platforms.
The above approaches have their ups and downs. The main benefit of native approach, which is also noticeable to end-users, is the greater performance. Because the code is written in the same language as the device uses, the app can interact directly with the hardware resources and achieve a higher framerate, compared to apps developed with cross-platform frameworks.
Also, native frameworks have more debugging options and adapt quicker to the latest OS updates, and apps built using these frameworks suffer from fewer compatibility issues.
However, cross-platform frameworks make it possible to create apps for both platforms from virtually one codebase. Since it requires fewer hours and team members, this approach significantly decreases costs, even though the hourly rates of cross-platform programmers tend to be slightly higher than the native ones. For example, when Surf worked on apps for pharmaceutical chain, we managed to create 6 apps for the client (Android and iOS app for each of 3 brands) from a single code base, which saved 40% of the project’s initial budget. This factor, together with nearly native performance shown by such frameworks as Flutter or React Native, makes businesses choose cross-platform technologies more often.
Best 7 mobile app frameworks
For any mobile project, there are plenty of technologies and programming languages to choose from, and it might get slightly overwhelming for those who are new to development. But since the IT industry is constantly evolving and changing, some frameworks and languages rise in popularity, while others inevitably fall behind and become obsolete. In this part, we’ll review the best mobile app development frameworks in 2023, their top aspects and features.
Native iOS (Swift)
Swift is a programming language developed by Apple and a successor to Objective-C that was used previously for creation of iOS apps. Swift is among the ten most popular programming languages worldwide. To start developing with a native iPhone app framework the developer needs only a MacOS computer with Xcode integrated development environment (IDE) installed. Apps built with Swift can be shared across Apple platforms, such as macOS, iOS and watchOS. Features that distinguish development with Xcode are how short the build time is, an extensive selection of debugging tools in a dedicated XCTest testing framework, as well as the small size of apps and super-fast performance, both of which are common traits for all native development frameworks.
Among apps built with Swift are Uber, VSCO Cam, Yahoo Weather and others. Surf developed a grocery delivery iOS app for a supermarket chain in a distant 2015 but the application still runs successfully on the codebase written then.
Native Android SDK (Kotlin)
Android SDK (software development kit) is the mostly used Android native app development framework. Its first version was presented by Google in 2009 and used Java. In 2017, a major update introduced Kotlin programming language, which shortly became the main language for building native Android apps. Android SDK allows developers to write lower-level code, which makes it easier to control the environment, build complex features and debug apps. Also, apps built with the native framework do not require an ‘interlayer’ of code to access devices hardware, such as microphone, camera, or GPS, which benefits overall performance. All in all, Android SDK can be regarded as the best one for Android applications.
There are many popular apps written on Kotlin, including one developed by Surf for a large book e-store. The app supports a visual search powered by a neural network. A user can take a picture of a book’s cover and see the same book in the catalog, best deals included. Since Surf is certified by Google, the studio gets priority access to new Android features. In the spring of 2017, the app was one of the first 50 apps worldwide to implement Instant Apps. The feature allows the users to access the app’s content without installing it. This saves memory space on devices and deep links users to specific app functions.
React Native
Currently, React Native holds the title of the most popular cross-platform framework. The technology was created by Facebook in 2015 and allows developers to create modern fast apps for iOS and Android. It is based on JavaScript, which makes it easy to learn, since JS is the 3rd most popular programming language (according to PYPL index). The framework’s popularity can be easily explained by its high performance, a large number of free-to-use third-party libraries and plugins, as well as UI that adapts its appearance to the platform’s style to look exactly like a native app. Among apps created with React Native are such popular names as Uber Eats, Coinbase and Salesforce.
Cordova
Apache Cordova was initially created by Nitobi in 2009, and with the purchase of the parent company by Adobe Systems a few years later, rebranded as PhoneGap. Later it was renamed back to Apache Cordova. It utilizes standard web technologies: JavaScript, HTML5 and CSS3. Screens built with Cordova are essentially HTML pages in a platform’s native ‘shell’. And this is its largest drawback: apps on Cordova cannot offer performance comparable to other cross-platform technologies, less to say native ones, and their UIs do not adapt to the native design. Despite this, Cordova remains a popular choice among developers for quick prototyping and visually simple apps due to ease of use and a rich selection of third-party libraries and extensions. Untappd, Localeur and SparkChess apps are all built with Cordova.
Flutter
Another free mobile app development framework is Flutter. SDK was released by Google in 2017 and uses Dart coding language. Apps built with Flutter can be shared across Android and iOS platforms. Thanks to a powerful Skia rendering engine and direct interaction with native components without a Java ‘communication bridge’ Flutter offers the best performance among cross-platform solutions. Also, a feature called Hot Reload allows developers to implement code changes almost instantly, without refreshing the whole app, speeding up the delivery process. Just as React Native, Flutter mimics the platform’s visual style, so the appearance of elements and animations is similar to native.
Flutter became a tooling of choice for multiple projects at Surf, including an application for a video-streaming platform, which required smooth animations and video playback, a mobile app for KFC managers, a corporate banking app and others. If you want to learn more about Flutter, check our in-depth review of the framework and its comparison to other technologies.
Ionic
Ionic cross-platform framework was developed by Drifty Co. in 2013. It is based on JavaScript, HTML and CSS and supports easy integration with numerous third-party libraries and other open-source frameworks, such as Apache Cordova, Vue, React and Angular. Ionic offers a great selection of pre-built UI components, and their appearance updates automatically to match platforms’ visual styles. The performance of apps developed with Ionic lags slightly behind React Native and Flutter. Being based on famous JavaScript and web technologies, Ionic is suitable for building progressive web apps (PWAs) and hybrid iOS & Android apps. Diesel, MarketWatch and Sworkit are just a few examples of the apps built with Ionic.
Xamarin
The first version of the Xamarin, a hybrid development framework was presented by the company of the same name in 2011. It is based on the architecture of its predecessor, an open-space project Mono, and utilizes C# language. 5 years later, when the company was acquired by Microsoft, Xamarin became a part of the .NET framework. The technology is integrated with Visual Studio IDE, which offers a wide array of tools, but requires a paid license for large enterprises, making Xamarin free-to-use only for small businesses and individuals. Xamarin consists of three types of frameworks: Xamarin.Android and Xamarin.iOS that use many platforms’ native components and provide performance close to that of native apps, and Xamarin.Forms that boasts up to 96% code reuse between Android and iOS apps but has lower performance. Quite similar to Flutter’s Hot Reload, Xamarin has Live Reload feature that allows developers to quickly see code changes without the app’s full compilation and deployment. Being supported by Microsoft and utilizing C#, one of the best 5 programming languages, Xamarin is used by many developers. Apps built with the framework include UPS Mobile, Alaska Airlines, BBC Good Food and others.
Deciding for a framework to build your app
Having reviewed the available options, you’ll need to decide which is the most suitable mobile app development framework for you. This is decided mainly by the project goals and available funds. Here are the main aspects to consider when choosing technology for creating mobile apps.
Supported platforms
If you need an application for both iOS and Android (and also web), with a cross-platform framework it can be created from one set of code, saving financial resources and time. On the other hand, if you need an app for a single platform or have a big budget and team, go for separate native apps — this will ensure the best performance and lower risks of compatibility issues.
Complexity
In theory, you can build any application with any of the frameworks, but in reality, some of them are not good at handling animation and heavy graphics. This is especially true of Apache Cordova and Ionic, which are based on web technologies and are more suitable for simple apps and MVPs than games or big complex projects. On the other hand, Flutter and React Native provide great optimization and their performance doesn’t fall short of native frameworks.
Cost of development
An app cost can range from several thousand dollars to half a million and more. There are lots of factors in play, which we explain in the article on how to estimate a mobile app. Regardless of this, building a cross-platform solution will be cheaper and require fewer team members than developing two separate apps.
Community support
Choosing an unpopular tool bears considerable risks: fewer educational resources, fewer people who can help if you run into an issue and fewer third-party libraries and plugins, which tangibly accelerate the development. According to 2020 research, 42% percent of developers consider React Native to be the best framework for hybrid mobile apps, followed by Flutter and Apache Cordova. However, the technologies are quickly evolving and it is important to keep track of the latest trends — for example, from 2019, the share of those who use Xamarin fell by 12% and those who prefer Flutter increased by 9%.
Technological stack
Because every framework is based on different coding languages, development process and integrations can be made easier by choosing technologies which are already in use in the company (for example, if other products are built in .NET ecosystem, using Xamarin for a new app will be a logical choice). Also, if there are tight deadlines and the team already knows JavaScript (which is more widely known than Dart, for example), going for React Native or Ionic will speed up the process.
Conclusion
Our mobile app development framework comparison shows options that are available for mobile app development. The choice should be based on what type of project you have, budget size and what technologies are already familiar to your team members.
We at Surf chose Flutter for cross-platform development and have built numerous apps for various industries, from streaming to e-commerce. We’ll be glad to discuss your project and provide its estimation — just fill the short form.