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
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.
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.
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.
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.
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.
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%.
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.