Since Apps with love was founded in 2010, the technological landscape has evolved considerably. Numerous new programming languages and frameworks have emerged. For every project, we rely on the most suitable technology. In many cases, we develop native apps or web solutions, but we also use cross-platform technologies depending on the project. We mainly work with Kotlin Multiplatform, but we also have experience with other solutions such as Flutter and Unity.
What are cross-platform apps?
As the name suggests, cross-platform apps are developed using cross-platform technologies. These are programming languages that aren't designed specifically for one operating system but can be used across several. Using frameworks, the code base is then compiled for each individual operating system. An app developed with cross-platform technology can thus be deployed equally for iOS and Android, and in some cases, also on the web as a browser application. Well-known examples besides Kotlin Multiplatform, Flutter and Unity include React Native, .NET MAUI from Microsoft (formerly Xamarin) and Ionic.
What are the advantages and disadvantages of cross-platform technologies?
Advantages
single code base: With cross-platform technologies, part of the code only needs to be written once, as the codebase is then usable for multiple platforms.
Time & costs: As only one code base is required, development is less time-consuming and costs are somewhat reduced, at least initially.
Easier maintenance: Maintaining only one codebase (as opposed to at least two for native apps) means that maintenance and bug fixes can be performed uniformly and simultaneously across all platforms (at least in theory).
Community & support: Popular frameworks have large developer communities that provide resources, support, and a wide variety of plugins.
Disadvantages
Performance and usability: Cross-platform technologies aren't suitable for all use cases – not everything can be implemented as effectively as with native development. Because «only» one app is developed, platform-specific usage patterns, design best practices, and the differing expectations of users on each platform may not be fully addressed. This means that, ultimately, quality suffers.
Platform-specific functionalities sometimes still need to be developed separately, which can result in multiple code bases that must be maintained anyway.
Long-term effort: Cross-platform technologies can simplify development initially. In practice, however, this isn't always the case – in the long run, the effort can actually be higher. Reasons for this include updates to the frameworks used or additional platform-specific code that often can't be entirely avoided.
Dependency on Frameworks: If frameworks are no longer actively maintained or aren't compatible with the latest platform versions, it can become problematic. In some circumstances, an app may even need to be completely rewritten.
When does a cross-platform app make sense?
Despite the disadvantages, there are cases where using a cross-platform framework such as Kotlin Multiplatform, Flutter or React Native makes sense:
Limited lifespan: If an app is only developed for a specific period of time – for example, as part of a time-limited campaign – the risk of dependency on a framework is reduced. Additionally, the danger of requiring complex framework migrations in the future is lower.
Highest quality isn't the focus: If the app has a limited range of functions and is only used infrequently (e.g. for one-time configurations, occasionally submitting a form, etc.), maximum usability and performance are often less central than cost-effectiveness.
What are the arguments for Kotlin Multiplatform?
Unlike Flutter, we use Kotlin Multiplatform primarily when the frontend contains significant business logic that can be shared between iOS and Android. However, we implement the code that users interact with directly using platform-specific methods. This compensates for the typical disadvantages of cross-platform frameworks, such as poorer usability and performance, compared to native apps. This approach allows for savings in development costs without compromising on quality, though it does come at the cost of some platform dependency.
Our expertise in cross-platform apps
Get in touch with us: We know when a cross-platform app makes sense and when native development or a web solution is the better fit. For every project, we work with you to decide which technology best fits the needs of your target audience, your budget, and the technical requirements, while providing full transparency regarding the respective pros and cons.
In certain cases, for example if you wish to develop with .NET MAUI or React Native, we might not be the right partner. In this case, we're happy to provide recommendations for partners who have a perfect command of these technologies.
Additionally, we offer our expertise in User Experience, Design, Backend Development, or Marketing. Interested? Click here for our full range of services.