November 4 2021
Today native app technologies still persist as a strong choice for many applications. React Native and Flutter are both getting a strong foothold in the application development field. There are also other rising cross-platform technologies like Kotlin Multiplatform that I’m going to introduce in this post. So what is actually a cross platform technology? It means developing a mobile app for two or more operating systems, like iOS and Android, and sharing at least some of the codebase. This approach has many advantages including significantly faster and more cost-efficient development.
When selecting a mobile technology we always first consider the requirements and future roadmap of the project, including the business requirements and the existing technology environment. The most important thing is that the mobile technology choice is made based on real data and requirements, instead of just selecting a tech which feels the most comfortable for a developer. This way the best available technology is always chosen for the project in an objective manner.
Native App development means developing mobile applications using tools and programming languages provided by the mobile platform (iOS, Android). Native app development always provides the best performance that the platform can offer. Using the native tools it’s also really easy to build user interfaces that follow the user interface guidelines of the platform, and feel natural for the user. One downside of this, when compared to cross platform technologies, is that the code must be written separately for each platform, which increases the amount of work in the development and maintenance of the app.
Vincit has wide knowledge of native application development, for example Hesburger, Superoperator and Moovy projects have been developed with native technologies.
React Native is a cross platform technology developed by Facebook, and supported by the open source community. The technology was released back in 2015, and it has been developed actively since. React Native can be used to develop mobile applications for iOS and Android (and lately also for Windows) using a single codebase.
Vincit has already used React Native in various projects, one great example is the NaviWheel app for G-Boats.
Flutter is also a cross platform technology. It’s developed by Google, it was initially released in 2017 and it’s also supported by the open source community. With Flutter you can write all of the application’s code for iOS and Android with a shared codebase. Flutter’s programming language is called Dart, which is a fairly new but already a well adopted language.
One big benefit of Flutter if compared to React Native is the performance. The application code is compiled directly into machine code, giving similar performance as running native application code. One thing to note is that a Flutter application draws its own user interface, meaning it doesn’t take advantage of the native UI elements of the platform. In practise it means there might be slight differences in the look and feel of the UI components, if compared to a native application. Vincit has already done numerous successful projects using Flutter.
This technology has been developed on top of the Kotlin language, which is nowadays the preferred programming language for native Android development. The technology allows writing code also for the iOS platform using the Kotlin language, which normally would not be possible.
Kotlin Multiplatform is a great tool for a project where benefits of native app development are desired, but the amount of duplicated work is wanted to be reduced. Something to note is that it doesn’t yet allow writing the UI code in the shared codebase, meaning that at least part of the code needs to be written separately per platform.
Progressive Web Apps are basically just regular websites, but with some additional capabilities that bring them closer to actual mobile applications. Their biggest benefit is that the user doesn't have to install anything, which makes the onboarding new users to the service much easier.
Unity is a little different than the previous technologies, because it’s actually a game engine. Unity supports developing applications for over 25 platforms, including mobile, desktop, consoles, and virtual reality. It has been estimated that Unity is used to make around 50% of all of the mobile games released, so it’s really popular.
But Unity is not restricted for creating purely games only. So for what has Vincit used Unity for in the past? Yes, we have written pure games with it, but also any type of applications that have some gamification elements in them, and also applications that include virtual reality or augmented reality features.
Would you like to learn more about this topic? Download the Everything you always wanted to know about buying mobile apps but were afraid to ask guide!
Drop us a message, we'll be happy to discuss with you!