One of the biggest questions companies designing their new app will have to answer is what type of application they want to create. Should they develop a native application, or would a cross-platform application be better? Applications based on native code are typically faster and can take advantage of an operating system’s features. However, cross-platform applications are growing in popularity as they can be built quicker and cheaper than native ones but may include some native components as well. Your choice between a Flutter app or native iOS & Android applications will also determine what programming language and technology you’ll need – will it be Kotlin, Swift, or maybe Flutter framework with Dart programming language.
Which one of the three technologies would be the best fit for your project? As you can probably guess, there’s no “one size fits all” answer, and it all depends on your goals and expectations for the new app. So to make the choice a bit easier, we have compiled all the necessary information on these three technologies and compared them in this article. After reading it, you should know which of Flutter vs Android and iOS technologies will work best for you – so grab a drink and keep reading.
Kotlin, Swift, Flutter – general statistics
Before we get to the details of how each programming language works and how they differ, let’s first have a quick look at where the mobile app industry is now and how each language rank when it comes to popularity.
According to Statista, in 2021, mobile users spent 92.5% of their total mobile phone time using mobile apps, while 7.5% of the time they spent using web browsers. Together with mobile app usage, the amount of money mobile users spend on the apps is also significantly growing – the app stores earned approximately $320,000 every minute in 2021, an increase of nearly 20% over previous records. No wonder so many companies now either have their own mobile app or are planning to create one, looking at the demand, right? When it comes to which mobile platform is most often picked by companies to launch their new app, the winner is obvious.
Most apps are built for the Android system – during the second quarter of 2022, Android users could choose between 3.5 million apps, while the Apple store has roughly 2.2 million available apps for iOS. What’s interesting, however, is that Apple earns more money from its apps. Global consumer spending on mobile apps via the Apple App Store in the third quarter of 2021 was 21.5 billion U.S. dollars, compared to 12.1 billion U.S. dollars through Google Play.
Now let’s have a closer look at what programming languages and frameworks are currently most popular in mobile development.
- Kotlin is among the top 3 languages that most businesses are planning to migrate their apps to in 2022.
- In the Stack Overflow survey for 2022, 63% of developers picked Kotlin as their favorite language.
- Kotlin was used by roughly 2 million professionals at least once in 2021, and approximately 1 million professional developers use Kotlin as one of their primary programming languages.
- Apple’s Swift language, developed in 2014, has largely replaced Objective-C because it is more reliable and easier to read. JetBrains’ survey found that 76% of developers are proficient in Swift, 13% are proficient in Swift and Objective-C, but 11% are proficient in only Objective-C.
- On average, Swift is 2.6x faster than Objective C and 8.4x faster than Python.
- There are nearly 2.1 million swift developers, surpassing the number of Objective-C developers (1.6 million).
- Based on a Statista survey, 42% of software developers use Flutter, compared to 38% for React Native and 11% for Xamarin.
- In the Stack Overflow survey for 2022, 68% of developers picked Flutter as their favorite framework. React Native and Xamarin, two other main frameworks for developing cross-platform applications, are far lower in the ranking, with 55% and 38%, respectively.
- Interestingly, Flutter also ranks highly as one of the least disliked languages, with only 31% of developers saying they don’t like Flutter. Meanwhile, 44% of developers say they don’t like using React Native, and 61% picked Xamarin as their “dreaded” language.
Flutter vs React Native
You may wonder why this article emphasizes Flutter as a go-to cross-platform solution, neglecting its market rivals, especially the React Native framework. In fact, both Flutter and React Native are top cross-platform mobile application development frameworks. As delineated above, they both have quite a large market share, with Flutter reaching 42% and Native React 38% of all cross-platform technologies on the market.
As shown in the stats provided above, Flutter, or more precisely Dart, overtakes React Native in surveys for most liked as well as least disliked programming languages. Hence, the former is more prone to be used among cross-platform software developers. So taking into account its unflagging popularity, we have chosen to present it as a representative solution for developing cross-platform apps in general.
Swift, Kotlin, Dart – short overview
Swift, Kotlin, and Dart might still be relatively new languages, but with what they can do, they are already becoming developers’ favorite languages for either native (Kotlin and Swift) or cross-platform (Flutter and Dart) app development. What exactly makes them so popular, though? Let’s begin with a brief introduction to each technology before diving into the technical details.
What is Swift?
Released on: 09 September 2014
Latest version: 5.6.1 (16 May 2022)
Main website: https://developer.apple.com/swift/
Community pages: https://www.swift.org/community/
Popular apps built on Swift: LinkedIn, Kickstarter, and Eventbrite.
Swift is an open-source programing language designed as ios native language. Using the language, you can write a single code that will work on mobiles, tablets, desktops, wearables, and even smart TVs. Thanks to SwiftUI, you can also take care of the application’s design across all iOS devices. Since Apple introduced Swift in 2014, it has slowly gained popularity and is now considered the main language for creating iOS applications, replacing Objective C.
One of the reasons for Swift’s popularity among native developers is that it’s a simple, clean language that’s easy to read and write. In addition, Swift’s strong typing system and error handling prevent most code crashes and errors in production, making it also safer than C-based languages.
Thanks to how clean the code is, developers can also easily spot errors, which saves their time and eliminates the risk of low-quality code. With Automatic Reference Counting (ARC), developers do not need to spend time and effort tracking and managing the app’s memory usage either, as the feature does it automatically.
Although Swift’s community is still relatively small compared to other languages (only around 5% of developers in the Stack Overflow survey said they are regularly using Swift), it will only grow as the demand for Swift developers increases.
Pros of using Swift:
- Free, open-source language.
- Swift has multiple safeguards in place that prevent errors and make the code more readable.
- Interoperable with Objective-C (meaning you can easily use both languages in your project).
Cons of using Swift:
- The language is still young, so compared to older languages like Objective C, the community is still pretty small.
- Finding the right IDE and third-party tools that will work with a specific version of Swift might be tricky.
- Only supports iOS 7+, older systems are not supported.
What is Kotlin?
Released on: 15 February 2016
Latest version: 1.7.10 (20 July 2022)
Main website: https://kotlinlang.org/
Community pages: https://kotlinlang.org/community/
Popular apps built on Kotlin: Uber, Netflix, Pinterest, and Twitter.
The Kotlin programming language was initially developed for the Java virtual machine (JVM), Java libraries, and Android operating systems. However, since it allows developers to write more concise, clearer, and less prone to crash code than Java, it is rapidly gaining popularity.
While the language is mainly used for Android development (from mobile applications to wearables software), it can work just as well as a server-side solution and web frontend development.
A significant benefit of Kotlin is its 100% interoperability with Java. That means that Kotlin can run wherever Java does, and the code can be converted from Java to Kotlin and the other way around, so you can easily run projects with both languages simultaneously. It’s also easy to migrate your Java applications to Kotlin, as the Kotlin plugin for IntelliJ IDEA can automatically convert Java code to Kotlin – you don’t have to write the code the second time.
Google also recently released the Kotlin Multiplatform Mobile SDK for creating cross-platform applications. Through the SDK, you can reuse parts of the code between iOS and Android apps and write platform-specific code only where necessary, saving a lot of your time.
Pros of using Kotlin
- Kotlin is supported by most IDEs on the market today, including Android Studio.
- Compared to Java, Kotlin allows native Android applications to be built and deployed faster as fewer lines of code are needed.
- The compiler can detect any potential errors for easier debugging.
Cons of using Kotlin
- The number of available guides and documentation is pretty limited.
- While Java and Kotlin are interoperable, the two languages have many differences in how they work, so it will still take a while to switch.
- Kotlin has a lower compilation speed than Java, so compiling the code will take more time than with Java.
What are Flutter and Dart?
Released on: 04 December 2018
Latest version: 3.0.5 for Flutter Framework, 2.17.6 for Dart. (13 July 2022)
Main website: https://flutter.dev/
Community pages: https://flutter.dev/community
Popular apps built on Swift: Google Ads, Cryptograph, Xianyu
Flutter isn’t actually a programming language itself, rather it’s a mobile application framework developed by Google, but it’s already seen as the future of cross-platform development. Flutter allows developers to create native-like web, desktop, and cross-platform apps for iOS and Android, without having to write the code for the two apps separately.
Flutter library also has a large selection of widgets (text, buttons, slider, lists, layouts, gesture detector, animations, or anything else you might need) through which developers can build a custom UI for their new application – those widgets can also be modified or customized. Hot reloading is another advantage of Flutter application development – one that actually quite often makes developers vote in favor of Flutter in the Flutter vs Android studio discussions. With it, developers can see code changes in real time without restarting the build and quickly add any necessary changes. Google itself uses Flutter for several parts of its Google Assistant and the user interface of the Google Home hub.
Pros of Flutter and Dart:
- Far better app performance and speed than with any other cross-platform frameworks and languages.
- An extensive library of built-in functions and libraries. Especially the Cupertino widgets are useful for building Flutter, iOS, or Android applications that feel like native ones.
- Dart language supports multiple platforms, including both desktop and mobile devices.
Cons of Flutter and Dart:
- Dart language doesn’t have as many features as some other popular languages.
- While Google provides plenty of guides and documentation on Flutter and Dart, there aren’t many other resources available.
- Flutter file sizes are considerably bigger than on other platforms.
Native app development or cross-platform development?
It might be challenging to decide whether to go for cross-platform or native development of your app because both of these technologies are well-established and efficient. Thus, your individual demands and the project’s scale are key considerations when making a final choice.
However, if you are still not sure which type of app would best fit your needs, you should first learn the characteristic features of native and cross-platform software development.
In the “Native vs. Cross-Platform App Development: what is the right choice” paper, we thoroughly compared both technologies, taking into account the pros and cons of each solution. Having read this article, you should be able to make a more informed and deliberate choice on your mobile app development.
Features characteristic of each technology
If you already know what kind of app you’ll be building, then choosing a programming language is pretty straightforward. For Android or iOS native applications, the decision comes down to comparing Kotlin vs Swift languages. For cross-platforms meanwhile, Flutter with Dart is currently one of the more popular choices – though the Kotlin Multiplatform vs Flutter debate often generates a heated discussion on the developers’ discussion boards as Kotlin gained a number of fans as well.
Additionally, you might want to consider some of the specific technical features of each of the languages, as some of them might actually be more suitable for your project than others.
What you might want to know about how each language differs when it comes to technical details is summarized in this table.
Our experience with implementing iOS, Flutter, and Android apps for iGaming and Fintech
Kotlin, Swift, and Flutter all have features that make them easier to use than older languages – like much fewer lines needed to design an application or widget library for building the UI. However, since those languages are still pretty new (at least when compared to languages like Objective C, released in 1984, or Java which appeared in 1996), the number of developers familiar with Swift or Dart languages is still quite low.
Check out this Statista research showing the most popular programming languages worldwide by 2022, for example:
- Java is used by 33% of developers worldwide.
- 9% of developers use Kotlin.
- 6% of developers are familiar with Dart.
- Nearly 5% of developers regularly work with Swift.
Thus, finding a developer who can build an application in Java shouldn’t be too difficult. But hiring experienced Kotlin, Swift, or Dart developers might be a bit more tricky. However, at CrustLab, you can easily find them – we develop native iOS and Android apps using Swift and Kotlin, or cross-platform apps in Flutter. Have a look at a few examples of apps we developed:
- Sportech betting platform – A new betting platform built as a native application for IoS and Android.
- PelviFly – Cross-platform mobile app for training pelvic muscles for women.
- Pick24 – Cross-platform betting app.
- Zowie – SDK for a mobile version of the chat widget for Android, iOS, and Flutter.
- Pretta – CrustLab’s internal IT project management app for iOS.
In the same way, we helped those companies, we can help you. Whether you need an Android or iOS app or a cross-platform app, we have developers who can advise you on how your new app should be created and guide you through each stage of the process. Together, we can create an excellent app with high performance, an appealing UX/UI design, and features that will satisfy your future users.
So who wins the Flutter vs native battle and which of those three technologies is most suitable for your needs? Well, as you can see, everything depends on your goals and expectations. A native app built with Kotlin or Swift has many advantages over a cross-platform app, including higher performance and support for OS-specific features. The Flutter framework, on the other hand, allows you to build apps for multiple platforms much faster, using a single codebase and a variety of widgets.
In order to choose the right one for your next app development project, take into account your requirements and business objectives. If you need expert advice on this matter, remember that we at CrustLab are always happy to listen to your needs and then suggest you the best way to make your new app look and work exactly the way you want it. So if you are currently thinking about how you should design your new app and can’t make up your mind – reach out to us, and we will surely think of something together.