Skip to content

[Help wanted] Looking for maintainers #632

@bd-arc

Description

@bd-arc

Thank you very much for considering becoming a maintainer! The fact that you're willing to take some time to make this plugin even better is really appreciated 👍

I'm not going to lie to you though: there's work to be done. If you want to apply, please follow the following steps:

  1. Read this post entirely.
  2. Post a message in this thread that explains who you are, why you're considering it, what's your experience, etc. Nothing fancy, just a quick presentation that allows us to know you better.
  3. Make sure to tag me (@bd-arc) so that I actually receive your message.
  4. 🎉 Big bonus points for people who also send a polished PR that addresses one of the points below.

⚠️ Warning

People have lots of expectations about this plugin — it's currently downloaded more than 250,000 times every single month. So please do not apply if:

  • you don't have an amazing work ethic
  • you don't really have time to take care of it
  • you lack coding experience
  • you're not proficient in English.

🏆 Most required updates

Here are, ranged by order of importance, the most important updates the plugin currently requires.

1. Ditch ScrollView and FlatList, and implement a custom scroll logic based on react-native-gesture-handler and react-native-reanimated

This is, by far, the most important step to be taken at this point. It will open the road to a whole new level of features and user experience: total control over the scroll behavior, proper callback mechanism, better loop mode, better animations, better performance, proper RTL mode, no more "trailing slide whitespace", no visual differenciation between iOS and Android with the advanced animations, and, most importantly, no more FlatList issues to deal with 🙏

By itself, this update will solve approximately 90 % of the currently opened issues!

While it may seem like a daunted task, it happens that the folks at Software Mansion have created their own version of the carousel that does just that, and they are totally open to sharing their work (in fact, react-native-snap-carousel served as an inspiration for them). They've laid out a great base that just need to be improved and tailored to this plugin's needs.

Note that the idea is not to use their plugin because:

  1. it lacks a few important features;
  2. from their own admittance, it is still immature;
  3. the hundreds of developers actively engaged with our plugin will help improving it faster.

Next steps

  1. Take a look at this discussion — a few key points to keep in mind are mentioned there.
  2. Take a look at this repo — this will serve as a great starting point.
  3. Update the carousel's inner logic while making sure all the features are preserved. (Again, the react-native-pager plugin is not to be imported, only to be used as a reference.)
  4. Progressively improve it thanks to user feedback and other developer's help.

2. Take care of miscellaneous bugs introduced in 3.8.x

3. Handle dynamic data (addition/removal of items)

4. Prevent unneeded rerenders

5. Implement React hooks

6. Update examples

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions