How to Pass Custom NavTypes in Compose Type-Safe Navigation - Android Studio Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 64

  • @Razo.TR0N
    @Razo.TR0N 4 หลายเดือนก่อน +12

    Yesterday was exactly two years of my sponsorship of your channel! Thank you Philipp for your videos and especially for the videos from Twitch, which two years ago opened the door to the world of development for me. Developing a full-fledged social network app on Compose with a multi-module clean architecture in combination with a KTOR backend and its deployment to the server is the best thing education material I have ever seen in my life.

  • @cfa532
    @cfa532 3 หลายเดือนก่อน

    The 2-weeks-old video is just in-time to solve my problem. Thanks a lot.

  • @NikNewNik
    @NikNewNik หลายเดือนก่อน +2

    THANK YOU PHILIPP !!! It works !😃👍

  • @АбдукаххорРахимов-ф9ц
    @АбдукаххорРахимов-ф9ц 26 วันที่ผ่านมา

    u are the best, thx for all of u videos

  • @renvzla
    @renvzla 4 หลายเดือนก่อน +3

    thanks for this video Philipp.
    Got a quick question. How could I extract the dog model from the savedStateHandle on the details screen viewmodel?

    • @ik024
      @ik024 2 หลายเดือนก่อน

      savedStateHandle.toRoute() ?

  • @cristian1234584
    @cristian1234584 4 หลายเดือนก่อน +1

    Great! Philipp, do you have any video showing your Android Studio IDE configurations?

  • @sakibsyed7626
    @sakibsyed7626 หลายเดือนก่อน

    Great and life saver ❤

  • @ssSFrankSss
    @ssSFrankSss 3 วันที่ผ่านมา

    So there is no need to use add sealed class NavigationScreens(val route: String) ?

  • @raghavaggarwal8644
    @raghavaggarwal8644 4 หลายเดือนก่อน +1

    Hi Philipp, you mentioned that one should not use this approach in case of big custom objects because the Bundle has some limits but I wonder why anyone has never highlighted the same before? Like people have been and still use Bundles for passing arguments to Fragments when they create a Fragment's instance. We are using the same Bundle class here too right?

    • @PhilippLackner
      @PhilippLackner  4 หลายเดือนก่อน +1

      This has been highlighted lots of times that it's better to pass an ID and reload something from the DB rather than passing the whole object. The official docs also suggest that somewhere

    • @raghavaggarwal8644
      @raghavaggarwal8644 4 หลายเดือนก่อน +1

      I see, need to read the docs about the Bundle limit. Thanks

  • @h4ktbtw
    @h4ktbtw 4 หลายเดือนก่อน +8

    Too bad they did not utilize the serialization fully. Registering custom NavTypes for serializable classess is such a bad design decision.

  • @umidolimzhanov6078
    @umidolimzhanov6078 4 หลายเดือนก่อน

    Great video! Can I use it somehow to return result from screen?

  • @surjithkumar8177
    @surjithkumar8177 4 หลายเดือนก่อน

    Is this custom nav supports to add a screen transition?

  • @raulprior9635
    @raulprior9635 4 หลายเดือนก่อน

    Hi Phillip can you show us how to build an interface for handle navigation actions with the navController in view models, but you know in a way that View Models still being testable, love you videos thanks so mucho

  • @ndiritumichael
    @ndiritumichael 4 หลายเดือนก่อน +5

    the latest navigation release doesn't require the typeMap of enum to be passed.

    • @skyles146
      @skyles146 4 หลายเดือนก่อน +1

      It is required on beta07 on minified app or it will crash. There is an issue tracker on this and it will be solved in the next version 21st of August.

  • @stevenrathmann7823
    @stevenrathmann7823 3 หลายเดือนก่อน

    Could you please explain how i can pass an argument from DogDetail back to DogList if the DogDetail Screen is finish?

  • @leonelp9593
    @leonelp9593 2 หลายเดือนก่อน

    i know this is 1 month old...
    but is this still up to date witht the 2.8.1 compose navigation ? (the stable one) or is there an easiest way to do this?

  • @nott__aceu4857
    @nott__aceu4857 4 หลายเดือนก่อน

    I would rather save the data in a ViewModel than pass it as an argument (if its large data), What is your take on this ?

  • @Tbijo54
    @Tbijo54 4 หลายเดือนก่อน

    Awesome video, thanks Philipp. Could you also make one explaining how to pass type safe arguments to a nested navigation?

    • @PhilippLackner
      @PhilippLackner  4 หลายเดือนก่อน

      @@Tbijo54 that's should be no different :)

    • @skyles146
      @skyles146 4 หลายเดือนก่อน

      The only thing you need to know for nested destination is that a startDestination can't have argument. That's all.

  • @MattCM89
    @MattCM89 หลายเดือนก่อน

    How do we do this for hilt-navigation? don't they conflict?

  • @kabindrashrestha3760
    @kabindrashrestha3760 3 หลายเดือนก่อน

    Hi @PhilippLackner , How to pass Custom NavTypes in Compose MultiPlatform for Type-Safe Navigation on Android and IOS?

  • @MrPeanutMans
    @MrPeanutMans 19 วันที่ผ่านมา

    Is there a way to pass more complex types like lambdas ?

  • @RABBITV
    @RABBITV 3 หลายเดือนก่อน

    Hi Philipp , rly thank you for this video , thx to you my routing start working . L have one question to you , why you in this code in NavType use Uri.decode and encode ? Why is is important to do it ? Again thx fro the video :)

    • @muhammadnaveeed9382
      @muhammadnaveeed9382 3 หลายเดือนก่อน +2

      If we don't use the URI then app will crash if we have some special characters like "?", "/" in params of Custom Type like for image of User can have these, so we need to encode & decode that to string.

  • @prathivar6721
    @prathivar6721 3 หลายเดือนก่อน

    Nice explanation ;)
    but
    on the first hand why does kotlin wt's to do serialisation on navigation , why can't it pass as normal parameter to constructor . fine ;;;;;)

  • @flowzk921
    @flowzk921 4 หลายเดือนก่อน

    Awesome One!

  • @Bandy_K7
    @Bandy_K7 4 หลายเดือนก่อน

    thanks for this video.
    if you can make a video on android auto and automotive os it would be great.

  • @tweeel38
    @tweeel38 4 หลายเดือนก่อน

    Just to confirm, I don't think that feature is available for Compose Multiplatform and nor the type safe navigation, for now at least
    ?

    • @ahmedaaoua
      @ahmedaaoua 4 หลายเดือนก่อน +1

      But voyager available :)

    • @osisuper98
      @osisuper98 4 หลายเดือนก่อน

      Type safe navigation is already available in the last release

    • @tweeel38
      @tweeel38 4 หลายเดือนก่อน

      @@osisuper98 yes but from what I've tried, it still not available in kmp

    • @jackeblan
      @jackeblan 4 หลายเดือนก่อน

      KMP is full of hacks and 3rd party libraries written by a guy from Finland. Not yet.

  • @AhmedMeghani
    @AhmedMeghani 14 วันที่ผ่านมา

    How can I pass sealed class field as a param?

  • @mikelantzelo
    @mikelantzelo 4 หลายเดือนก่อน

    Why my android studio does not recommend autocomplete like yours ? Thanks for excellent content !!!

    • @trungnguyenhuu8184
      @trungnguyenhuu8184 4 หลายเดือนก่อน +1

      You can turn on AI completion

    • @mikelantzelo
      @mikelantzelo 4 หลายเดือนก่อน

      @@trungnguyenhuu8184 thank you

  • @slyene6202
    @slyene6202 3 หลายเดือนก่อน

    Could you please clarify how to create nullable custom types? Because I get an error "Cannot cast ... to NavType. Make sure to provide...". I set nullable in all places where it should be and set isNullableAllowed to true, bui it doesn't work

    • @beqachxikvadze1426
      @beqachxikvadze1426 2 หลายเดือนก่อน

      Same problem, did you find any solution?

  • @Abhigyan103
    @Abhigyan103 4 หลายเดือนก่อน

    How to pass view models between screens using this ? Please help

    • @malding1
      @malding1 4 หลายเดือนก่อน

      Why would you want to pass viewmodels?

    • @Abhigyan103
      @Abhigyan103 4 หลายเดือนก่อน

      @@malding1 if I have 3 screens, one start screen, one with show details, one with edit details, how can I edit details without passing the view model ?
      I recently started learning android, this may be basic

    • @manticomar1146
      @manticomar1146 4 หลายเดือนก่อน +1

      @@Abhigyan103 he has another video how to pass share view models between screens its very good

  • @L4szcZ
    @L4szcZ 4 หลายเดือนก่อน

    Why we are using @Serializable and not @Parcelize?

    • @marksunghunpark
      @marksunghunpark 4 หลายเดือนก่อน +1

      It's Kotlin serialization, not Android thing and it's also multi platform supported. I guess they have the support in their mind.

    • @aj3413
      @aj3413 4 หลายเดือนก่อน

      I agree

    • @trungnguyenhuu8184
      @trungnguyenhuu8184 4 หลายเดือนก่อน

      It's kotlin serialization, not Java serializable

  • @animefind5264
    @animefind5264 4 หลายเดือนก่อน

    How navigate inside bottom navigation menu with type-safe

  • @mudPuddlePanda
    @mudPuddlePanda 4 หลายเดือนก่อน

    Nice

  • @ArthurKhazbs
    @ArthurKhazbs 4 หลายเดือนก่อน

    why `val DogType = object` and not just `object DogType`?

  • @pyaesonehan19
    @pyaesonehan19 2 หลายเดือนก่อน

  • @aihamhammad3074
    @aihamhammad3074 4 หลายเดือนก่อน

    DO NOT USE IT
    I used compose type safe navigation in my production app, alot of crashes that are not rereducable poped up in the compose code so I was'nt able to use try and catch,crash free users and sessions droped, navigation 2.8.0 is not a stable version if u want to use some type safe navigation just convert your object to json and send it.

    • @aj3413
      @aj3413 4 หลายเดือนก่อน

      Yup, plus 2.8 probably doesn't support parcelize. A lot of work needs to be done on it. That is the probable reason this version has a lot of beta releases.

  • @smithshaw1151
    @smithshaw1151 2 หลายเดือนก่อน

    What a mess