MVI Compose Multiplatform Contacts List App With Photos (iOS & Android) - KMM Tutorial
In this course you'll learn to build a fully working contacts list app for iOS & Android by using the new Compose Multiplatform for KMM projects. We'll make use of Material3 and dynamic colors, so you can stick to Google's design guidelines for your future apps as well.
⭐ Save 25% on ALL premium courses including the already discounted bundles (discount code SUMMER25):
pl-coding.com/premium-courses...
‼️ Sale ends on July 19th 2023 ‼️
Get my FREE PDF about 20 things you should never do in Jetpack Compose:
pl-coding.com/jetpack-compose...
Create your Material3 theme here:
m3.material.io/theme-builder#...
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
pl-coding.com/drop-table-ment...
Follow me on Instagram for insights into my live as an Android developer:
/ _philipplackner_
Get the initial source code for this video on GitHub:
github.com/philipplackner/Con...
Get the final source code here:
github.com/philipplackner/Con...
00:00 - Project Overview
12:03 - Creating the Material3 Theme
14:39 - Contact List UI
01:05:02 - SQL Setup & ContactDataSource
01:20:23 - ContactListViewModel
01:38:12 - DI Setup
01:45:55 - AddContactSheet Setup
02:05:42 - Picking Images
02:27:15 - Persistent Image Storage
02:47:57 - ContactDetailSheet Setup
03:01:16 - Recently Added Contacts
03:08:31 - Final notes
Пікірлер: 230
Save 25% on ALL my more advanced premium courses and bundles with the code SUMMER25: pl-coding.com/premium-courses Disclaimer 1: Apparently, I was just too dumb to find the Export button for the Material3 builder. You can just use that to export your M3 theme and don't need to copy-paste all colors 😂 Disclaimer 2: This is a simplified version of a contact list app. A real contact list app would also access the device's contacts (saved in the pre-installed contact list app for example). In Android this would work with the contact content provider. It was intentionally left out to not make this too long because this would be an additional implementation that differs on iOS and Android, but it's a good homework if you want to take this a step further 👍
@nymexe
11 ай бұрын
Oh, you forgot to pin the comment)
@abiodunmoses2638
11 ай бұрын
Will this coupon on premium courses be valid until ending of the month?
@PhilippLackner
11 ай бұрын
@@abiodunmoses2638 no, 7 days
@JJ-fj6hl
11 ай бұрын
Does the discount apply to the course "Powerful REST APIs with Ktor"? I tried to use the code but it complains that it's invalid.
@yodgorbekkomilov3383
11 ай бұрын
@@PhilippLackner please create test-driven development course with kotlin multi-platform all the best a great course danke
A free THREE hours course... Damn Philipp, you're truly the man!
@PhilippLackner
11 ай бұрын
Thanks a lot, happy learning!
Cool, I've been waiting for this for so loong. Thanks Philip
Thank you Phill for your dedication and hardwork.
It is so thoughtful of you to release such a valuable course for free on KZread, thanks a lot.
At 13:50 actually, you can export the color themes from the top *export* button in the menu. Thanks for the video.
This is really what everyone wants from you. Thank you
This is truely amazing! God bless you!
Finally, the most awaited video came. Thank you 3000 times.
I started watching your kotlin coroutines playlist, and after some time I went to see your channel, and I was so happy when I saw that you are still creating tutorials about kotlin, keep up the great work!
Damn this is insane.... 3 hours video. Thank you for the tutorials. Also, I am looking forward to using KMM soon. 😊
13:30 You can get the colours and themes as an XML file by pressing on the export button in the top right corner.
@saurabhsharma-om1rc
11 ай бұрын
Thanks got to know after seeing your comment, and there is also an option to export for compose as well. That downloads Color.kt & Theme.kt
Thanks for making this incredible course for free, happy to learn
Dude this is so incredibly helpful. Great for learning KMM and Compose multiplatform but also a wonderful resourse for seeing clean architecture applied in practice, as you work. Just watching this has helped me understand so many foundational software concepts much better. THANK YOU
Wow, saved this vid. Will do this when I have a free time. Thanks man!!!
Thank you so much for this video. I will go through this tomorrow and try to build an app and see how well it goes.
Thank you Very Much, lots of love from Kenya
Three hours of free training, you are great🚀
This looks awesome, thanks!
It is just in time! Thank you very much, Philipp!
Thankyou man for this awesome video
+1 to all the positive comments here. I've been an "aspiring" Android developer for way too long. You definitely are helping take me to the next level! Thank you so much!
Awesome, thank you very much !
Philipp you are AMAZING! 🙌
The best video in the world has arrived.
You're a hero buddy you're so amazing You made me land my first freelance job So thank you from The bottom of my heart
This is very cool. Thank you!
This is what I wanted ❤
This is amazing video!!!. Thank you Philipp!! I hope Compose Multiplatform( with KMM ) will be popular ~
Finally completed the course this weekend. Really awwesome, now I'm going to migrate my wallpaper app project to compose MP 🎉🎉
Your passion for KMM is awe-inspiring, and your tutorial is a game-changer for aspiring developers. Kudos to your hard work and dedication! 👏👍
i like the KMM projects you make, they are very detailed
Thank You Philipp😍
Thanks for such amazing video!
Thanks Phillip Your contents are very details and you explain every step to our understanding. Bless you mentor Hope to purchase your advanced courses soon 🎉 Lots of love from Ghana 🇬🇭
Thank Philipp you for this free course.
Yes all serious developers watch till the end ;) Great video! Thanks for sharing!
13:40 you can export the colors using the button "export" in the top right
It's awesome!!!!
Thank you for this Video. You can download the color codes. There's a download button at the top that allows you to download different formats e.g jetpack compose or XML
You are amazing, l just started learning compose multiplatform yesterday. Just found this video, amazing. Keep going.
@PhilippLackner
11 ай бұрын
Enjoy!
AWESOME!
let me jump straight into it, thanks.
In your hands, you make the Kotlin language much more powerful than other languages by demonstrating its power in multiplatformity. Through WebAssembly, will become even stronger in the next few months. Along with the sensational Generarive AI, I started looking for other applications as well. I will be interested in your implementation Tensorflow Lite and demonstrate some trained model graphically. There are already many ViT Transformers too. Thank you so much for this wonderful video tutorial that you are giving away absolutely free!
This is amazing :>
Phillip always make a great content, thank you bro, you are making programming world better
Thank you so much
you are perfect guy
Thanks for giving back 👍
just amazing 🙏
Thanks for making it available for free specially for latin-american people who would not be able to afford it otherwise, god bless Philipp!
First leaving a like, then watching the video. Simply a free three-hour video that someone can use to expand their career in every way. Stupid who doesn't take advantage of it.
You are amazing...😊
Thank you for making this video! It couldn't have come at a better time because I'm currently super passionate about learning KMM. Seriously, your content is always top-notch and extremely valuable! I've gained an immense amount of knowledge from your premium courses and mentorship. Your feedback is always spot-on and incredibly helpful. If anyone wants to become an amazing Android developer, they absolutely can't go wrong with learning from you. Keep up the fantastic work, Philipp! Your videos truly make a difference, and I'm so grateful for all the knowledge you generously share.
@PhilippLackner
11 ай бұрын
Thanks so much Daniel, looking forward to more work with you 🙌
Amazing!
Amazing
You are my hero ❤
thanks 👍🏻❤️
Wow, I've been looking for exactly this type of video! I'm looking to turn an Android app into a KMM one as I get a lot of requests for an iOS version.
@PhilippLackner
11 ай бұрын
Enjoy!
You are awesome 👌 👏
omg! God bless you
Thank you Philipp...
I love to learn about KMM , this SUNDAY i will complete
We all gonna remember your name , thank you ❤
Thanks Philipp
Great video 🎉
Thank you
Thx!
Hey Philipp, the theme builder page allows to export the color theme written in Kotlin by clicking the export button in the top right corner.
I absolutely appreciate this!! I've been thinking of using Dart (Flutter) but going away from Kotlin was bumming me out
@vibovitold
11 ай бұрын
Yeah, Dart isn't nearly as nice as a language (somewhere between Java and Kotlin I'd say, yet still closer to Java), and now that we've got Jetpack Compose I feel like Flutter lost its main relative advantage (in-code declarative layouts and associated state management)
Great 👍👍👍
Unbelieveble.
Philip I am not doing unfortunately android development anymore but I follow your video because you are an exceptional person thank you for your awesome effort and to make it free
Wow ❤❤❤❤
Thankyou
Legend
great😍
which shortcat do you use for creating new kotlin class on mac? CMD+N not directly creating class on mac
Great course thank you ❤❤ i think its better to use Circuit A Compose-driven architecture for Kotlin can you at least make a crash course about circuit please it will be very helpful 🙏🙏
Hello Phillip, Excellent course. Question: will always be necessary to use swift to code the iOS part? or is there a plan from Kotlin (to code the iOS part from native Kotlin) as well. Thanks,
Week 3 of learning compose. This looks good, and am doing it. God help me
with the expect class you can now generate the actual class for you if you alt enter on the classname
@PhilippLackner First of all, I thank you because the content you share is impressive. Is it possible to navigate back in the view stack by swiping like natively? In all the Compose Multiplatform examples I've seen so far, it's always done through the action of an icon or button.
Hi philipp, Thanks for this video on Compose multiplatform.Can you please share from where you get resources or references for compose multiplatform for e.g. platform specific implementation for ImagePicker ?
Great video Philipp, thanks for sharing with us. I’ve been waiting for a long time a vídeo about kmm from you, because i know you use most modern techniques and a clean close approach, and after I watch this video I continue considering that still not worth it. I think that isn’t a good idea not to use android libraries like hilt or room, to use something else just to make a code shareable. I’m really passionate about kotlin, and I dream with kmm for a long time but I think that is not the moment yet. Now, kmm is adding more complexity in both projects instead of make it more easy to understand for both developers, android and ios. I think Flutter continues to be the the best option now, even though it’s another approach and you need to use dart(the worst language….). thanks for sharing your experience. =)
@PhilippLackner
11 ай бұрын
Compose Multiplatform is now pretty much flutter with kotlin + making it easier to write native specific code, so I don't see how that argument counts 😄
Philipp, this course was awesome. The hands of session really helped me get good knowledge. Really appreciate. Now the KMM has official version is out, what is your opinion on its performance on iOS platform. Does it match or comes close to the native iOS app performance. Please let me know your view?
I love you more than myself ❤
You don't need to copy each color code, you do have the option to download all colors codes from the top right dropdown menu (export).
Awesome video, thanks! I'm also wondering is it possible to send ImagePicker parameter from the App to a certain Voyager screen and if so, how? Best regards!
Using Precompose can also make managing ViewModel easier.
13:35 There was a button in the top right corner to export the material colors)
❤❤❤
116th...Thanks Philipp
Thank you @philip
Do one for Desktop!
Please make a video on theme customization, Changing the background color of IconButton and shape and NavigationBarItem. There is no topic out there.
Many thanks for sharing your knowledge. One question regarding the project, why haven't you use Moko for sharing resources? it would help if on top of the video you have used what you explained before. Hard to keep up with all the libraries around, setting up KMM project files. Any how, great content. Best regards
@PhilippLackner
11 ай бұрын
That would've involved too much setup, the video is already 3h+ long
You're turning my life upside down man
@ChrisAthanas
8 ай бұрын
no one can keep up with the marathon man
Havent had chace to watch this all theough yet but wondering if Philipp handles any errors in this? Can you display a Toast or Snackbar on iOS in compose multiplatform??
There is an option to export the colors as "jetpack compose theme" on the export section of the material theme website.