Type-Safe Navigation with the OFFICIAL Compose Navigation Library

  Рет қаралды 34,553

Philipp Lackner

Philipp Lackner

Ай бұрын

In this video I'll show you the Type-Safe Navigation with the OFFICIAL Compose Navigation Library!
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
pl-coding.com/drop-table-ment...
⭐ Courses with real-life practices
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android developer now:
pl-coding.com/premium-courses...
Get my FREE PDF about 20 things you should never do in Jetpack Compose:
pl-coding.com/jetpack-compose...
Regular programming advice on my Instagram page: / _philipplackner_
Join my Discord server:
/ discord
Get the source code for this video on GitHub:
github.com/philipplackner/Typ...

Пікірлер: 196
@sosaucemp3
@sosaucemp3 Ай бұрын
7:17 He sounds so happy about it 😭
@WakeupDev.
@WakeupDev. Ай бұрын
yea... I felt that in his voice 😄
@farfar5828
@farfar5828 Ай бұрын
😂😂 I felt that too
@KevinMeneses
@KevinMeneses 27 күн бұрын
X3
@BSS_00
@BSS_00 27 күн бұрын
its like every developer after a new good feature
@wame-bs7250
@wame-bs7250 16 күн бұрын
Cause this feature reduces hundreds of lines of boilerplate parsing arguments, ensuring they're not null, etc...
@anandbhalerao6581
@anandbhalerao6581 Ай бұрын
Yes. Yes. Yes. Omg. Tears of joy. Really needed a new way!!!!!
@ayitinya
@ayitinya Ай бұрын
This is actually the best news in android i've heard in a really long while
@Jessewb786
@Jessewb786 Ай бұрын
I was using Circuit and it's own navigation, so I've been making use of type-safe screens with painless parcelable arguments for quite a while. It's nice to now see this present in the official library.
@geanbrandao4987
@geanbrandao4987 Ай бұрын
It's so easy now. Thank you for bringing this content to us! Keep up the great work, hugs from Brazil.
@rishabhsaraswat1928
@rishabhsaraswat1928 Ай бұрын
4:03 we can clearly see his happiness.
@MatthewSmith-mt3kz
@MatthewSmith-mt3kz Ай бұрын
The demo is a pretty simplistic, but a good intro into the new Nav feature. In the real world you'd be getting the screen argument from savedstatehandle. Keep up the good work Phillipp, your videos have saved me hours. Thank you.
@annaberkovitch85
@annaberkovitch85 Ай бұрын
Philipp, I've no words!!!! Thank you for brightening my day! But mostly thank you for the truly TREMENDOUS amount of work you're doing to bring all those updates to us in a manner that's both timely and incredibly clear. Just... Thank you!!!!
@PhilippLackner
@PhilippLackner Ай бұрын
🙌❤️
@worthex_2
@worthex_2 Ай бұрын
Omg this feels much more satisfying to do nagivation straight with classes now. Beautiful update.
@lindaporsius
@lindaporsius Ай бұрын
Could you please make a video about Drawer/BottomNav using this lib? Especially how you would handle the selected-property of a nav-item (and the corresponding icons)
@okeziokezino
@okeziokezino Ай бұрын
Philip my guy, this is awesome... love all your work
@JackCheungShingKit
@JackCheungShingKit Ай бұрын
That JSON serialization is how I did before for passing argument. Though my approach on serialization & deserialization boilerplate can be ugly. Agree that it is a great improvement. I wish they made this available since the beginning.
@supadeurali9848
@supadeurali9848 Ай бұрын
Wow wow wow.... tears in my eyes as well. So excited to try this.
@amit470
@amit470 Ай бұрын
Such a relief, I need this to be in compose stable
@vit4mint685
@vit4mint685 Ай бұрын
Just wrapped up a project that used a lot of the old compose navigation. Looking forward to this
@magedahmed5981
@magedahmed5981 Ай бұрын
Finally .. a simple straight routing .. 😊
@quangthaita6084
@quangthaita6084 Ай бұрын
Thanks who created this, thanks Phillips ❤ That's what we're waiting for
@raeesmohit01
@raeesmohit01 Ай бұрын
It was really a big problem for beginners for me to change the screen and you made it easy now
@Mexicanerie
@Mexicanerie Ай бұрын
Amazing ! I'm already making a PR on my projec with theses improvments 😁
@ordnavile
@ordnavile Ай бұрын
Very good, my project is in its final stages. I'm going to take advantage and refactor it to be cleaner. Thank you very much friend.
@coalacorey
@coalacorey 28 күн бұрын
Finally! As soon as the stable release is out I will implement it.
@darknjko
@darknjko Ай бұрын
Thanks again for that demo. Spot on, as always 👍 Originaly, it seemed that the routing library was made to handle all routes as deeplinks. I wonder how deeplinks will work with that new approach? Should we write a deeplink handler that would reroute the user to the proper screen? 🤔
@joatancarlos2704
@joatancarlos2704 Ай бұрын
Thank you for bringing this content in a very didactic way
@moheltanani1036
@moheltanani1036 12 күн бұрын
If you were in tears, I'm crying right now hehe. Love it, thanks a lot!
@MrMacromicro
@MrMacromicro Ай бұрын
Thanks philip ,you are really amazing.
@TimKaragosian
@TimKaragosian Ай бұрын
This looks similar, but even better than Decompose. As always, thanks for sharing these great videos and quality content!
@AbuSaeeTech
@AbuSaeeTech Ай бұрын
being as Android Native Developer appreciate 👍 you
@WakeupDev.
@WakeupDev. Ай бұрын
Lucky me.. I just started doing compose and KMP, so I haven't suffered like you 😄 I see some cool changes
@levlevkin1325
@levlevkin1325 Ай бұрын
Thanks Philipp! This is amazing!
@yahussainmazloom1
@yahussainmazloom1 Ай бұрын
Finally some good updates, finally so much relief after this update
@meidy3795
@meidy3795 Ай бұрын
Good information Phillip ! Thos wpuld really helped my ptoject for compose multiplatform
@wame-bs7250
@wame-bs7250 Ай бұрын
Just use Reimagined Navigation that has a bunch of cool features such as type-safe navigaiton and Parcelable support out of the box. Also community have the Decompose as a multiplatform solution. Both of these libraries are completely driven by community so if you prefer only official libraries it's always OK
@diabetesatuniversity
@diabetesatuniversity 26 күн бұрын
Thanks this is helpful. Love your videos.
@MateuszKowol-nu8lr
@MateuszKowol-nu8lr Ай бұрын
Still nice improvement however the main advantage of f.e. voyager is that you do not need to declare the navHost and its all routes. Voyager allows you to just jump from ScreenA to ScreenB without declaring it in your navHost. Google's navigation is still kinda similar to the fragment navgraph but without the childlish arrowing thing.
@arthurabreu1904
@arthurabreu1904 Ай бұрын
Aaaaand thanks again for sharing man! 🎉🎉🎉
@vengateshm2122
@vengateshm2122 Ай бұрын
There was a crash when we try to pass custom type like User(val id: Int, val name:String, val isPremium) in 2.8.0-alpha08 version which is fixed recently in version 2.8.0-beta01.
@tmjromao
@tmjromao Ай бұрын
Thanks for the video. Is the bottom navigation also changing accordingly? What is needed to have screenB with bottom navigation graphs? Thanks.
@DanielLuche
@DanielLuche Ай бұрын
Nice. I'll be very usefull. Thanks to share bro
@9Blurke9
@9Blurke9 Ай бұрын
Now we need another navigation video to compare all the options with pros and cons for each 😄
Ай бұрын
What an improvement!
@nanonkay5669
@nanonkay5669 6 күн бұрын
2 reasons why I started and stopped Android dev within a year: 1. Lack of a package manager that handles all package installations, they're dependencies and versions without having to manually do it every time and manually tweaking package and dependency versions 2. Navigation between screens The second one seems to be solved. If the first one gets solved, I'd be back to Android dev in a heartbeat
@helmutbierbaumer2648
@helmutbierbaumer2648 Ай бұрын
Highly appreciated 🥳
@radheshyampatel5578
@radheshyampatel5578 Ай бұрын
I am Big fan of yours video 🎉
@yanneckreiss
@yanneckreiss 29 күн бұрын
Haha I can relate to your joy about this update so much 😂Great video!
@douglascf2
@douglascf2 Ай бұрын
Thanks for the video! So exciting! I have a question, does it automatically work with SavedStateHandle in a ViewModel?
@jeonie9682
@jeonie9682 Ай бұрын
I did today and worked well. but you should use the method now like "SavedStateHandle.toRoute" not just "savedStateHandle" in a ViewModel.
@rahathossainhimel7177
@rahathossainhimel7177 Ай бұрын
Finally. Thank you Philipp
@santyas
@santyas Ай бұрын
Great Video!!! How do you retrieve args from the destination viewModel directly? If I use savedStateHandle inside viewModel still needs to safe the possible null argument using ?: or !!
@MO1NKHAN
@MO1NKHAN Ай бұрын
OMG, I wish this could have come earlier. In my first app I have spent so much time and effort just to handle navigation without relying on 3rd party libraries. I have an e-commerce app running in production with lots of screens hanging on those route strings. It's time to refactor and remove all that boilerplate code.
@arten8281
@arten8281 21 күн бұрын
OP gonna start using jet pack compose now
@simonsarhin2114
@simonsarhin2114 29 күн бұрын
I once said XML way of navigating was better than Compose. Now it's getting better. 😀
@siftoshka
@siftoshka Ай бұрын
What if I need this parameters on ViewModel?
@solokiller5883
@solokiller5883 Ай бұрын
Wow, this really is a lot easier than it used to be
@kuromujou1346
@kuromujou1346 27 күн бұрын
looking forward you make a video about this but with multiple nested graph. im newbie and im so confuse right now.
@MaisUmSomente
@MaisUmSomente 19 күн бұрын
Amazing, worth sharing
@amirhosseinghafoorian9985
@amirhosseinghafoorian9985 Ай бұрын
Cool update 🤩 what I'm more curious about is that how does recommendations work ? is it an extension or a live template or smth ?
@PhilippLackner
@PhilippLackner Ай бұрын
Gemini AI suggestions in Android Studio Jellyfish
@alexmercerind
@alexmercerind Ай бұрын
Finally we got it!!
@aiyuayaan
@aiyuayaan 25 күн бұрын
Thanks @Philipp Lackner, one thing I have to mention is we can't send empty string as value, I am using 2.8.0-beta01.
@SunAndMoon-zc9vd
@SunAndMoon-zc9vd 23 күн бұрын
With "empty string" do you mean: 1.a text with no characters; like "" 2. or do you mean undefined 3. or do you mean null
@aiyuayaan
@aiyuayaan 22 күн бұрын
@@SunAndMoon-zc9vd I mean "" this
@weaponx3373
@weaponx3373 Ай бұрын
It is a really great news !!!
@carlosalvarado5331
@carlosalvarado5331 29 күн бұрын
excellent just like SwiftUI!!
@normno
@normno Ай бұрын
Так забавно наблюдать, как мои любимые yoytebers выпускают обзоры на новые функции библиотек android и kmp примерно в одно и тоже время и у каждого свое красивое решение использования.
@Guilo583
@Guilo583 29 күн бұрын
thanks for video. Is this new lib support compose Multiplatform ?
@upbeatsarcastic8217
@upbeatsarcastic8217 Ай бұрын
This is most exciting Compose feature to date imo. Having just finished a Compose app, navigation was the ugliest thing to deal with by a long way.
@Pulkit__7
@Pulkit__7 24 күн бұрын
KotlinX Serialization brings back old memories from 2019
@filipmanevski9872
@filipmanevski9872 Ай бұрын
Can you make a video on how to implement this way of navigation, using a navigation drawer for example or a bottom nav bar?
@mdisi5967
@mdisi5967 Ай бұрын
Wow this is amazing 🎉
@patsnow1066
@patsnow1066 Ай бұрын
Need this in KMM!
@ismailcreatvt
@ismailcreatvt Ай бұрын
This is awesomeeeeee!!!
@ayitinya
@ayitinya Ай бұрын
with this, do you create a separate file called and put in all data classes and objects? what would be a clean way to keep the screens? I have also thought of having a sealed class called Screens and then throwing all screens in there. curious to know what you suggest
@bitoons
@bitoons Ай бұрын
So cool and so safe !! But now how i can use deeplink with this serialize data road ?
@resitsahin7787
@resitsahin7787 24 күн бұрын
Hi Philip, can you make a video about drag and drop of lazy column, i have stuck there. It seems they have recently added this capability.
@saidkamol3284
@saidkamol3284 Ай бұрын
that's great, finally
@LAOSmnagiva809
@LAOSmnagiva809 Ай бұрын
Finally, FINALLY!
@sw_a_ppy
@sw_a_ppy Ай бұрын
Pls make more on this
@osamamohsen3993
@osamamohsen3993 26 күн бұрын
I love you ♥️♥️♥️♥️♥️ You are the best
@ren7907
@ren7907 18 күн бұрын
isn't that cool? YES it is f cool! Thanks Philipp
@mark-147
@mark-147 Ай бұрын
Any tips on naming? I already use FooScreen for the actual composable UI.
@MrMindfullness
@MrMindfullness Ай бұрын
I have purchased Essentials course. Will this be incorporated in the course as well?
@Lucky_PhilB
@Lucky_PhilB 25 күн бұрын
Havent had the chance to play with this yet. How does it deal with deeplinks? And is this implemented for kmp compose?
@danielreinhold8475
@danielreinhold8475 8 күн бұрын
Looks pretty nice, but in my opinion compose destinations by raamcosta is still easier to use & maintain.
@deepaksingh-qd7xm
@deepaksingh-qd7xm Ай бұрын
Now I will learn it I has paused my learning
@EdwinRebolledo
@EdwinRebolledo 2 күн бұрын
We can use it in prod apps ? its on alpha or you recommend to use it from now on
@rishabhsaraswat1928
@rishabhsaraswat1928 Ай бұрын
I am a student. I am up to date with most of Android and I am struggling with guidance for more advanced stuff. Since I am a student, can u please tell the price of the 10 week program. I need to start collecting money. I have signed up but haven't received any emails yet.
@pdjeowudjx
@pdjeowudjx Ай бұрын
so great
@emranulislam6469
@emranulislam6469 Ай бұрын
Damn Thats so good
@manticomar1146
@manticomar1146 Ай бұрын
The questino is in my view model how would I use savedStateHandle to extract the parameters?
@pablovaldes6022
@pablovaldes6022 Ай бұрын
Still a lot to improve. Dynamic load of graph in other libraries or modules, without the need to load all them upfront.
@user-dc8us2ci4n
@user-dc8us2ci4n Ай бұрын
It looks fine with two screens, what about popBackStack , popupTo etc, like in fragments ? When nav logic becomes more complex
@PhilippLackner
@PhilippLackner Ай бұрын
Works just as easy
@user-nz3ve1jn1l
@user-nz3ve1jn1l Ай бұрын
Can I use the library normally in kmm? Is it superior to voyager and decompose?
@gloooooom6229
@gloooooom6229 Ай бұрын
hi! how would i do it if i have 2 UI sets for 2 usertypes? i have a radiobutton on the signup to identify them. how can i navigate them to the right set of UIs i already have my bottomnav that has 5 screens
@ivoheberle
@ivoheberle Ай бұрын
Does this also work with the new kotlin multiplatform navigation or is it only an android feature?
@samuelwakoli
@samuelwakoli Ай бұрын
Is Kotlin Multi-Platform industry ready? Can I migrate my Flutter project to KMP?
@safakcelik3173
@safakcelik3173 Ай бұрын
Is this usable also for KMM?
@MrBzik1111
@MrBzik1111 Ай бұрын
I wonder how other libraries (mentioned in the comments) can get use out of Parcelable. For KMP. I thought It was only android thing
@zeroarst
@zeroarst Ай бұрын
Is there a way to gradually migrate to this meanwhile still keep the current navigation in xml? Simple the current project has large codebase and too difficult to migrate it in one shot.
@BugraKaraahmetoglu
@BugraKaraahmetoglu Ай бұрын
Could you please explain how we can safely integrate vertex AI into the application with Google Cloud Console. I need this urgently.
@romy4romy4
@romy4romy4 3 күн бұрын
In a prospect of front end routing this looks like a hell. Still a question why it's so complicated?
@JeeteshSurana
@JeeteshSurana Ай бұрын
is it also available for KMM?
@dimitris1708
@dimitris1708 Ай бұрын
FINALLYYYYYYYYYYYYY!!!
@unknownBoy85lover
@unknownBoy85lover Ай бұрын
The android SDK developmented by Google need a lot of changes in most of layers this API's are from them
@MuhammedThansil-ms1ss
@MuhammedThansil-ms1ss 27 күн бұрын
Can i use this in production app?
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 29 М.
Performance Optimization with @Stable and @Immutable in Jetpack Compose
16:47
Универ. 10 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:04:59
Комедии 2023
Рет қаралды 963 М.
Купили айфон для собачки #shorts #iribaby
00:31
Whyyyy? 😭 #shorts by Leisi Crazy
00:16
Leisi Crazy
Рет қаралды 19 МЛН
Which one of them is cooler?😎 @potapova_blog
00:45
Filaretiki
Рет қаралды 4,1 МЛН
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
16:19
Philipp Lackner
Рет қаралды 25 М.
No more String-based Routes! New Compose Navigation Release
5:49
Kotlin Multiplatform vs Flutter: Which should we use?
4:42
Kei Fujikawa
Рет қаралды 12 М.
Mind-bending new programming language for GPUs just dropped...
4:01
The ULTIMATE Guide to Sharing Data Between Screens in Jetpack Compose
24:08
Should You Use Compose State or StateFlow in Your ViewModels?
13:59
Philipp Lackner
Рет қаралды 69 М.
ВСЕ МОИ ТЕЛЕФОНЫ
14:31
DimaViper Live
Рет қаралды 68 М.
Купил этот ваш VR.
37:21
Ремонтяш
Рет қаралды 207 М.
keren sih #iphone #apple
0:16
kadangaruan
Рет қаралды 1,6 МЛН
WWDC 2024 - June 10 | Apple
1:43:37
Apple
Рет қаралды 10 МЛН