Navigation Basics in Jetpack Compose

🏆 My Online Courses
⭐Discount Coupon: LAUNCH-STEVDZA-SAN
stevdza-san.com
🐱‍👤 Wanna become a member? Join!
/ @stevdzasan
📸 Instagram
/ stevdza_san
With this video I'm starting a new tutorial series about Navigation in Jetpack Compose. This first video in this tutorial series will be an introduction video where you will learn some basics, about nav controller, nav host, how to declare destinations in your navigation graph, how to set the default start destinations, how to navigate between different composable screens, how to pop off a back stack when navigating etc. Watch the whole video to learn more about it! :)
Navigation Compose Playlist: • Navigation in Jetpack ...
⌚Timestamps
0:00 - Introduction
1:46 - Create Screen Composables
4:04 - Screen Holder Class
5:42 - Add Nav Host Controller
6:16 - Add Nav Host
7:36 - Nav Graph and Destinations
9:05 - Navigate to Detail Screen
10:36 - Navigate Back
11:38 - popBackStack()
12:06 - Navigate Back Explicitly & Pop Back stack
13:46 - Conclusion

Пікірлер: 134

  • @StevdzaSan
    @StevdzaSan2 жыл бұрын

    Be sure to add dependency: 🙃⬇ implementation "androidx.navigation:navigation-compose:2.4.0-alpha10"

  • @rahmataulia

    @rahmataulia

    2 жыл бұрын

    still alpha? is it ready for production release?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    @@rahmataulia Yeah it is.

  • @Sj-yf2jg

    @Sj-yf2jg

    Жыл бұрын

    Source code link please?

  • @djval9079
    @djval907911 ай бұрын

    The only youtuber with direct and usable approach. For the first time I understand jetpack navigation. It's so hard without a mentor. Not all heroes wear cape! Thank you!

  • @emirsehic4728
    @emirsehic47282 жыл бұрын

    legendo ti si zvijer sto se tice programiranja! svaka cast! tek sam na pocetku jetpack composea, ali kad to savladam preko udemy-ja uzimam i tvoje kurseve definitivno!

  • @Scamparelli
    @Scamparelli Жыл бұрын

    Man, I'm so glad I've found you. Such consise and clear instructions, with extra information about each element you are discussing which I appreciate listening to for stuff I don't understand, but also for concepts I do. Thank you! 😊

  • @AmiraMohamed-jf5tl
    @AmiraMohamed-jf5tl9 ай бұрын

    Thank you so much for the video. It helped clear some confusions I had around Navigation. Using a simplified example made it easy to focus on the navigation aspect more than the UI and different screens.

  • @leonorjohnberlinv.5750
    @leonorjohnberlinv.57506 ай бұрын

    You deserve more subs with the high-quality content you are providing especially for Jetpack Compose. Learning Compose from the former way of doing things of View and XML is difficult. You made my life easier haha

  • @StevdzaSan

    @StevdzaSan

    6 ай бұрын

    Thanks! I'm really happy that I can help 😊

  • @manofsteel6173
    @manofsteel61732 ай бұрын

    thank you from the bottom of my heart

  • @marekmisik7278
    @marekmisik72782 жыл бұрын

    that was exactly what I was looking for, great !

  • @asutoshpanda804
    @asutoshpanda80411 ай бұрын

    Easiest explanation and practical way to integrate it, the same architecture can be used in live projects.

  • @tryscope8731
    @tryscope873111 ай бұрын

    This video helped me to understand Compose better. Thanks alot!

  • @muytecnoOk
    @muytecnoOk2 жыл бұрын

    Great video!! Cristal clear and easy to understand the whole process. Out of this topic, would you tell me where to start the search to import a text file into a data class? Thank you for sharing your knowledge. Thanks!

  • @nadeem.akhtar56
    @nadeem.akhtar56 Жыл бұрын

    Thank you. Excellent tutorial.

  • @SapphireStudioart
    @SapphireStudioart Жыл бұрын

    Rhank you so much for your help!! I really learn a lot watching your videos! Thank you!

  • @StevdzaSan

    @StevdzaSan

    Жыл бұрын

    I'm glad I can help! 🙏

  • @taimoorghafar1868
    @taimoorghafar186811 ай бұрын

    Very clear explaination. I watch around 5 videos to understande navigation but I didn't get it. But you explained it realy well. Thanks.

  • @tatavarthitarun2739
    @tatavarthitarun2739 Жыл бұрын

    How did I miss this gold this long

  • @shreyp3903
    @shreyp39039 ай бұрын

    Thanks a lot brother , it was incredibly helpful .

  • @stanislav8313
    @stanislav83134 ай бұрын

    U R the best!!! Good luck!

  • @doncastro2193
    @doncastro21932 жыл бұрын

    Best tutorials I've come across lately

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Thanks buddy! 💜

  • @beckaksel8783
    @beckaksel8783 Жыл бұрын

    Thank you!)

  • @AidenLin-sq4oh
    @AidenLin-sq4oh2 жыл бұрын

    Thank you, it's helpful. 👍

  • @czerewacz
    @czerewacz2 жыл бұрын

    Thanks!! Amazing

  • @slayer5171
    @slayer51712 жыл бұрын

    Amazing content as always Stefan, love it

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Thanks buddy, I'm glad to hear that! 😊

  • @slayer5171

    @slayer5171

    2 жыл бұрын

    @@StevdzaSan Where to find source code for this video? I look at your github account but still couldn't find it.

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    @@slayer5171 I haven't uploaded.

  • @wandering.camera.guy.411
    @wandering.camera.guy.411 Жыл бұрын

    Great video, thanks

  • @tellator
    @tellator3 ай бұрын

    That was really very useful video. Thank you very much

  • @siarheisudakou4455
    @siarheisudakou44552 жыл бұрын

    Frankly, it’s difficult for a beginner to understand how Navigation works in your new To-Do App, the explanations in the course are too short and superficial. Meanwhile, the topic is important and big enough, there's many approaches. And oops! Tutorial series! I didn't even expect such happiness:] Thank you very march, Stefan!

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    I've set the course level to be intermediate. It can be troublesome for someone who's just getting introduced with Android architecture components. However this series should be enough for beginners who are slowly adapting to Jetpack Compose. 🙌👍

  • @abovemediocrity245

    @abovemediocrity245

    9 ай бұрын

    Why does Android make it so difficult to do a simple navigation within the app?

  • @melkieg3753
    @melkieg37532 жыл бұрын

    My man thank you, great as usual.

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Thanks buddy 🙏 💜

  • @Hobynist
    @Hobynist7 ай бұрын

    Thank you. Jetpack Compose is a big mess of a tool for me, and this helped a lot to get my project started 👍👍

  • @digitalluxury2033
    @digitalluxury20332 жыл бұрын

    really professional cooool

  • @user-sy5dp5ki3r
    @user-sy5dp5ki3r2 жыл бұрын

    thank you nice work ❤️❤️❤️

  • @cgomes12
    @cgomes122 жыл бұрын

    Thank you for the video. Super useful!

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    You're welcome buddy 🙌

  • @zacrobyte
    @zacrobyte2 ай бұрын

    That was quite helpful

  • @anudeepananth
    @anudeepananth2 жыл бұрын

    More videos on jetpack navigation, please... I am struggling with how to save the composable state which is populated with a coil image when navigated away and back to a composable

  • @nastenkaoo
    @nastenkaoo Жыл бұрын

    helpful video, thanks

  • @rahathossainhimel7177
    @rahathossainhimel71772 жыл бұрын

    Thank You. This video is very much helpful for me. I am finding this kind of video. ❤️

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    I'm happy for that!

  • @OnlineEntrepreneurTools
    @OnlineEntrepreneurTools Жыл бұрын

    Thank you for this!

  • @sinanarici9962
    @sinanarici99622 жыл бұрын

    Thank you. Very informative tutorial

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    More to come, stay tuned! 👌

  • @funnymoment9164
    @funnymoment91642 жыл бұрын

    Thanks!

  • @ahmedeid5273
    @ahmedeid5273 Жыл бұрын

    My android Teacher ♥️

  • @user-wo2jn1fb9k
    @user-wo2jn1fb9k2 жыл бұрын

    Thank you from Russia!

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Love to all my Russian followers 🇷🇺 🪆 🙏

  • @cyrillemouret
    @cyrillemouret Жыл бұрын

    Great. Thank you so much.

  • @StevdzaSan

    @StevdzaSan

    Жыл бұрын

    You're welcome buddy.

  • @aniruddha7581
    @aniruddha75814 ай бұрын

    Very straightforward and concise tutorial. Thanks a lot! Also you might want to slow down the coding a bit since some lines are skipped.

  • @MrA2A18
    @MrA2A182 жыл бұрын

    Awesome !!!!! Thank you :)

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Glad to help! 😊

  • @swiszcz93
    @swiszcz93 Жыл бұрын

    Should the action of the navigation be passed as a parameter so that the screens are isolated and better for testing? for example: HomeScreen( onNavigateToDetail () -> Unit ) So the NavHost is the one that manages the whole app navigation

  • @mohdotnet
    @mohdotnet10 ай бұрын

    Thank you. Your video was well done and well explained. You should submit it to Google documentation.

  • @ronigraphicart
    @ronigraphicart2 жыл бұрын

    Wonderful

  • @sadiquereyaz
    @sadiquereyaz4 ай бұрын

    great video

  • @blessonthomas4875
    @blessonthomas48752 жыл бұрын

    You are the best

  • @youprimeprime3046
    @youprimeprime30462 жыл бұрын

    Awesome m8 son

  • @attamuhammad68
    @attamuhammad688 ай бұрын

    thank you sir

  • @arsoftcr1095
    @arsoftcr10952 жыл бұрын

    awesome

  • @be_like__prateek
    @be_like__prateek2 жыл бұрын

    super explanation 🔥

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Glad you like it buddy

  • @mr.RAND5584
    @mr.RAND55842 жыл бұрын

    Than you sir, staractivity is more concise. Kinda new learning curve of my IQ is very low sad. Thanks again. This is compose not activity like one page app react js.

  • @Mel-bw2fn
    @Mel-bw2fn Жыл бұрын

    Nice

  • @ma.fouani
    @ma.fouani Жыл бұрын

    how can we navigate between activities using navigation component and jetpack compose?

  • @ojusuhani
    @ojusuhani2 жыл бұрын

    do you have a github repo where the final project is saved?

  • @randomrainforest
    @randomrainforest2 жыл бұрын

    When compiling I got the error "java.lang.IllegalStateException: 2. expected value parameter count to be higher: rememberNavController( )"... Any ideas?

  • @jhshin925
    @jhshin9252 жыл бұрын

    Thanks a lot! Are you also planning to make video about rxAndroid?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    I'm not usign RxJava.

  • @elviss911
    @elviss9112 жыл бұрын

    The best video

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Damn right!😉

  • @this-is-bioman
    @this-is-bioman10 ай бұрын

    Does this only apply to android or can the navigation components also be used for desktop apps?

  • @danielonduru8571
    @danielonduru857111 ай бұрын

    whare are the dependencies used?? and the gradle set up

  • @AbdulWaheed-fb3it
    @AbdulWaheed-fb3it11 ай бұрын

    Supppose I am sending other params in my LoginPage like @Composable fun LoginScreen( viewModel: LoginViewModel, navController: NavController ) { ... } then in this case how I only send LoginScreen(navController = navHostController) in my LoginScreen in SetupNavGraph class. it is showing error because viewModel is also required??

  • @skarloti
    @skarloti2 жыл бұрын

    Thanks

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Thank you! ❤🚀

  • @zohaib1397
    @zohaib13972 жыл бұрын

    Nice video and very helpful. Thank you for your hard work ❤ is it possible to have Shared element Transition with Jetpack Compose, like in XML we have to add "android:transitionName = "example" " to make an object transform from On Activity/Fragment to another?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Android team is working on that feature. 🚀

  • @siarheisudakou4455
    @siarheisudakou44552 жыл бұрын

    Very useful video! Are you planning to continue this series on Navigation in Jetpack Compose?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Just released the new video in this series, check it out on my channel. And yeah there will be more videos! 😊

  • @pierremarais7669
    @pierremarais76692 жыл бұрын

    Hi Stevia-San, I am new to Jetpack/Kotlin/Android, I did develop three apps for IOS, I want to red0 these now for Android, can you use Activity file instead of plan *.kt files to navigate to and from, thanks let me know

  • @jouvyap
    @jouvyap Жыл бұрын

    Hi, how to pass data when we navigate to other screen?

  • @chimaobicharles2032
    @chimaobicharles20322 жыл бұрын

    Accolades tot you my big friend, nice work, I have been watching all your videos, please when are we expecting something like news app with jetpack Compose, and chat app with jetpack compose,

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Will work on a new course and a new app. 🤜🤛

  • @sheharable
    @sheharable2 жыл бұрын

    Hi this video has been a lifesaver .

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    You don't need startActivity. Because with Jetpack Compose you'll gonna need only a single activity.

  • @sheharable

    @sheharable

    2 жыл бұрын

    @@StevdzaSan Yes I did it by your method finally ! Thanks so much

  • @Ankit-fl3wl
    @Ankit-fl3wl Жыл бұрын

    I have a problem of duplication class formed what I do ??

  • @harshpatel-bt5wr
    @harshpatel-bt5wr2 жыл бұрын

    I am working on Navigation Component with same "androidx.navigation:navigation-compose:2.4.0-alpha10" dependency. I have 3 different nav graphs for my bottom navigation view. Where i have FragmentA> FragmentB > Fragment C in sequence in any one graph. Now the user is at Fragment C and he/she click again on the selected menu item from the bottom navigation. Using navigateUp() method works fine but it follows path is FragmentC to FragmentB then Again I need to call navigateUp() for FragmentB to FragmentA. but I want that if the user clicks on the bottom menu item as reselected then he navigates back to the root fragment that is Fragment A. How can I do this kind of stuff?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    launchSingleTop maybe if I understood correctly 🤔

  • @harshpatel-bt5wr

    @harshpatel-bt5wr

    2 жыл бұрын

    @@StevdzaSan i had tried but its not working. i want like whether how many sub child I had go inside but when I click same bottom menu item it should clear all stack and navigate me to home fragment for that particular graph.

  • @DungPham-xg4dl
    @DungPham-xg4dl Жыл бұрын

    How to prevent re-render of previous screen when navigating back - Jetpack Compose? Please, help me.

  • @vampire559
    @vampire559 Жыл бұрын

    java.lang.ClassCastException: java.util.LinkedHashSet cannot be cast to java.util.List I got exception while Using NavHost

  • @maksimfisenko8887
    @maksimfisenko88872 жыл бұрын

    I set an Icon to be clickable and when clicked it is supposed to navigate to a different screen, but the app just crashes. Any reasons that could happen? Everything else is set up the similar to this tutorial. @Composable fun MainMenu(navController: NavController) { Row( modifier = Modifier .padding(bottom = 150.dp) .background(Color.Gray) .fillMaxWidth(), horizontalArrangement = Arrangement.SpaceEvenly, verticalAlignment = Alignment.Bottom, ) { Icon( painter = painterResource(id = R.drawable.ic_baseline_calendar_today_24,), contentDescription = "calendar", modifier = Modifier.clickable { navController.navigate(route = Screen.CalendarScreen.route) } ) Icon(painter = painterResource(id = R.drawable.ic_baseline_checklist_24), contentDescription = "mealList") Icon(painter = painterResource(id = R.drawable.ic_baseline_dinner_dining_24), contentDescription = "cookBook") } }

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    You need to debug your app.

  • @EugeneHeriniaina
    @EugeneHeriniaina2 жыл бұрын

    I used to use xml for navigation. So is this now the official way to use navigation for Jetpack compose? Thank you

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Yes it is

  • @TRUTHF0RCE
    @TRUTHF0RCE Жыл бұрын

    Aleluia and Amen.

  • @MrIMacro
    @MrIMacro2 жыл бұрын

    Nice, I noticed that you have shifted to Kotlin. Do you think it is a good idea or should I stick to Java?

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Kotlin definitely 👌

  • @Sj-yf2jg

    @Sj-yf2jg

    Жыл бұрын

    Kotlin + Jetpack Compose is the new future for Android development

  • @danielmwinzi9223
    @danielmwinzi92232 жыл бұрын

    will navigation using intent be a bad practice

  • @priyamprakash1209
    @priyamprakash12092 жыл бұрын

    How can i get the source code

  • @aminelhag
    @aminelhag2 жыл бұрын

    Thank to You Stevdza-san ( ノ ゚ー゚)ノ Keep Going

  • @pyaesonehan19
    @pyaesonehan192 ай бұрын

  • @user-bt7df8fh5k
    @user-bt7df8fh5k5 ай бұрын

    worked..

  • @sebastianbach5310
    @sebastianbach53102 жыл бұрын

    what if there will be LazyColumn?

  • @mikec4220

    @mikec4220

    2 жыл бұрын

    Just make the item view inside LazyColumn clickable and onClick do navController.navigate( yourRoute) - if you were referring to a List -> Details relationship . You can also add parameters to pass data to your Details screen.

  • @commonsense1019
    @commonsense10192 жыл бұрын

    idk why i am not able to excess the route variable

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Maybe because you didn't write val route: String, but just: route: String

  • @JorgeSotoRamos
    @JorgeSotoRamos2 жыл бұрын

    You could explain the same but using good practices and not passing the navController through all the views I want to know how to do that and nobody explains it

  • @TRUTHF0RCE
    @TRUTHF0RCE Жыл бұрын

    2023: If you are having the error "java.lang.ClassCastException: java.util.LinkedHashSet cannot be cast to java.util.List" change the versions of the dependencies to: implementation 'androidx.navigation:navigation-runtime-ktx:2.5.3' implementation 'androidx.navigation:navigation-compose:2.5.3' buildscript { ext { compose_ui_version = '1.3.3' } }

  • @smitdas102

    @smitdas102

    11 ай бұрын

    Bro Thank You So much! I legit spent hours trying to figure out what I did wrong.

  • @______yawn6419

    @______yawn6419

    6 ай бұрын

    i keep getting the error message "Navigation graph has not been set for NavController" what could i be doing wrong?

  • @jblacktube
    @jblacktube7 ай бұрын

    I'm having trouble with closed captioning in this video

  • @denkling
    @denkling2 жыл бұрын

    Udemy should make a difference for peaple from richer countries and the not so rich.

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    I can provide you a discount coupon code to help you out. Send me a message on Instagram.

  • @pradeexsu
    @pradeexsu2 жыл бұрын

    Your videos are too helpful for me. You are too fast .

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    What exactly do you mean when you say fast? 🤔

  • @paulvickers8059
    @paulvickers80592 жыл бұрын

    instead of : navController. navigate(Screen.Home.route) { popUpTo(Screen.Home.route) { inclusive = true } } I used : navController.popBackStack(Screen.Home.route, false) I tried it with inclusive true, it took me to a blank screen, but false then seemed to give me my desired result, but not sure why it has to be false here and true in your example?

  • @aidenyang747
    @aidenyang7478 ай бұрын

    how to use it with popUpToId? becuase popUpTo is deprecated

  • @sujanshrestha3314
    @sujanshrestha3314 Жыл бұрын

    I added following lines inside build script dependencies{ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20" }. Without it the app crashed in my mobile phone.

  • @faizazharristyanugraha1283
    @faizazharristyanugraha12832 жыл бұрын

    thanks man, this is helpful

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    🙌👊

  • @AndrewDChristie
    @AndrewDChristie2 жыл бұрын

    Thanks!

  • @StevdzaSan

    @StevdzaSan

    2 жыл бұрын

    Thank you Andrew, I really appreciate that! 🎅😊