Build Complex Animations With MotionLayout in Jetpack Compose - Android Studio Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.พ. 2025

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

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

    I watched the video, made notes, then wrote some code to implement with my own transitions and it worked!!!! 100% pure wow!!!!!

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

    I don't know how I missed this lesson, it gives so many possibilities. Thanks for the great content, it really helps at developing my skills 🙏

  • @faysaldeve385
    @faysaldeve385 2 ปีที่แล้ว +9

    Hi Philipp, you are very cool and I enjoy your amazing lessons so much. Thank you for teaching us so many things and I love your beautiful voice. So I hope you reach 100 million subscribers on TH-cam.

  • @54cardspeter80
    @54cardspeter80 7 หลายเดือนก่อน

    I made the column clickable, and animated the progress value with LunchEffect. Thanks for all the knowledge.

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

    super great video as well , i expect that from you as a huge android video content creator keep going by the way and still supporting you more and more thank you again

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

    Really need this tutorial thanks Phillip

  • @MohammadArif-gn7gr
    @MohammadArif-gn7gr 2 ปีที่แล้ว +6

    Amazing job, as always.

  • @AndrewDChristie
    @AndrewDChristie 2 ปีที่แล้ว +1

    love these videos, something new too, I always learn something and philipp does it so well

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

    All code I can repeat, it is great! Many teachers can't show like you.

  • @JohanAlbrectsen
    @JohanAlbrectsen 2 ปีที่แล้ว +1

    Best android guy on TH-cam!

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

    Thank you bro, you are the best! Luck to have you on our side!

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

    Sometimes it's like magic, exactly what I was thinking about this morning, and now you post a video about this 😂🔥

  • @dhaiach4249
    @dhaiach4249 2 ปีที่แล้ว +1

    Man your content is amazing, please keep it up!

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

    Excellent Philip! That was fun.

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

    Didn't finish watching the whole video but i think it's awesome

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

    Hats off to my man out there in south africa enjoying the sun but still managing to drop bomb tutorials

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

    You are unbelievably awesome!

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

    it was comprehensive, Thank you! 🙏

  • @이범수-t9c
    @이범수-t9c 2 ปีที่แล้ว

    Thank you philipp as always

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

    Bro...
    This is gold

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

    Great Explanation as always.

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

    You're great, Thanks for sharing.

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

    As always learnt something new

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

    Thanks the content is amazing, animations just got easier🥳🥳

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

    Thx such a nice video :)

  • @Ilamarea
    @Ilamarea 2 ปีที่แล้ว +1

    Would be cool if you showed us how to do this with constraints in Kotlin, particularly how to do transitions separately in Json.

  • @Chirag-Redij38
    @Chirag-Redij38 ปีที่แล้ว +1

    Any idea how to integrate this with a column so to expand this with scrolling.

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

    Great video, thank you! Is there a way to do something similar but with a lazygrid item animating to a full screen item? basically if we have a lazygrid, and user taps on an item, we want that one item to animate from wherever it is on the screen to be centered and full screen. i feel like motionlayout is what i need, but the "start constraints" is hard to figure out since the starting position of this lazygrid item can be anywhere on screen.

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

    Very cool, thank you!

  • @abdelazizyasser3512
    @abdelazizyasser3512 2 ปีที่แล้ว +1

    Thank u so much, i used motion layout in case of list and custom-toolbar, when scroll down into the list , the toolbar still shown. but not in jetpack compose

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

    Hi Philip!
    Why would you bother using MotionLayout as you can animate anything using Compose built in animation?
    Using MotionLayout into Compose is, as far as I understand, more of an interoperability solution than a functional solution as you can achieve the same results using Compose animation.

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

      Do you have an example on how this can be achieved?

    • @John-qt6qk
      @John-qt6qk 2 ปีที่แล้ว

      Give us a link mate

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

      @@captainallergy3654
      val crs = rememberCoroutineScope()
      val density = LocalDensity.current
      val posX1 = remember { Animatable(initialValue = 0.5f) }
      var sliderX1 by remember { mutableStateOf(0.5f) }
      Slider(
      sliderValue = sliderX1,
      onValueChanged = { sliderX1 = it; crs.launch { posX1.animateTo(it) } },
      )
      YourComposable(
      modifier = Modifier,
      centerX = with(density) { (yourComposableSize.dp.toPx() / 2) * sliderX1 },
      )
      roughly.

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

    Great tutorial Sir, Can you make tutorial for motion layout with collapsing toolbar.

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

    Great video as always Phillip!
    Quick question : in XML based MotionLayout it was passible to define multiple transitions and trigger them individually, How can we manage multiple transitions in one scene in Compose using the json5 approach?

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

    Great Video !

  • @John-qt6qk
    @John-qt6qk 2 ปีที่แล้ว

    Thanks mate,

  • @francescofreddi4374
    @francescofreddi4374 2 ปีที่แล้ว +1

    in your What Is Clean Architecture course that i bought i need help, because initial branch dont start anymore... and i dont know how to solve... there is something like: ComposeOptions.kotlinCompilerVersion is deprecated. Compose now uses the kotlin compiler defined in your buildscript.
    I am new in Compose and cannot repair
    ThankYouuu

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

      Thanks for letting me know, I will check this today or tomorrow 👍

    • @ericgacoki2225
      @ericgacoki2225 2 ปีที่แล้ว +1

      I faced a similar issue a while ago!
      You can resolve this by updating compose version in the build.gradle(Project) file.
      Something like this:
      buildscript {
      ext {
      compose_version = '1.1.1'
      }
      }
      Set the same version for the compose compiler in the build.gradle(Module) file:
      composeOptions {
      kotlinCompilerExtensionVersion compose_version
      }
      Hope this helps 😎

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

      @@PhilippLackner
      8 secondi fa
      Now funcitons.... today go very well without touch nothing! excuseMe Philips

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

      @@PhilippLackner Migrating to Gradle kotlin DSL: is too much difficult to UNDERSTAND for who dont know architecture like me :(....
      Have you got some basic video? I need understand difference about Groovie and Gadle DSL first...

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

    very cool video thank you bro👍👍👍

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

    I'm not sure if I'm stupid or what, but what is the parent of the box here? Isn't it supposed to be the column? It constrains the column from the start, end, and top. However, when it gets to the bottom, it is linked to the profile pic! Could someone please clarify?

  • @JayChiong-r3h
    @JayChiong-r3h ปีที่แล้ว

    Do you have any guide with using swipe instead of a slider?

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

    How can I change fonts size too with animation..?

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

    Thank you from video .

  • @AmanKumar-sm2gi
    @AmanKumar-sm2gi ปีที่แล้ว

    Hi i need a help. I want to implement something similar like adobe scan resize image based on document size a4,a5 how to do that?

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

    Hi Philipp, it is very good video and I have one question, we how to change custom textColor in KeyAttributes. I can do it in XML but I can't do it with json5

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

    Nice! Tyvm

  • @Hoti-ta
    @Hoti-ta 2 ปีที่แล้ว

    Does there any motion layout visual tooling added for compose already?

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

    Good evening sir

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

    Thanks!

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

    How to do it with scrolling

  • @085-vaibhavgusain9
    @085-vaibhavgusain9 2 ปีที่แล้ว

    Can’t use composable annotation giving me an error

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

    I wanted to create some thing like this with lazy column using nested scroll in my app but velocity tracker in compose has an issue , when I change offset of lazy column by scroll delta, every point add to velocity tracker has same offset so velocity approximately is zero . :(

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

    Hi. Does Jetpack Compose have the alternative of CoordinateLayout?

  • @花未开
    @花未开 2 ปีที่แล้ว +3

    How does it link to LazyColumn? I used NestedScrollConnection, but it didn't work out as well

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

    How to make composables below motion layout move up and down with respect to motion layout changing its size?

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

      Also wonder the proper way to size the motion layout

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

    Flutter: compex Pfff. 😑
    I like your content btw 😉

  • @arctan-k
    @arctan-k 2 ปีที่แล้ว

    Is motion layout available for multiplatform?

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

    Hi Philipp, I am a IOS developer, I want to rewrite my app for Android devices using Kotlin, where do I start with your videos, my App will have sqlite DB which is currently 80Mb and I want the users to request data from the DB, there will be no add to DB functions, only read, any starting point from your side, please, thanks

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

      If you know nothing about kotlin and Android start with kotlin newbie to pro and Android fundamentals. Then watch a video that covers room databases, for example my recent parking spot saver apl

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

    damn, so we are now using JSON for UIs too? 💀

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

    what's the name of the theme you're using in android studio?

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

      pretty sure that's what android studio dark theme looks like on a mac by default, if it wasn't, his android studio look wouldn't have changed when he got the mac

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

    nice ;)

  • @Mohit-il9gx
    @Mohit-il9gx 2 ปีที่แล้ว

    Why I think we are killing flutter each time android gets an update

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

    The transition (coding window to presenting the app and back) is quite annoying when over used like this.

  • @safionweb
    @safionweb 2 ปีที่แล้ว +1

    Compose disappointed me here. 😞

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

    This was easier in xml...

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

    this is awesome! btw, can you make a video on how to accomplish this -> th-cam.com/users/shortsrwjowwhFBmw , basically it is a collapsible parallax image, now instead of text it can be a list when scrolls ups the image disapper (or header component) and when scrolls down it appear again. thanks!!

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

      I think you could do it even easier than Philip's example. You just specify start and end height of a box, width as 'spread' and set mask on top of image on which you change alpha. You can set your last visible item as your progress. Not sure if there's alpha parameter but I gues it should be available.

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

    Animating the texts color via properties doesn't work anymore. As soon as I try to move the slider, an error occures with the following message:
    "java.lang.IllegalStateException: You must call layoutWithConstraints first".

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

    Very nice! Thank you