Fragment Constructor Injection with Hilt and Navigation Component

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024
  • The best android courses in the world: codingwithmitc...
    Watch the HILT course here (FREE): codingwithmitc...
    How to do constructor injection with fragments using the new dependency injection framework built on top of Dagger2, Hilt.
    I'll be using Hilt, FragmentContainerView, FragmentFactory, and Navigation Component.
    Code: github.com/mit...
    Instagram: / codingwithmitch
    Twitter: / mitch_tabian
    .
    .
    #AndroidDev

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

  • @skaterope
    @skaterope 4 ปีที่แล้ว +3

    Maybe the best content on youtube for Android Dev.

  • @akashkumardas6521
    @akashkumardas6521 4 ปีที่แล้ว +18

    I found 3 best TH-cam channel for android developers,
    No.1 coding with Mitch
    No.2 Android devs
    No.3 coding with flow
    And reso coder is deprecated

    • @ChrisAthanas
      @ChrisAthanas 3 ปีที่แล้ว +8

      Philip Lackner is also quite good

    • @islamicinsightbysaifi
      @islamicinsightbysaifi 3 ปีที่แล้ว +3

      4. Phillip Lackner is also very good. He always tells Advance concept of Android.

    • @IdaBagusTrisnaWidia
      @IdaBagusTrisnaWidia 3 ปีที่แล้ว

      reso coder now focus more on flutter

    • @mattgraves3709
      @mattgraves3709 3 ปีที่แล้ว +1

      @@ChrisAthanas He is Android devs
      changed the name.
      Phillip Lackner is my new favorite. Especially with that testing playlist man that is mandatory for professional work and nobody teaches it

  • @nicoqueijo
    @nicoqueijo 3 ปีที่แล้ว +2

    Btw you can do CTRL + ALT + L to format your code and CRTL + ALT + O to optimize imports (remove all unused imports)

  • @f4bioo
    @f4bioo 2 ปีที่แล้ว

    Thank you so much Mitch, this custom Main NavHostFragment trick saved my day

  • @carloscontreras-kh5ct
    @carloscontreras-kh5ct 4 ปีที่แล้ว +2

    Estaba esperando el tutorial. 👍

  • @iftak01
    @iftak01 2 ปีที่แล้ว

    Great Series again my Canadian guy!!

  • @buzzminkyunghoon3856
    @buzzminkyunghoon3856 4 ปีที่แล้ว +7

    Deja vu

  • @jaserq
    @jaserq 4 ปีที่แล้ว

    You are really a good teacher with a talent

  • @otoS97
    @otoS97 2 ปีที่แล้ว

    Thank you so much my man.. This video literally got my back today.

  • @blues1337
    @blues1337 3 ปีที่แล้ว

    Well, wish I had realized you had a video about exactly this 8 hours ago.

  • @fimfomfum123
    @fimfomfum123 3 ปีที่แล้ว

    Dude you literally saved me, thank you so much! Keep up with the great work

  • @sacchimehnat
    @sacchimehnat 2 ปีที่แล้ว

    Good video. Well demonstration.

  • @DanielGibby
    @DanielGibby 4 ปีที่แล้ว

    Very helpful again. Thanks Mitch!

  • @abhisheksaxena518
    @abhisheksaxena518 4 ปีที่แล้ว +3

    After going through some stackoverflow answers and issue trackers, if you have to setup actionbar with navcontroller then FragmentContainerView will not be able to find the associated NavController. In order to resolve this issue, simply replace it with and find the controller traditionally like navController = findNavController(R.id.default_navHost_fragment)
    Bug Report: issuetracker.google.com/issues/142847973

  • @laszloforgacs8210
    @laszloforgacs8210 4 ปีที่แล้ว

    nice tutorial, comprehensible and concise explanation

  • @mohammadbahadori8269
    @mohammadbahadori8269 2 ปีที่แล้ว

    Good job.
    You explained too good

  • @Murad3223
    @Murad3223 3 ปีที่แล้ว +2

    wait, where are the videos about the rest of the app, where you build room repo and retrofit?

  • @michakozak1767
    @michakozak1767 3 ปีที่แล้ว

    Thanks a lot ! Great explanation

  • @akashdeepwadhwa5828
    @akashdeepwadhwa5828 3 ปีที่แล้ว

    thank you very much this one helped me on project and solved my one of annoying issues i was having constructor injection with fragments... had no idea it does not work out of the box to support constructor injection in fragments... i have basics of mvvm coroutines .. and can you help me which paid project i learn from you ..atleast i get the confidence

  • @DerCheckerzeigts
    @DerCheckerzeigts 4 ปีที่แล้ว +1

    How to do this with bottom navigation?

  • @sourabhpal4717
    @sourabhpal4717 3 ปีที่แล้ว +1

    Nice one. Can we use constructor injection to inject viewmodel in the same fragment?

  • @singhkamalpreet11
    @singhkamalpreet11 3 ปีที่แล้ว

    Just incredible...

  • @SpaceTimeBeing_
    @SpaceTimeBeing_ 4 ปีที่แล้ว +2

    How to use viewBinding with such a fragment? Since it directly takes in the layout

    • @devanshu_on_youtube
      @devanshu_on_youtube 4 ปีที่แล้ว

      I suggest creating an abstract base class for a view-binding fragment that uses the usual Fragment() empty constructor and inflate the view using DataBindingUtil in the onCreateView method. You can still provide the layout as a dependency in the constructor of this base class, and have full control over whether you choose to use the helpful Fragment constructor with the layooutId or use DataBindingUtil instead. Hope that helps :)

  • @gagandeepsinghwalia4462
    @gagandeepsinghwalia4462 4 ปีที่แล้ว

    According to 9:48 one factory will handle all fragments or one factory for each fragment

  • @fahrican9708
    @fahrican9708 3 ปีที่แล้ว

    yes, this video was good!

  • @bloodops3893
    @bloodops3893 3 ปีที่แล้ว

    This is very interesting video :)

  • @kravgenko2
    @kravgenko2 4 ปีที่แล้ว +1

    Hello, how I can transfer the realization of interface class into hilt in my ViewModel. I can't use @Binds, because after creating ViewModel I should fulfil some method to calculate the required realization of this interface.

  • @vahidgarousii
    @vahidgarousii 4 ปีที่แล้ว

    Thank you sir👍

  • @JohnDoe-wx3zm
    @JohnDoe-wx3zm 2 ปีที่แล้ว

    Mitch, is constructor injection that big of a deal? The whole FragmentFactory thing seems like a lot of boilerplate, especially when you can just field inject (I know filed injection is supposed to be bad, but does the FragmentFactory have any tangible upsides?)

  • @m0tivati0n71
    @m0tivati0n71 4 ปีที่แล้ว

    Lovely

  • @harshar6897
    @harshar6897 3 ปีที่แล้ว

    Is it possible to constructor inject view model like this?

  • @LogicPhalanx
    @LogicPhalanx 3 ปีที่แล้ว

    How is the injection working in your NavHostFragment if you're using the value in onAttach? onAttach comes before onCreate in the lifecycle of the Fragment. When does Hilt do injection in the Fragment lifecycle?

    • @codingwithmitch
      @codingwithmitch  3 ปีที่แล้ว

      In on attach for fragments. Same as with dagger.

  • @AbdulRehman-em7rq
    @AbdulRehman-em7rq ปีที่แล้ว

    cannot be provided without an @Provides-annotated method.
    public abstract static class SingletonC implements VroomVroomApp_GeneratedInjector,
    Hi, I am facing this error in my project. Can you answer this error?

  • @RooshiPatidar
    @RooshiPatidar 4 ปีที่แล้ว

    I love you this is amazing

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

    why you are using fragment factory here?

  • @moustafaessam1463
    @moustafaessam1463 4 ปีที่แล้ว

    What if we inject the factory into a method then set the fragment factory inside it?
    @Inject fun setFactory(factory: CustomFactory) {
    supportFragmentManager.fragmentFactory = factory
    }
    Since the injection is done before the call to super.onCreate()
    Please correct me if I’m wrong

  • @mehranj73
    @mehranj73 3 ปีที่แล้ว

    But it doesn't work with BottomNavController

  • @PeteStMartin
    @PeteStMartin 2 ปีที่แล้ว

    Is there a difference between ApplicationComponent::class and SingletonComponent::class?

    • @vasiliychernov2123
      @vasiliychernov2123 ปีที่แล้ว

      They're the same thing, ApplicationComponent just got renamed to SingletonComponent.

  • @paulaalejandradiazsilva2333
    @paulaalejandradiazsilva2333 4 ปีที่แล้ว

    Do you have any video of deploying Django to Elastic beanstalk? I know my question has nothing to do with this video, but I haven't found a good tutorial...

  • @mohitbalani7956
    @mohitbalani7956 4 ปีที่แล้ว +2

    I have not learnt dagger 2 can i directly use hilt ?

  • @carloscontreras-kh5ct
    @carloscontreras-kh5ct 4 ปีที่แล้ว

    apparently is not working login service with date 16/07/2020 05:53 pm, i am watching "powerful android apps..." course and i cannot login

  • @hashemmousavi2451
    @hashemmousavi2451 2 ปีที่แล้ว

    Having Fragment with non default constructor that contains parameters is totally wrong.
    Because when the Activity killed by system and after coming back to the app, system can't recreate the fragment

    • @vasiliychernov2123
      @vasiliychernov2123 ปีที่แล้ว

      That's the reason they introduced FragmentFactory, you provide your own factory which knows how to create your Fragment with non-default constructor.

  • @DerCheckerzeigts
    @DerCheckerzeigts 4 ปีที่แล้ว +1

    So every fragment needs it own fragmentfactory? So if I have 18 Fragments, I also need 18 fragmentfactories?

    • @trampflips101
      @trampflips101 4 ปีที่แล้ว

      One fragment factory can be a factory for multiple different fragments, so no

    • @DerCheckerzeigts
      @DerCheckerzeigts 4 ปีที่แล้ว

      @@trampflips101 But can I have multiple Fragmen factories?

    • @trampflips101
      @trampflips101 4 ปีที่แล้ว

      @@DerCheckerzeigts of course :)

    • @DerCheckerzeigts
      @DerCheckerzeigts 4 ปีที่แล้ว

      @@trampflips101 But how? I've tried using "childFragmentmanager.fragmentfactory" multiple times but that didn't work. Please tell me how to assign multiple fragmentfactories to one navhostfragment aka childFragmentmanager

    • @trampflips101
      @trampflips101 4 ปีที่แล้ว

      @@DerCheckerzeigts oh i'm not sure about that, I thought you were asking whether you can have separate factories for separate fragments.

  • @ChrisAthanas
    @ChrisAthanas 3 ปีที่แล้ว

    Engaged to 100k

  • @oscarperry641
    @oscarperry641 4 ปีที่แล้ว

    HOT

  • @astrologykhan8125
    @astrologykhan8125 4 ปีที่แล้ว

    What news say about him ???

  • @bryanneuberger5886
    @bryanneuberger5886 3 ปีที่แล้ว +1

    engagement

  • @technicalvenky8778
    @technicalvenky8778 4 ปีที่แล้ว +1

    1st view...

  • @help-ever
    @help-ever 4 ปีที่แล้ว

    Hello.

  • @VivekSharma-qw5ky
    @VivekSharma-qw5ky 4 ปีที่แล้ว

    Thank you sir 👍