Date: Sun, 28 Nov 2021 18:08:24 +0000
Victor Kropp tells us the story of moving JetBrains Toolbox from C++ to 100% Kotlin. Victor (https://twitter.com/kropp) leads the Toolbox team at JetBrains, a small app that is the single entry point for developing with JetBrains IDEs, which you can download at https://www.jetbrains.com/toolbox-app/. It allows you to automatically download and update your IDEs, and open all your projects with a single click. Victor shares the story of how toolbox came to be – from its humble beginnings as an internal Hackathon project back in 2015, to an app serving 1 million monthly active users. Together, we dive into the tech stack of Toolbox and its evolution. We learn about the initial tech stack: C++ for the business logic and JavaScript and React for the user interface. Victor shares the challenges and benefits of using this stack – from hiring to UI visuals. We learn why Toolbox took the big step of migrating from C++ to Kotlin, from the ability to reuse code in the IntelliJ platform to developer ergonomics. Victor takes us through the multi-step process of how they arrived at a pure-Kotlin solution. The first step we talk about is the migration of the Toolbox business logic to Kotlin using Regex wizardry and reimplementing methods with the help of Kotlin’s auto-converter. Victor then sheds some light on replacing the embedded web user interface with Compose for Desktop (https://www.jetbrains.com/lp/compose/), and the benefits Toolbox gained from it: reducing the load of having to serialize a lot of objects, being able to use the same language when implementing a full feature front to back, library reuse, and better performance. We learn that this transition only took 6 months, while still being able to ship new features to Toolbox at the same time, and why the team chose Kotlin on the JVM instead of Kotlin/Native. With React and Compose for Desktop both being modern declarative UI frameworks, Victor also talks more about how concepts and vocabulary transfers between the two (https://tigeroakes.com/posts/react-to...), lowering the barrier of entry for people who want to build native user interfaces and already have web development experience. We also learn more about how Toolbox moved design primitives and UI components from the CSS to the Compose layout system, among other topics. Seb also compliments Hadi on the Ktor 2.0 presentation (https://www.youtube.com/watch?v=mye9N...) from the Kotlin 2021 Premier Online Event (https://pages.jetbrains.com/kotlin-pr...).