MVI Compose Multiplatform Contacts List App With Photos (iOS & Android) - KMM Tutorial

  Рет қаралды 66,623

Philipp Lackner

Philipp Lackner

Күн бұрын

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
@PhilippLackner
@PhilippLackner 11 ай бұрын
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
@nymexe 11 ай бұрын
Oh, you forgot to pin the comment)
@abiodunmoses2638
@abiodunmoses2638 11 ай бұрын
Will this coupon on premium courses be valid until ending of the month?
@PhilippLackner
@PhilippLackner 11 ай бұрын
@@abiodunmoses2638 no, 7 days
@JJ-fj6hl
@JJ-fj6hl 10 ай бұрын
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
@yodgorbekkomilov3383 10 ай бұрын
@@PhilippLackner please create test-driven development course with kotlin multi-platform all the best a great course danke
@chips056
@chips056 11 ай бұрын
A free THREE hours course... Damn Philipp, you're truly the man!
@PhilippLackner
@PhilippLackner 11 ай бұрын
Thanks a lot, happy learning!
@ayoubBoumzebra
@ayoubBoumzebra 11 ай бұрын
At 13:50 actually, you can export the color themes from the top *export* button in the menu. Thanks for the video.
@AhmadBakdash07
@AhmadBakdash07 11 ай бұрын
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
@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
@ma-ui8zz
@ma-ui8zz 11 ай бұрын
It is so thoughtful of you to release such a valuable course for free on KZbin, thanks a lot.
@akashkumardas6521
@akashkumardas6521 11 ай бұрын
This is really what everyone wants from you. Thank you
@mrhchan94
@mrhchan94 11 ай бұрын
Thank you Phill for your dedication and hardwork.
@kunjeshvirani
@kunjeshvirani 11 ай бұрын
Finally, the most awaited video came. Thank you 3000 times.
@nedeljkobabic1651
@nedeljkobabic1651 10 ай бұрын
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!
@speedrocketstudios5168
@speedrocketstudios5168 9 ай бұрын
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
@trocchiettoski
@trocchiettoski 11 ай бұрын
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
@patrickadutwum5480
@patrickadutwum5480 11 ай бұрын
Thanks for making this incredible course for free, happy to learn
@MtaufiqH731
@MtaufiqH731 11 ай бұрын
This is truely amazing! God bless you!
@divyanshdxn
@divyanshdxn 3 ай бұрын
Finally completed the course this weekend. Really awwesome, now I'm going to migrate my wallpaper app project to compose MP 🎉🎉
@kinggeorges625
@kinggeorges625 11 ай бұрын
Cool, I've been waiting for this for so loong. Thanks Philip
@haseeb776
@haseeb776 10 ай бұрын
Your passion for KMM is awe-inspiring, and your tutorial is a game-changer for aspiring developers. Kudos to your hard work and dedication! 👏👍
@fazalulabid8483
@fazalulabid8483 11 ай бұрын
Thank You Philipp😍
@treasuretechnology1724
@treasuretechnology1724 11 ай бұрын
Thank you Very Much, lots of love from Kenya
@mohameddouch9503
@mohameddouch9503 11 ай бұрын
13:40 you can export the colors using the button "export" in the top right
@NiMa-1629
@NiMa-1629 11 ай бұрын
This looks awesome, thanks!
11 ай бұрын
Philipp you are AMAZING! 🙌
@danielhaslinger9266
@danielhaslinger9266 11 ай бұрын
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
@PhilippLackner 11 ай бұрын
Thanks so much Daniel, looking forward to more work with you 🙌
@veda1015
@veda1015 11 ай бұрын
Thankyou man for this awesome video
@anoopkumarueconomicsa8462
@anoopkumarueconomicsa8462 11 ай бұрын
You are amazing, l just started learning compose multiplatform yesterday. Just found this video, amazing. Keep going.
@PhilippLackner
@PhilippLackner 11 ай бұрын
Enjoy!
@idriscoding
@idriscoding 11 ай бұрын
Three hours of free training, you are great🚀
@tikayz
@tikayz 11 ай бұрын
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 🇬🇭
@skarloti
@skarloti 11 ай бұрын
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!
@icodethis
@icodethis 11 ай бұрын
The best video in the world has arrived.
@ThomasPhillips3
@ThomasPhillips3 11 ай бұрын
+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!
@KingFuYouTube
@KingFuYouTube 11 ай бұрын
Damn this is insane.... 3 hours video. Thank you for the tutorials. Also, I am looking forward to using KMM soon. 😊
@i_youtube_
@i_youtube_ 10 ай бұрын
Thank Philipp you for this free course.
@ernestguevara5968
@ernestguevara5968 11 ай бұрын
Wow, saved this vid. Will do this when I have a free time. Thanks man!!!
@ajithma4091
@ajithma4091 11 ай бұрын
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.
@DavidSantiagoIriarteZamora
@DavidSantiagoIriarteZamora 11 ай бұрын
Awesome, thank you very much !
@Sidner77
@Sidner77 11 ай бұрын
This is very cool. Thank you!
@riyupapa39
@riyupapa39 10 ай бұрын
This is amazing video!!!. Thank you Philipp!! I hope Compose Multiplatform( with KMM ) will be popular ~
@creponnekarim2865
@creponnekarim2865 11 ай бұрын
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
@azatsabirov863
@azatsabirov863 7 ай бұрын
Thanks for such amazing video!
@mahadsaid7175
@mahadsaid7175 11 ай бұрын
i like the KMM projects you make, they are very detailed
@lanesOfCode
@lanesOfCode 11 ай бұрын
let me jump straight into it, thanks.
@alexnovikov1609
@alexnovikov1609 11 ай бұрын
It is just in time! Thank you very much, Philipp!
@Alexmez
@Alexmez 5 ай бұрын
Great video 🎉
@UsamaThakurr
@UsamaThakurr 11 ай бұрын
This is what I wanted ❤
@rhobpaz4577
@rhobpaz4577 11 ай бұрын
Thanks for making it available for free specially for latin-american people who would not be able to afford it otherwise, god bless Philipp!
@user-sl8jw9cc5b
@user-sl8jw9cc5b 11 ай бұрын
It's awesome!!!!
@giuliopimenoff
@giuliopimenoff 11 ай бұрын
This is amazing :>
@mytubekt
@mytubekt 9 ай бұрын
Yes all serious developers watch till the end ;) Great video! Thanks for sharing!
@EusouGabrielChen
@EusouGabrielChen 4 ай бұрын
Amazing!
@davebudah
@davebudah 11 ай бұрын
Thank you so much
@nastenkaoo
@nastenkaoo 11 ай бұрын
you are perfect guy
@Snoootz
@Snoootz 11 ай бұрын
AWESOME!
@garrisonsnow7776
@garrisonsnow7776 11 ай бұрын
Thanks for giving back 👍
@aksharshah
@aksharshah 11 ай бұрын
You are amazing...😊
@UpLiftingU007
@UpLiftingU007 10 ай бұрын
just amazing 🙏
@SaherAlSous-welcomes-you
@SaherAlSous-welcomes-you 9 ай бұрын
Thank you Philipp...
@RAJSINGH-mr7hq
@RAJSINGH-mr7hq 11 ай бұрын
You are awesome 👌 👏
@innocentkumwenda8139
@innocentkumwenda8139 11 ай бұрын
Thanks Philipp
@ericwathome783
@ericwathome783 11 ай бұрын
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
@lindaporsius
@lindaporsius 11 ай бұрын
You are my hero ❤
@vladk3524
@vladk3524 10 ай бұрын
Thank you
@dzartxstudio
@dzartxstudio 11 ай бұрын
We all gonna remember your name , thank you ❤
@apl4s
@apl4s 11 ай бұрын
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.
@nomugop8017
@nomugop8017 11 ай бұрын
omg! God bless you
@Landofcoding
@Landofcoding 11 ай бұрын
Amazing
@user-nd5yd7fe5h
@user-nd5yd7fe5h 6 ай бұрын
Thx!
@TheZaurHasanov
@TheZaurHasanov 11 ай бұрын
thanks 👍🏻❤️
@aiklklivlind9451
@aiklklivlind9451 11 ай бұрын
Phillip always make a great content, thank you bro, you are making programming world better
@irhasm.a.4932
@irhasm.a.4932 8 ай бұрын
great😍
@kishansinhparmar
@kishansinhparmar 9 ай бұрын
Thankyou
@rhythamnegi
@rhythamnegi 11 ай бұрын
I love to learn about KMM , this SUNDAY i will complete
@teqanyteqany6350
@teqanyteqany6350 11 ай бұрын
Great 👍👍👍
@MaisUmSomente
@MaisUmSomente 9 ай бұрын
Unbelieveble.
@ThomasPonzo
@ThomasPonzo 4 ай бұрын
with the expect class you can now generate the actual class for you if you alt enter on the classname
@coalacorey
@coalacorey 11 ай бұрын
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
@PhilippLackner 11 ай бұрын
Enjoy!
@jayantkumar1954
@jayantkumar1954 11 ай бұрын
Wow ❤❤❤❤
@jcolindres001
@jcolindres001 11 ай бұрын
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,
@JorgeCastro-sb3ss
@JorgeCastro-sb3ss 11 ай бұрын
@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.
@krisztianbotos168
@krisztianbotos168 11 ай бұрын
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.
@WansaIndika
@WansaIndika 7 ай бұрын
Legend
@nymexe
@nymexe 11 ай бұрын
13:35 There was a button in the top right corner to export the material colors)
@misakidebugged
@misakidebugged 11 ай бұрын
I absolutely appreciate this!! I've been thinking of using Dart (Flutter) but going away from Kotlin was bumming me out
@vibovitold
@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)
@animecontent232
@animecontent232 11 ай бұрын
I love you more than myself ❤
@bhushank1234
@bhushank1234 4 ай бұрын
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?
@ajayhatte6510
@ajayhatte6510 9 ай бұрын
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 ?
@mitulsheth
@mitulsheth 11 ай бұрын
Thank you @philip
@world_music_lyrics4416
@world_music_lyrics4416 10 ай бұрын
which shortcat do you use for creating new kotlin class on mac? CMD+N not directly creating class on mac
@d_o_o_m_g_u_y
@d_o_o_m_g_u_y 11 ай бұрын
Week 3 of learning compose. This looks good, and am doing it. God help me
@peppefailla1630
@peppefailla1630 9 ай бұрын
You're turning my life upside down man
@ChrisAthanas
@ChrisAthanas 8 ай бұрын
no one can keep up with the marathon man
@muckalica96
@muckalica96 2 күн бұрын
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!
@ericstefan5700
@ericstefan5700 11 ай бұрын
Do one for Desktop!
@jopadjr
@jopadjr 11 ай бұрын
116th...Thanks Philipp
@yuuzuX
@yuuzuX 10 ай бұрын
Using Precompose can also make managing ViewModel easier.
@mounirboussetta
@mounirboussetta 10 ай бұрын
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).
@BrunoMilhan
@BrunoMilhan 11 ай бұрын
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
@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 😄
@saddam_howladar77
@saddam_howladar77 11 ай бұрын
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 🙏🙏
@Germansdev
@Germansdev 6 ай бұрын
Thanks a lot Philipp!!. Great content, as always. I added several items to check behavior and the app became very slow (Uex not acceptable). Respond late to scroll the lists . Has it happened to anyone else🤔? I was comparing it with an app with a similar UI format with images and Room in compose and it runs without problems on the same phone. What is the cause and is there a solution? Thank you very much again!
@shoprecartteam9567
@shoprecartteam9567 11 ай бұрын
Please make a video on theme customization, Changing the background color of IconButton and shape and NavigationBarItem. There is no topic out there.
@SergKoshelev
@SergKoshelev 9 ай бұрын
nice job, but I have a question, is it will run with grpc, grpc works in swift but I need to compile Proto files to swift with protoc, how to use this generated files in such project? Maybe in the next video?)
@danimusbar
@danimusbar 10 ай бұрын
do you use Macbook pro M1 or M2 for development like this ?
@maheshjamdade1
@maheshjamdade1 9 ай бұрын
At 13:36 you can export the color scheme see the export button at the top right and you know what to choose.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 28 М.
Каха инструкция по шашлыку
01:00
К-Media
Рет қаралды 5 МЛН
UFC 302 : Махачев VS Порье
02:54
Setanta Sports UFC
Рет қаралды 1,3 МЛН
Китайка и Пчелка 4 серия😂😆
00:19
KITAYKA
Рет қаралды 3 МЛН
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
ОВР Шоу: Глава Патриков @ovrshow_tnt
9:27
ОВР Шоу
Рет қаралды 880 М.
Releasing Faster with Kotlin Multiplatform
32:24
Gradle
Рет қаралды 9 М.
Using Kotlin Multiplatform to build apps for cars
13:13
Novoda
Рет қаралды 1,3 М.
This Is My FAVORITE Error Handling Class
28:57
Philipp Lackner
Рет қаралды 24 М.
Shared Navigation on Kotlin Multiplatform with Decompose (KMP)
34:22
Philipp Lackner
Рет қаралды 19 М.
Каха инструкция по шашлыку
01:00
К-Media
Рет қаралды 5 МЛН