If you're coding along with the tutorial: Make sure the kotlinx.serialization plugin (13:38) has the same version as the Kotlin version (currently 1.9.0 in the template, see the gradle.properties file!) Currently, that means using the following: kotlin("plugin.serialization") version "1.9.0"
can you please create an annotation in this video so people would realise that just in time when they watch it? I spent for about a half an hour trying to figure out why serialization doesnt work. BTW this video is such a quality content omg!!! Thank you for your work!
The templete has build error, which does not let compiler to generate the sqldelight build classes. Need soloution on this. Yes, app runs fine but how to use sqldelight with build issue? @Kotlin
As someone who is learning jetpack compose and doing it on the job, I find this extremely useful and motivating ☺️. Thank you compose multiplatform team for all your efforts ❤
Voyager library is the goat, easy to use and easy to understand
Год назад+6
Great tutorial. As someone who has a background of developing backend apps using Kotlin, this video is super helpful to understand KMM and the basic mobile concepts.
Or Voyager as suggested in the video. I've used mostly Decompose in my multiplatform JVM desktop projects and I think it's great, because it's more than a navigation library, its "slots" (as opposed to stacks) allow to isolate components and have discrete portions of UI+state holders that can easily be moved or reused. I'm experimenting Voyager in another project and it's fine too but still have to put it under stress test with nested navigation and so on...
I found the documentation and setup of decompose to be very complicated. Until now I have not a working solution. Would be great to see a proper guide on how to use all of those libraries
Decompose voyager appyx circuit precompose Decompose-Router Are all multiplatform navigation libraries. They already have popped up, the future is here
Nice tutorial, Just need these types of tutorials to setup my app and start working on. I still prefer to flutter for both ios and android but looking forward to explore kotlin even further as Kotlin for data science libraries would be great to build good applications for future ai applications.
@@xorfive I was waiting for jetpack compose to get ready when I started my current project so at that time i chose xml and now I'm stuck with it for a long time. rewriting certain major screens in my app is just not worth it. sometimes you have to predict the future
Great, carefully selected example app: shows only pictures on a grid. This hides the most important aspects of the mobile apps: platform native look and feel. Is this possible with kotlin compose on iOS/Android just like Flutter can do (inlcuding navigation)?
Btw, Copilot is amazing at creating data classes from JSON. You can just make a top-level val like: ``` // A typical Json response val pictureResponse = """{ isPicture: true }""" ``` and copilot will make the dataclasses that follow that JSON's structure
Thanks so much for a great tutorial ... I like your style! ... I've never actually sat through a 50 minute YT video before, but I'm glad I did, and I even paid attention. I have an Android app that I've been working on for about 2 years (99% Kotlin) and now I want that to also run on iOS devices. I'm doing this at the right time IMHO, since CMP is maturing nicely and Google is supporting KMM in general. I just have to learn more Compose, then Multiplatform, and probably a little Swift ... wish me luck =)
So, how does all the setup work without "hey, take this template" and "hey, the IDE does all the magic stuff". I want to understand what gradlestuff does what and which folderstructure is neccessary and if the function locations and names are important or custom etc. When i understood all that, i have no problems to use templates or let the IDE do magic
Please consider following this up with an example of how to use hardware like camera in Compose KMP OR where you use native code with Views, thanks Great work
I'm new to mobile, felt complicated trying to install the development environment, android studio, gradle, ruby, cocoapods versions had conflicts. I am working to resolve the conflicts
thanks for amazing session. Please do consider map-layer and realtime notifications to UI like websockets / graphql subscriptions for next tutorial series on compose multiplatform.
Great tutorial. One problem I had was at 34:27 the overload of `items` wasn't recognized. I'm not sure why. I ended up using `items(uiState.images.size,itemContent={k -> imageCell(uiState.images[k])})` which seemed to work ok. This is my first program in Kotlin, so I probably missed something. I found that a lot of import declarations had to be added that were not shown in the video; perhaps this was a case where the correct overload of `items` had to be imported.
One frequent trap I find with items() is, if I type this: items(items = clipboardEntries) IDEA will complain: "Cannot find a parameter with this name: items" But it has no issue at all with this: items(items = clipboardEntries) { clipboardEntry -> TODO() } Unfortunately, IDEA is just not very nice when it comes to showing you where the error is. In this case, it should have put the red underline at the end of the line, but instead it just complains about the parameter you did provide, even though it's named correctly.
Thank you mister for this nice example. I have a following question. I have build an android app in Jetpack Compose. Now I am building a seperate one in Swift for iOS devices. I have a question. Since the app uses camera, ML model, Firebase, Google Play Billing . . . Do you perhaps have an idea of which of these parts (if any at all) can be shared so that it makes sense to use Compose Multiplatform project?
I am trying to understand what is the point of using Kotlin if you can do the same with Flutter, and it's much easier too. Just looking at these dependency imports is giving me a headache :)
I found kind of tricky manage internal images on KMM Compose Multiplatform, since seems that gradle doesn't add new image files to iOS project dependencies. This issue is already addressed nowadays?
The templete has build error, which does not let compiler to generate the sqldelight build classes. Need soloution on this. Yes, app runs fine but how to use sqldelight with build issue?
I have an Android and iOS application in the production. Can I create a compose feature module and plug the module into existing iOS and Android application?
I will wait the next decade for the day when you can write the UI in Compose and it translates to native iOS Style automatically, that's the only day I will think OK now we are talking.
That's already possible for the most part, just someone has to sit down and write those components. But you can call the same function and have a different actual implementation on iOS vs on Android.
Incredible guide. Well done and thanks for this work. If possible, please add, as you said, the repository with DB caching management and injection. This could cover a bit chunck of the development.
Getting the follwing exception at 19:23 Expected class kotlinx.serialization.json.JsonObject as the serialized body of kotlinx.serialization.Polymorphic, but had class kotlinx.serialization.json.JsonArray
Brilliant and pretty clear and understandable video, and I would like to know about the dependency injection (like Hilt), and testing in multiplatform. Cheer up!
If you're coding along with the tutorial: Make sure the kotlinx.serialization plugin (13:38) has the same version as the Kotlin version (currently 1.9.0 in the template, see the gradle.properties file!) Currently, that means using the following:
kotlin("plugin.serialization") version "1.9.0"
Thank you 🙏🏾
Thank You
can you please create an annotation in this video so people would realise that just in time when they watch it? I spent for about a half an hour trying to figure out why serialization doesnt work. BTW this video is such a quality content omg!!! Thank you for your work!
@@dk98126 It waited for 4 days and several tries, to figure out what's the issue. Glad to get the answer today.
The templete has build error, which does not let compiler to generate the sqldelight build classes. Need soloution on this. Yes, app runs fine but how to use sqldelight with build issue? @Kotlin
As someone who is learning jetpack compose and doing it on the job, I find this extremely useful and motivating ☺️. Thank you compose multiplatform team for all your efforts ❤
Finally you can now build UIs for both platforms. That was the one thing I was waiting for. Its finally come
A fantastic Kotlin Multiplatform demo!
Voyager library is the goat, easy to use and easy to understand
Great tutorial. As someone who has a background of developing backend apps using Kotlin, this video is super helpful to understand KMM and the basic mobile concepts.
Great tutorial! It would be a piece of cake to have a consistent navigation library, hope something would pop up in the next future!
Decompose by Arkadiy Ivanov?
Or Voyager as suggested in the video. I've used mostly Decompose in my multiplatform JVM desktop projects and I think it's great, because it's more than a navigation library, its "slots" (as opposed to stacks) allow to isolate components and have discrete portions of UI+state holders that can easily be moved or reused. I'm experimenting Voyager in another project and it's fine too but still have to put it under stress test with nested navigation and so on...
I found the documentation and setup of decompose to be very complicated. Until now I have not a working solution. Would be great to see a proper guide on how to use all of those libraries
Decompose
voyager
appyx
circuit
precompose
Decompose-Router
Are all multiplatform navigation libraries. They already have popped up, the future is here
@@GakisStylianos That's very kind of you
I actually appreciate the walkthrough on the documentation.
I learned a LOT just from this one video!
+1
Great video Seb!!! Kotlin and Compose will take the world!
Awesome to see Voyager! Thanks for sharing
flutterflow will tbh
Kotlin is doing some magic now hope there are more nice tutorial like this in the future. thank compose multiplatform team for your handwork.
The tutorial is explained very well
Nice tutorial, Just need these types of tutorials to setup my app and start working on. I still prefer to flutter for both ios and android but looking forward to explore kotlin even further as Kotlin for data science libraries would be great to build good applications for future ai applications.
😅yvy9998😊 14:28 😊😊 14:29
Finally some good example video by Jetbrains 🎉 please make more such videos and keep doing amazing work!
Excited to introduce this in company
You should wait until it's ready, before bringing into your product.
@@xorfiveYeah but you should start learning now
@@xorfive I was waiting for jetpack compose to get ready when I started my current project so at that time i chose xml and now I'm stuck with it for a long time. rewriting certain major screens in my app is just not worth it. sometimes you have to predict the future
Haha the classic shiny new toy 😂
Great, carefully selected example app: shows only pictures on a grid. This hides the most important aspects of the mobile apps: platform native look and feel. Is this possible with kotlin compose on iOS/Android just like Flutter can do (inlcuding navigation)?
Btw, Copilot is amazing at creating data classes from JSON. You can just make a top-level val like:
```
// A typical Json response
val pictureResponse = """{ isPicture: true }"""
```
and copilot will make the dataclasses that follow that JSON's structure
Thanks so much for a great tutorial ... I like your style! ... I've never actually sat through a 50 minute YT video before, but I'm glad I did, and I even paid attention. I have an Android app that I've been working on for about 2 years (99% Kotlin) and now I want that to also run on iOS devices. I'm doing this at the right time IMHO, since CMP is maturing nicely and Google is supporting KMM in general. I just have to learn more Compose, then Multiplatform, and probably a little Swift ... wish me luck =)
So, how does all the setup work without "hey, take this template" and "hey, the IDE does all the magic stuff". I want to understand what gradlestuff does what and which folderstructure is neccessary and if the function locations and names are important or custom etc. When i understood all that, i have no problems to use templates or let the IDE do magic
Just great, android compose developers becoming iOS developers overnight. It's magic
Please consider following this up with an example of how to use hardware like camera in Compose KMP OR where you use native code with Views, thanks Great work
I'll admit that I was very skeptical, but this one just convinced me. Take my money.
So basically I need to have mac, iphone, xcode and to be familiar with swift ? Only benefit is to have shared module ?
When will compose IOS get to the beta state?
Nice, congratulations for whole JetBrains team.👏
One of the clearer Jetpack compose tutorials out there, thanks.
I'm new to mobile, felt complicated trying to install the development environment, android studio, gradle, ruby, cocoapods versions had conflicts. I am working to resolve the conflicts
thanks for amazing session. Please do consider map-layer and realtime notifications to UI like websockets / graphql subscriptions for next tutorial series on compose multiplatform.
Great tutorial. One problem I had was at 34:27 the overload of `items` wasn't recognized. I'm not sure why. I ended up using `items(uiState.images.size,itemContent={k -> imageCell(uiState.images[k])})` which seemed to work ok. This is my first program in Kotlin, so I probably missed something. I found that a lot of import declarations had to be added that were not shown in the video; perhaps this was a case where the correct overload of `items` had to be imported.
One frequent trap I find with items() is, if I type this:
items(items = clipboardEntries)
IDEA will complain: "Cannot find a parameter with this name: items"
But it has no issue at all with this:
items(items = clipboardEntries) { clipboardEntry -> TODO() }
Unfortunately, IDEA is just not very nice when it comes to showing you where the error is. In this case, it should have put the red underline at the end of the line, but instead it just complains about the parameter you did provide, even though it's named correctly.
Hello. You must update the video because links are not the same
I'm curious about the Midjourney Images Compose Multiplatform project. Would you mind telling, me what has been worked on there?
Good tutorial. Would like to see more components like LazyList for iOS and Themes (theme for iOS, Android, MacOS deployment)
Great Tutorial. Thanks.
kotlin("plugin.serialization") version "1.8.21" caused problems switched to "1.9.10" then it worked.
Thank you for the video and also information about precompose library i was just looking for the library like that❤️❤️❤️
Thank you mister for this nice example. I have a following question. I have build an android app in Jetpack Compose. Now I am building a seperate one in Swift for iOS devices. I have a question. Since the app uses camera, ML model, Firebase, Google Play Billing . . . Do you perhaps have an idea of which of these parts (if any at all) can be shared so that it makes sense to use Compose Multiplatform project?
I am trying to understand what is the point of using Kotlin if you can do the same with Flutter, and it's much easier too. Just looking at these dependency imports is giving me a headache :)
I found kind of tricky manage internal images on KMM Compose Multiplatform, since seems that gradle doesn't add new image files to iOS project dependencies.
This issue is already addressed nowadays?
kdoctor doesn't seem to check that Java 17 is used. And it is required to run the ios build. At least with my IDE (Hedgehog)
The templete has build error, which does not let compiler to generate the sqldelight build classes. Need soloution on this. Yes, app runs fine but how to use sqldelight with build issue?
Truly awesome demo! Tysm Seb!😁😉💖
What a beautiful Rectangular app 😂
A very nice code along 👍
does someone facing issue with kotlinx serilization to convert data to List ???
I have an Android and iOS application in the production. Can I create a compose feature module and plug the module into existing iOS and Android application?
Does the shared rest api call also implemented in this demo project?
How are we managing the navigation, if we want to keep it in shared module? Does compose has plans to work on this?
is there any tutorial like this but with the native UI like swift ui and jetpack compose?
Is that for real can it do what flutter does? Loved kotlin before but since I came to know flutter, I never look back to kotlin.
Compare to Flutter its very hard to use. Maybe someday compose will be as good as Flutter
Great video, i love your penguin meme doll at the back sir
I don't see the way to change the status bar color using compose multiplatform
Parabéns pelo conteúdo. Você é incrível🔥👏
Am flutter developer what are the benefits of KMP
Magnificent effort. I really look forward to your videos.
Waoh How simplify you Teach Thank you 🙏🤝
Fantastic !
Do you know when will be available to use iOS UI emulator on windows ?
Probably never.... Because Apple 😅
How do I change status bar color in compose multiplatform ?
Is there any support for creating UI tests for iOS compose?
Is necessary to use Android Studio or Can use IntelliJ???
You look like Steve Jobs when he was jung))
what the different between compose multiplatform and kotlin multiplatform
You confirmed everything i wanted
Thanks
Thank you for this wonderful tutorial 🙏
I will wait the next decade for the day when you can write the UI in Compose and it translates to native iOS Style automatically, that's the only day I will think OK now we are talking.
That's already possible for the most part, just someone has to sit down and write those components. But you can call the same function and have a different actual implementation on iOS vs on Android.
This development is great, but please use XML when designing. Please!
XML view based? maybe It will depracated soon as mobile development are moving into declarative programming with compose and swift UI
Please use the dark theme...🙏🙏🙏🙏🙏🙏🙏
That's great! More of that please!
high-quality content, thank you!
🤯
Thats great, thank you. I want the interface of Android Studio like yours, how to do that :) ?
I believe they are using Ultimate version.
How can we add png or jpeg images to res and show. In Android it's showing. iOS its crashing
Incredible guide. Well done and thanks for this work. If possible, please add, as you said, the repository with DB caching management and injection. This could cover a bit chunck of the development.
Oh my goodness, I love this.
How can we provide and use context in common main?
Thanks good Sebastian!
Awesome tutorial ❤
Getting the follwing exception at 19:23
Expected class kotlinx.serialization.json.JsonObject as the serialized body of kotlinx.serialization.Polymorphic, but had class kotlinx.serialization.json.JsonArray
im pretty sure that instead of doing getImage() you do showImage. Although I am new to coding so take my advice with a grain of salt
nvm i am wrong, i got that bug near the end and now I'm stuck
UPDATE THE KOTLIN PLUGIN SERIALIZATION MINE FINALLY WORKED
@@beefpancakez8097 what have you updated? as I'm facing the same error
ah! got it, updated to 1.9.0 and it works
how to change screen like jetpack compose navigation?
hello is it available for web development too?
have tutorial for android+iso+smart tv ??
You stated I would need a mac for testing ios. Can this be used to create for ipad?
Yes, if you have a mac you can make it work on iphone and ipad.
If you don't you can still follow the tutorial and make it work on android.
That was amazing. Thank you!
Does map box navigation work with this?
Excellent, but holy moly that’s complicated.
Hey is there a mentor that can guide me ?
Does KMM supports Material 3?
When kmm official launch ?
Can I write all of this in java?
Ah the internet permission..would have missed it even if i knew.:D
amazing, I was looking for that., it will save my money XD
Great video. It would be fun to see this in the warm target too. :-)
can i develop it in Android Studio?
Great content! Thanks for sharing!
Very useful tutorial, thanks!
Been waiting for this!!
Brilliant and pretty clear and understandable video, and I would like to know about the dependency injection (like Hilt), and testing in multiplatform. Cheer up!
What will happen to KMM?
Great work, thank you
Very Good Tutorial Indeed
great tutorial, thanks!
I don't have a mac. Thanks in advanced
The iOS support sucks. I have not been able to get a successful build yet after many attempts. So wild errors pop up during build :(
What problem you have?
Open an issue in the sample project and they help you there