Contents

    Mobile App Development Frameworks: What to Choose in 2021

    Mobile phones play an essential part in our daily 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 for app development. The answer to this question depends on your business goals and the type of app you want. There are plenty of options to choose from, different in many aspects. In the article, we’ll review the most popular mobile app development frameworks, compare their features and capabilities, so it will be easier for you to choose the right one according to your app’s specifics.

    Native vs cross-platform development

    Having decided to develop a mobile app, everyone finds themselves at a crossroads with two main options: to develop separate apps for Android and iOS using platforms’ native programming languages (Kotlin for Android and Swift for iOS) or use a cross-platform (hybrid) framework to build a single app that works on both platforms.

    Both approaches have their ups and downs. The main benefit of native development, which is also noticeable to end-users, is app’s greater performance. Because the app 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 with these frameworks suffer from fewer compatibility issues.

    However, cross-platform frameworks make it possible to create apps for Android and iOS from virtually one codebase. Since it requires fewer development hours and team members, this approach significantly decreases costs of development, even though the hourly rates of cross-platform developers tend to be slightly higher than the native ones. For example, when Surf worked on apps for Rigla 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 more and more businesses choose cross-platform technologies. 

    Top 7 mobile app frameworks

    For any mobile app project, there are plenty of technologies and programming languages to choose from, and it might get slightly overwhelming for those who are new to app 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 2021, their most important aspects and features.

    Native iOS (Swift)

    Swift is a programming language developed by Apple and a successor to Objective-C language that was used previously to create iOS apps. Swift is among the ten most popular development languages worldwide. To start developing with a native iPhone app development 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 app development with Xcode are how short the app 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. In a way, Surf was a pioneer of iOS development in Russia, when it developed the first Russian grocery delivery iOS app for O’KAY supermarket chain. The app was built in a distant 2015 but still runs successfully on the codebase written then.

    Native iOS app interface

    Native Android SDK (Kotlin)

    Android SDK (software development kit) is the most popular 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 camera, microphone and GPS, which benefits overall performance. All in all, Android SDK can be regarded as the best framework for Android app development.

    There are many popular apps written on Kotlin, including an app developed by Surf for Labirint — the biggest Russian 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 the app shows 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 Labirint app was the first Russian app (and one of the first 50 worldwide) to implement Instant Apps. The feature allows Android users to access the app’s content without installing it. This saves memory space on devices and deep links users to specific app functions.

    Native Android app interface

    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. The framework 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. In its work, the framework utilizes standard web technologies: JavaScript, HTML5 and CSS3. Screens of an app 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. The technology 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 development process. Just as React Native, Flutter mimics the platform’s visual style, so the appearance of elements and animations is similar to native.

    Flutter app interface (Android and iOS)

    Flutter became a framework of choice for multiple projects at Surf, including an app for The Hole video-streaming platform, which required smooth animations and video playback, a mobile app for KFC managers, a corporate banking app for Rosbank 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 framework 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 widely-known JavaScript and web technologies, Ionic is suitable for building progressive web apps (PWAs) as well as hybrid iOS & Android apps. Diesel, MarketWatch and Sworkit are just a few examples of the apps built with Ionic.

    Xamarin

    The first version of Xamarin 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 development 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 top-5 programming languages, Xamarin is used by many developers. Apps built with the framework include UPS Mobile, Alaska Airlines, BBC Good Food and others.

    Choosing a framework to build your app

    Having reviewed the available options, you’ll need to decide which is the best 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 mobile app development.

    Supported platforms

    If you need an app for both iOS and Android (and also web), with a cross-platform framework an app 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.

    App complexity

    In theory, you can build any app 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 app will be cheaper and require fewer team members than developing two separate apps.

    Community support

    Choosing an unpopular framework 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 speed up the development. According to 2020 research, 42% percent of developers consider React Native to be the best framework for hybrid mobile app development, 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%.

    React Native, Flutter, Xamarin, Cordova, Ionic community support

    Technological stack

    Because every framework uses 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 development 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.

    Native iOS & Android, React Native, Cordova, Flutter, Ionic & Xamarin comparison table

    Conclusion

    As we saw in our mobile app development framework comparison, there are plenty of options for building mobile apps. The choice of a framework 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 businesses, from streaming platforms to e-commerce. We’ll be glad to discuss your project and provide its estimation — just fill the short form.