P92 has approaching 5 years of experience using Kotlin for backend and Android development as a Java alternative. We favour using Kotlin for it’s functional programming support and it’s quick release lifecycle as opposed to the official Java. However, since Kotlin is a JVM based language, we also benefit from being able to make very good use of our more than 20 years of Enterprise Java development experience.
On Android we have now entirely moved from Java to Kotlin. In our enterprise application development we also prefer using Kotlin where the project or solution requires a mix of mobile and backend components.
With Kotlin’s similarity to Swift, it fits really well in cases where we have a Swift based iOS app, a Kotlin based Android app and (Kotlin) backend. This similarity gives our cross-functional development team a big advantage.
The Health Data Exchange
In one of our most complicated projects, we engineered the entire solution and is a mix of Android and iOS clients and a headless, microservice architecture-based backend, where we used Kotlin. The domain is health data exchange where the two most important non-functional requirements are scalability and security.
Since Kotlin has many features that supports functional programming, it helped us to simplify the development of the microservices. It particularly excelled at simplifying the multi-threaded programming and testing.
To deliver the project, we drew together a team of iOS (Swift), Android (Kotlin) and Backend (Kotlin) developers and because Swift and Kotlin are very similar to each other, we were able to utilise every developer in code reviews and refactoring across every area. Being involved in the challenging domain and the solution work that the project required, it greatly boosted the team’s confidence and helped to significantly extend our knowledge pool which was a huge added bonus to an already extremely successful project!