Multiple Drag and Sort List in Reanimated 2

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 68

  • @eveningkid
    @eveningkid  3 года назад +10

    Alright so, I battled with my video editor for 2 days and still couldn't export the video to high-quality! That's all I can do this time. All will be back to normal starting from the next video :)

  • @matiaspalheiro
    @matiaspalheiro 3 года назад +5

    I still haven't found someone who can explain it better than you. Its content is wonderful. Thank you for dedicating to that.

    • @eveningkid
      @eveningkid  3 года назад

      Thank you Rodrigo, really. Wow, I just have no words to answer to this, thank you. It's my pleasure to help with what I can. It means a lot to me that you take the time to share this with me (not sure I have seen you before :D). There's a lot more to come, always more to learn!

  • @alexw3547
    @alexw3547 Месяц назад

    This was just what I needed. Thank you. 🙏

  • @BADGRAPHIX
    @BADGRAPHIX 11 месяцев назад

    Looks pretty involved. Appreciate the work put in.

  • @mithleshyadav336
    @mithleshyadav336 3 года назад

    I was afraid of animation, earlier. But since, I watched your videos I gained much confidence in implementing it. Thank for such a great help.

    • @eveningkid
      @eveningkid  3 года назад +1

      Wow, this means a lot to me, really! I felt this way at some point too, you know. I hope the videos are simple enough to follow, that's my number on concern with these. Thank you for saying how you feel in the comments, it's very important for me :)

    • @alokprakash2017
      @alokprakash2017 2 года назад

      and i am in that stage. Trying to get out of it.

  • @jacobcole1271
    @jacobcole1271 3 года назад +1

    Great content as always!! I was looking forward to this video and can't wait to see part two. Keep up the good work!

    • @eveningkid
      @eveningkid  3 года назад

      It is so great to see you're still around Jacob! Very glad this was helpful. Thank you so much for supporting me since the very beginning :)

  • @davidgentilli7944
    @davidgentilli7944 2 года назад

    Veryhelpful! I learned a ton from this video, thank you!

  • @Quacky_Batak
    @Quacky_Batak 3 года назад

    Wow! That was a lot of content and knowledge. I finally, for the first time saw the use of a Shared Value other than Primitives. Also I didn't know about the reaction hook. Clamp function is much appreciated. Would definitely watch a couple time 😉. Waiting for the 2nd part! Great video as usual!

    • @eveningkid
      @eveningkid  3 года назад +1

      I was so concerned about making a video "that long", it sure was a lot in one video...! It was an interesting use case that really took advantage of different features, I'm glad you found it interesting too! "As usual", thank you for your support. Always good to have a quack quack from Apoorv :)

    • @Quacky_Batak
      @Quacky_Batak 3 года назад

      ​@@eveningkid Haha yeah thanks!

  • @cryptoknight7256
    @cryptoknight7256 3 года назад

    And now, let's figure out how to do the same with Flatlist! Teasing you. Great tutorial, man!

    • @eveningkid
      @eveningkid  3 года назад

      I’ll pass, I already spent a lifetime working on this one haha! You know how to torture people don’t you! Thanks for the message Vincent :)

    • @minotuki100
      @minotuki100 3 года назад

      @@eveningkid Salut ;) Is it a reason to not use a Flatlist instead of Scrollview? Maybe it could be some issues due to Flatlist optimizations or with "scrollTo" Reanimated 2 method?

    • @minotuki100
      @minotuki100 3 года назад

      After some try, I maybe can answer to myself ^^ : one possible good reason to not use FlatList is about zIndex. Each FlatList item are wrapped in a parent Item. Because of that, the zIndex of absolute positionning items will not work. ScrollView seems to be a better way than FlatList when using position:absolute for each items.

    • @eveningkid
      @eveningkid  3 года назад

      Mmh, I’m sure it’s doable, it must be all about making the right computations...but life is too short to do this in a video!

  • @harryd7602
    @harryd7602 Год назад

    For anyone with issues on android. Try removing the animation for the card to move to the current position. e.g.
    worked for me. Not quite as smooth but good enough
    if (Platform.OS === "ios") {
    top.value = withTiming(positionY - CARD_HEIGHT, {
    duration: 16,
    });
    } else {
    top.value = positionY - CARD_HEIGHT / 2;
    }

  • @khanhduy3364
    @khanhduy3364 3 года назад

    That sounds great

  • @junangameplays3271
    @junangameplays3271 3 года назад

    Thank you so much! You are awesome! The best!!!

    • @eveningkid
      @eveningkid  3 года назад +1

      I had to!! I remember you commented twice for drag and sort haha I really hope this helped you...or maybe this was too late? :)

    • @junangameplays3271
      @junangameplays3271 3 года назад

      @@eveningkid It's not late. It was just for more knowledge for me and others who need this content someday. It's very hard to find. I'll use it on my works. Thanks so much again, hope u understand my english haha

    • @eveningkid
      @eveningkid  3 года назад +1

      Of course I do Junan! :) Best of luck with your app, I hope you’ll do good!

  • @NelsonPRSousa
    @NelsonPRSousa 3 года назад

    This is SOOOOOOOOO cool! Any idea how we can add a floating button and drag it to add to the list? It would be legendary!
    Great work!

    • @eveningkid
      @eveningkid  3 года назад +1

      Well my guess is that you could make the button movable with a pan gesture handler, and modify the positions by adding a new id to the object as if it existed in the list. If you drop it, you then can update the list of items with a state.
      That’s just on top of my mind, but I guess that would work!
      Either way, thank you so much for commenting Nelson. It means a lot to me!! :)

    • @NelsonPRSousa
      @NelsonPRSousa 3 года назад

      @@eveningkid You deserve it, thank you!

  • @MadeWithMatt
    @MadeWithMatt 3 года назад +1

    Amazing stuff man! Really enjoying the content 🔥
    What are you using to edit your videos and how do you get such clean animations? They're always so perfect

    • @eveningkid
      @eveningkid  3 года назад +2

      Thank you Matt, it's really nice seeing you here!! I don't even edit my videos on a computer, but now on my iPad with Luma Fusion! Weird, isn't it :) But so far so good, I switched from Final Cut

    • @MadeWithMatt
      @MadeWithMatt 3 года назад

      @@eveningkid No way that's really cool!! I'll check it out! Keep making videos man they're awesome, learning a lot from you 🚀🙌 I'm excited to see your channel grow 😁

    • @eveningkid
      @eveningkid  3 года назад +1

      Thank you man, really. We're in the same boat, best of luck to you too! This community really deserves great content, let's make it happen :)

  • @NguyenPhuong-lu5sf
    @NguyenPhuong-lu5sf 3 года назад

    Nice video, nice voice. Keep up bro!!!

  • @diegobraganza2779
    @diegobraganza2779 2 года назад +1

    Great Video, a lot of very useful, content and everything is very well explained! It works really good on ios but having some problems on android: I had to add a gestureHandlerRootView, still items move in a erratic way. Any idea how to solve it?? thank you!

  • @gonz4610
    @gonz4610 3 года назад +2

    my scoreboard: william candillon - 100 | Evening kid + 100

    • @eveningkid
      @eveningkid  3 года назад +1

      ...I won't get into these oppositions! I have my style, he has his. Now I am very happy you like my videos, truly!! There are so many ideas on my mind, if only I could have more time. Thank you so much for still being around, I remember your name gonz :)

  • @towhidulislam2934
    @towhidulislam2934 2 года назад

    Good job keep going

  • @vasylnahuliak
    @vasylnahuliak Год назад

    If there is one thing hard to build with react native it must be the kanban board

  • @iamshadmirza
    @iamshadmirza 3 года назад

    This is crazy good

    • @eveningkid
      @eveningkid  3 года назад

      It’s crazy cool you’re taking time to leave a comment man. This means a lot to me, thank you :)

  • @excalibur885
    @excalibur885 3 года назад +2

    so you can scroll only from the right side ? so how i can apply opposite way? scroll with. 80% and drag and sort with 20%

  • @CHONGHE-r8q
    @CHONGHE-r8q Год назад

    How to handle performance issues caused by using sharedValue animations with large data sets in React Native?

  • @all-in-all7862
    @all-in-all7862 3 года назад

    Thanku so much brother Awesome👏👏👍😊

    • @eveningkid
      @eveningkid  3 года назад

      No way, you're still around! That's when you know, I care a lot about the comments! Thank you for suggesting this last time, and I hope this was helpful to you in some way (and hopefully not too late!) :)

  • @fernandorojo6311
    @fernandorojo6311 3 года назад

    Such a good video!

    • @eveningkid
      @eveningkid  3 года назад

      Thank you Fernando, your support is really appreciated :)

  • @jacoboaristizabal979
    @jacoboaristizabal979 2 года назад +1

    what if you want to put the row swipeable as well?

    • @ucheiam
      @ucheiam 2 года назад

      This is the exact problem I am having, I haven't figured it out

  • @crispy_rw
    @crispy_rw Год назад

    I am wondering why you stopped making animation videos.

  • @philong8268
    @philong8268 3 года назад

    Thanks for video

    • @eveningkid
      @eveningkid  3 года назад

      Thank you, I appreciate you :)

  • @clashcon11
    @clashcon11 29 дней назад

    I'm so lost with the video. LOL

  • @privat3stuff
    @privat3stuff 3 года назад

    🙌🏻

  • @crypto4elik
    @crypto4elik 4 месяца назад

    u best

  • @emperorrassem
    @emperorrassem 2 года назад

    Is there any way to optimize the list? If the list is too large, its taking too much time to initially load the page.

  • @randompointlessness2766
    @randompointlessness2766 2 года назад

    Is it the same in reactJs ?

  • @hamzashahid-z5y
    @hamzashahid-z5y Год назад

    why you guys use expo

  • @GabrielCosta-de5eg
    @GabrielCosta-de5eg 7 месяцев назад

    sadly some things are deprecated

  • @nguyenkhooi1598
    @nguyenkhooi1598 3 года назад

    Hey evening kid, thanks for this tutorial. I'm testing this gist on expo web, but unfortunately the drag gesture doesn't work :( . Do you have any insight on this?

    • @eveningkid
      @eveningkid  3 года назад

      I think the best way to know what's wrong (especially if this works on mobile but not on web), is to ask on Reanimated 2 repository. It will also help anyone else facing this issue :)

  • @hanslercher3947
    @hanslercher3947 3 года назад

    Great video as always! I always enjoy the content you are publishing here on RUclips.
    I have a question regarding FlatLists, maybe you can help me:
    I want to create a feed for the start page of my app. The feed should be infinitely scrollable and as resource-efficient as possible. Of course, this can all be done with the FlatList component, but I don't know how to display different types of components in the FlatList.
    Here is an image with an example of how I mean different types of components:
    i.stack.imgur.com/iIpW5.png
    So the layout needs to be very flexible and I don't know how to do that with a FlatList. I have already thought about Conditional Rendering, but again I am missing a way to make it work properly.
    Have any of you ever solved such a problem? I would be grateful for any suggestion!

    • @eveningkid
      @eveningkid  3 года назад +1

      Hey Hans, I'll give a try to your question (I hope I understood it right!).
      I think this question is very data-dependent: not sure how it looks like but if you are thinking of using FlatList, I assume you have a list of "posts" for your feed.
      If so, each post has a different type mentioned somewhere, correct? e.g. [{ type: 'article', metadata: ... }, { type: 'photos', ... }]
      Then you could have a component that "redirects" the data to the appropriate component that knows how to render a certain type of post.
      }
      />
      function Post({ type, data }) {
      if (type === 'article') {
      return ;
      }
      if (type === 'photos') {
      return
      }
      }
      Now I'm starting to think you must have done this when you mentioned "conditional rendering"... But if you did, what did you mean by "missing a way to make it work properly"?

    • @hanslercher3947
      @hanslercher3947 3 года назад +1

      @@eveningkid So first of all, thank you for your detailed response to this individual problem!
      I also thought that it could work that way, but was not sure if that was the right approach. So related to performance and so on.
      So I just wanted to ask a person who is a bit more experienced with React Native than me.
      But that has cleared up all my questions now, keep up the good work!

    • @eveningkid
      @eveningkid  3 года назад

      I think you’re right, layout computation wise, this isn’t ideal. If it’s different each time, there’s not many ways of optimizing it I feel!
      No problems really, it’s always a pleasure to see someone taking the time to leave a comment you know.
      I care a lot about people, so this means a lot to me. Hope to see you around, best of luck with your app!

  • @gerwld
    @gerwld Месяц назад

    Cool, but not working on Android unfortunately.
    Upd. I've made the npm package specifically based on that tutorial.
    Maybe someone will find it useful too. $ npm i react-native-drag-n-drop-everywhere
    It works everywhere (web, iOS, Android).