Kotlin Multiplatform 2024 Roadmap released
What's up everybody? Welcome to another episode of the UI Buzz podcast. I'm your host, Peter Witham. You can find me and this Podcast at uibuzz.com.
The JetBrains team have released a new blog post on the Kotlin blog where they layout the roadmap for 2024 for the Kotlin multi platform and first of all they start off by citing that, stability of the Kotlin multi platform is now there.
Development teams across the world, as they say, worldwide can now seamlessly and confidently adopt it in production. So if you have been waiting for that, go ahead and dive in. Be curious to see what you think about that.
And if you know anything about the Kotlin multi platform, you are more than welcome to come on this podcast and talk to us about it. You can reach out to me at peterwitham.com/contact you are more than welcome.
So the JetBrains team, let's get back to the blog post here. So they're talking about the Compose multi platform here, right?
And they're saying that basically now that it's stable, they are looking to make it performant, and of course that is always the next step once you reach stability. Those of you who are familiar with other platforms this is the way you go. You release the initial platform. You get it nice and stable, and then you start to look at performance.
So right now there is a new version in beta, composed for iOS, that you can work on and try. They're working on that at the moment, but you can certainly try it out. But here's some of their plans. Let's dive through this, because I think this is going to be very interesting next year.
They want to make all Jetpack Compose core APIs and components multi platform.
That's a good step, right?
If you're going to go cross platform, that is certainly something you want to do there. You don't want to really have folks diving into their specific platform APIs at the end if you can take care of it in the platform right there.
Now, making scrolling and text editing in Compose for iOS apps behave the same as iOS native apps. Again, very important. Anytime you're using any kind of cross platform, multi platform development tools or languages, you really want to make sure that when push it out and you publish and distribute to the appropriate platform, that it still feels not only very native To you as a developer, but more importantly to the users.
You want to make sure that they feel completely comfortable and everything does how they would they would expect it to be on that platform, right? Scrolling is definitely one of them. I remember the early years when You know, you would scroll one way on iOS and you would scroll the other way on Mac and Windows and everything else.
And it just all got a bit weird, right? So that's very important. Implementing common APIs for sharing all types of resources is another one. Again, a lot of this is about streamlining. Making you as the developer feel comfortable that when you're working here and publishing out to a platform, it's all going to be good, right?
iOS and desktop accessibility APIs is another important one. Accessibility is something that you should be taking seriously and certainly should be at the forefront of. All other development tasks, right? Just like everything else. Stability, performance, accessibility should be right there. Because there are so many folks who are not going to experience the app in the ways that you think that they might, right?
And certainly you should account for them and make it a pleasurable experience. Again, navigation is another one, right? Making sure that multi platform navigation they have on the list here, that is something that should feel comfortable and natural on the appropriate platform.
WebAssembly, we're talking about porting existing apps and reusing common code. That's another one, right? Dry, don't repeat yourself.
Different screen sizes, orientations that is huge. I can't tell you the amount of times that I have used multi platform tools. End up with some really weird things with different sized screens when it comes to testing and orientation handling that is always a problem and something that will be nice just having that problem taken care of for us so we don't even have to think about it. input, right? Touch screens, keyboards, mice, all those kind of things should be something that we don't have to think about regardless of what platform tools we're using. It should all just work natively on the platform and be something that You don't even notice, right?
You don't have to put in any code to work around things. tooling is a big part of this, right? And it's the JetBrains team. Of course, they have lots of IDEs and tools. I use a fair amount of them, and I think they're great. I've been using them for years. And, of course Kotlin is right there, and the plugins and the IDEs for working with Kotlin in their tools and especially things like the the Fleet tool.
If you're not familiar with that, look in the show notes for a link. Think of it as Visual Studio Code from the JetBrains team, I guess that's the best way to describe it there. But all of their tools should be very compatible with Kotlin because, hey, they created all this stuff, right?
Live previews in tools should be another one. This is something I'm very familiar with. I'm sure most of you are too. If you do any kind of React development or SwiftUI, those kinds of things, anything in Xcode, you expect to see live updates performing right there on a device or a simulator right there in the screen, or preferably in the IDE tool where you can play around with these.
Talking about the multi platform core here, something very close to my heart, of course, is they have an initiative very focused on Kotlin to Swift export. This would be fantastic and huge, right? Just the other day, I was talking to some folks on the Compile Swift podcast. I'll put a link in the show notes there.
from the skip. tools team, they're working on some fantastic projects for the opposite, where you have Swift compiled out to Kotlin. The Kotlin folks are being very generous here and doing the reverse, right? It's great that we have this kind of support from teams.
Exporting Swift from is going to be very important and streamline not only for Swift developers but also those Kotlin developers can work with Swift teams and vice versa. They're also looking to speed up compilation, again, as a developer, always welcome build times can never be short enough, right? So that's something we want to see there.
They're also talking about enhancing CocoaPods integration. That's something I've not played around with there. On this, I've used CocoaPods, of course, but not in this context, so that'll be interesting.
Swift Package Manager is right in there as well. That makes sense, right up there with exporting to Swift, and Swift Package Manager, of course, is a big deal these days. Go So looking at those things there,
they're also working on the library ecosystem. They have this in the plan here to improve that support for the KLIB format. This isn't something I'm first hand experienced with. Libraries, again, don't repeat yourself with code.
They're also working to make it possible to build and publish. KMP libraries without needing a Mac. That's important because I would imagine there's a lot of people out there doing this stuff on Windows machines and on Linux machines not necessarily Macs. So that's going to be important there, right?
You know what I mean? Because at the end of the day, if you're going to have cross platform tools and cross platform libraries like this, you really want to have them available anywhere for any team members on any platform.
Templates is also in the plan here as well. Guidelines for creating and publishing templates on the KMP library.
Again it's all about making us more productive as developers and reducing the repetition of code. So that's some of the things I've got there for next year. I think it's going to be very exciting. This Kotlin multi platform really is coming along nicely and is getting a lot of support and a lot of communities out there as well.
So if that's something that interests you, again, check the show notes. But I wanted to put this episode out there because they published this post and I think it's really interesting and something that we should definitely be paying attention to next year.
If this has been helpful, you know what to do, show it with your developer friends leave a review, that always helps as well.
You can find this podcast at UIBuzz.com and you can reach out to me, PeterWitham.com/contact. Let's get some conversations going. Love to interview folks on this podcast in the next year, hopefully. That's it, folks. I'll speak to you in the next one.