<#C0B8M7BUY|> When I started working with Kotlin a...
# multiplatform
a
#C0B8M7BUY When I started working with Kotlin as a native Android developer, If, in the future, someone asks us to work with Flutter, what will we do?" My senior confidently replied, "We can do everything with native development, so there's no need to worry. At the time, I believed that answer, but now I realize they were wrong. In the marketplace, demand matters more than capabilities. If you're hungry, you need food—and right now, Flutter has more demand than native development. Now, looking at Kotlin Multiplatform (KMP), I see even more issues. The tech industry is constantly evolving, focusing on writing less code while achieving more efficiency. However, KMP doesn’t seem to follow this philosophy. Instead of reducing development effort, it often requires more code compared to other cross-platform solutions. If we have to write code twice—once for business logic and again for platform-specific UI—then what’s the real benefit? KMP promises code-sharing, but in reality, it doesn't save much effort compared to native development. Unlike Flutter or React Native, which provide a truly shared UI and logic layer, KMP still relies heavily on platform-specific implementations. If we’re not significantly reducing development time and effort, then why use KMP at all? In my opinion, this technology isn’t as useful as it claims to be. It feels like an incomplete solution that requires too much effort for too little gain.
f
> If you're hungry, you need food—and right now, Flutter has more demand than native development. If your only goal is to get hired and Flutter has more demand, then learn Flutter 🤷 I may be in a bubble, but I've seen a lot of companies move away from Flutter because there are not enough developers to hire, so I'd personally avoid investing in Flutter right now. However, that might be a regional issue, and Flutter might be a valid option elsewhere. > (KMP) often requires more code compared to other cross-platform solutions Yeah, because it's not cross-platform. It's a deliberate choice and makes it much more flexible. If you need a "production ready" cross-platform UI framework, than I'd say you should look elsewhere (although CMP is shaping up really nicely, IMO)
💯 3
c
Maybe not everything is about speed, but about correctness. If you have critical business logic that needs to be right, I'd rather get it right in one place, than say maybe get it wrong in one of the platforms (and having to constantly maintain it in multiple places)
k
KMP is not all appealing for mass market and its limited to tech companies. Hence you can simply forget any recruiter hiring for KMP skills for the most part of the world. React Native is clear winner in cross platform. But CMP is shaping up to be real contender it’s still far from being used in production for any large enterprise due to lack of libraries and tooling.
🍿 1
a
App development has become kind of a free-for-all, with companies making random apps like gun sounds and animal noises just to get downloads. It’s frustrating to see the industry flooded with low-effort apps while real innovation gets buried. Web development, on the other hand, has a broader scope and feels more future-proof. It’s not tied to a single platform, and you don’t have to deal with the constant uncertainty of app store policies. What kind of web development are you focusing on now? Frontend, backend, or full-stack?
t
> Now, looking at Kotlin Multiplatform (KMP), I see even more issues. I've seen the same and started to work on an actual solution. As I see the one of the problems is the age of the language: 1. Java 1.0 – January 23, 1996 2. Python 1.0 – January 26, 1994 3. JavaScript 1.0 – March 1996 4. TypeScript 1.0 – October 1, 2012 5. Kotlin 1.0 – February 15, 2016 Now, the first three have 30 years of head-start. To overcome this we need actual effort. We need ecosystem, we need alternatives. I do what I can but frankly the feedback is basically non-existent so far. For example, a no-code tool is not a small task. Do you know how much effort it requires to present an actual, working solution if you are not backed by corporate money? I've spent the last year building one, let's say I'm half way. I really try to communicate, write documentation, articles on Medium, etc. Do you know how much actual feedback I've got? ONE response so far. I actually do not blame the community for this as everyone is time constrained and none wants to spend time reading about the next "great idea". However, this situation is extremely hard to break out from. I know, I'm struggling with this every day. • Should I just stop planning to provide a community release? • When will I reach the point when the community will look at my stuff and do not turn away right then because it is not yet "production ready"?
🙌 1
f
We all can help in this effort; If you see something that’s not great, fix it. Make a library.
t
I am making a software suite to address the problems the original post mentioned: https://github.com/spxbhuhb/adaptive However, it takes much more effort than a simple library.
😆 1
kodee loving 1
j
And today i have released a kmp version of appwrite which was not available before. not everyone can use appwrite with KMP and CMP https://github.com/JamshedAlamQaderi/appwrite-kmp Feel free to contribute
kodee loving 1
a
you know i think spend time with compose kotlin and KMP are waste of time because i have solid reason for that i think you don't work with that i mention below the reason. #C0B8M7BUY Google has a history of launching and shutting down projects, so nothing is truly safe in their ecosystem. With Huawei pushing its own OS, the mobile landscape is shifting again. React definitely has a strong future—JavaScript-based solutions are more adaptable, and with Huawei's OS also using JS, it makes sense that React (or something similar) will dominate. Web technologies are proving to be more versatile, working across different platforms without relying on app stores. Are you thinking about focusing more on React for web and possibly mobile (React Native), or just sticking to web development
j
It's your choice brother. You have to find out what you like and make your passion as your business
My passion always was in java then kotlin after kotlin released. Now, i'm always trying to convince client to develop the app in kmp and cmp
f
You could JavaScript, to write everything, from backend (server) to frontend (web, mobile, desktop). Sure 👍 Use NodeJS, React, whatever. Have fun. Or you could use Kotlin, and also be able to make the same kinds of backend, frontend, etc. Choice is yours. There are pro’s and con’s for both. I picked Kotlin
🙌 1
🙌🏾 1
And if you see some things that work better on JS compared to Kotlin, that’s great. That means we have ideas to make Kotlin even better. Someone could make a library 🙂
I’m not worried about my efforts in Kotlin being a waste of time. Because Kotlin is multiplatform. Google Play Store rejected my app? It’s WASM/JS now. Have fun trying to block my web-app 😛
😍 2
👍 1
t
> you know i think spend time with compose kotlin and KMP are waste of time because i have solid reason for that i think you don't work with that i mention below the reason. I feel the same about Compose, but not about KMP. KMP has potential and it is on us to bring out that potential. At the end it is the matter of preference. I've used about 20 programming languages to write actual production code in my 30 years of programming. In the last 5+ years I used Kotlin almost exclusively (full stack: mobile, backend, browser) because it is very comfortable and very well designed. We all make bets on the future, we'll see how it turns out.
🙌 4
j
Google Play Store rejected my app? It's WASM/JS now. Have fun trying to block my web-app 😛
Now the future is moving to wasm.
👍 2
If world is moving from android to apple. then kotlin developer shouldn't worry. Because they have KMP
s
Some of our clients really want mobile apps that are behaving in a pure native way, native UI, native UX. This comes up again and again. Especially if the apps are part of a 'lifestyle' or when strong and seamless integrations with other services/devices are needed. For these types of apps KMP is a great solution! You can share as little or as much KMP code as you want/need. For apps that can be (a bit) less 'native', Flutter or R/N are great solutions. Which one to choose: Depends. What type of developers do you have, can you hire? Some performance issues, or 3rd party integrations may sway your choice, etc.
👍 1
j
That's the power of kotlin. We can utilize it anyway for anything.
j
I am in USA. I've been looking at job postings for mobile app developers, and a few of them now say KMP is a plus. Whereas one year ago, I never saw that. So KMP is definitely gaining ground.
a
There is huge benefit to only writing your business logic once in KMP. With SwiftUI (and I'd presume Compose though I'm less familiar), fixing UI bugs is usually trivial. Less so at the level below. Keeping things native means I can do things like create iOS widgets easily, or implement the newest features launched at WWDC quickly if desired, and not be dependent on another team adding support, and doing it correctly and in a well-documented fashion.
t
I write all my code exclusively in Kotlin and KMP with IntelliJ is very good when it comes to debugging. As for using platform dependent features, it is one of the reasons why I don't use Compose but Adaptive which let me do whatever I want while still being KMP and fully reactive.