meliorence / react-native-snap-carousel

Swiper/carousel component for React Native featuring previews, multiple layouts, parallax images, performant handling of huge numbers of items, and more. Compatible with Android & iOS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Help wanted] Looking for maintainers

bd-arc opened this issue · comments

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

  • See #329, #478...
  • Will most probably be fixed once #1 is implemented.

5. Implement React hooks

6. Update examples

@bd-arc
Hello there:wave:, I saw this issue and I'd love to stand up and maintain this repository.

Who I am

I'm a full-stack developer currently living in Japan.
I'm an American and lived there for more than half of my life so English will not be a problem.

Reason for consideration

  • My goal is to be part of the react-native-community org, and being a maintainer for a popular react-native library will be a big step up for me.

  • I'm also using this library for few of my projects at work, so having a maintainer would be quite nice.

  • my love and passion for React-native ;)

Experience

3 years of experience in React
2 years of development in React Native
Made few contributions to react-native related package including but not limited to: react-native itself, react-native-elements, @types/react-native, react-navigation etc.


I'm going to attempt the implementation with react-native-gesture-handler and react-native-reanimated in the course of next few days to see if I am capable of
maintaining this package.

I've made a PR #636 to upgrade the example so that this package can be tested from the example.

Hi @Naturalclar,

Thanks a lot for offering your help! Really appreciate your expertise and motivation :-) Your PR was spot on and already got merged. It speaks volume about your commitment!

I really look forward to seeing what you're going to do with the new logic! Do not hesitate to ping me if you have any question or need any help.

Hello @bd-arc,

Who I am

I'm a react native developer based in Cairo, EG

Why I'm considering it?

Because I use this plugin in most of my projects and all of their dashboards are depends on react-native-snap-carousel cause our company industry is e-commerce applications, so I wanted to help even with small tasks like Implement React hooks
also I have time thanks to quarantine effect

What's my experience

I don't have experience in open source projects but I didn't have any opportunity to contribute to any project
but I'm working as a mid-level react-native developer for a year and a half and always updated with open source community
also, I didn't write any class component for 4 months ago so I have good experience with hooks in general

My Contribution

I will attempt to implement the component using react hooks

Hi @Stringsaeed,

Every contribution is welcome, so thank you for offering your help!

Eager to review your first PR ;-)

Just made the shiny new beta public. To everyone who has a keen interest in the plugin: I'd love your feedback ;-)

Click here to learn everything about the upcoming v4!

@bd-arc how do i get beta? i need that asap. as currently, i'm using version- 3.9.1. that rely on react-native's Scrollview. that causing me problem for android devices. as, i'm using edgeWidth of @react-navigation/drawer": "^5.8.2"

so its causing the freeze of sliding, after first slide. using scrollview from react-native-gesture-handler, will solve the issue.

Hello @bd-arc, Interested if I rewrite to TS? 😄

I'm a react-native core contributor, I maintain react-native-webview which was the first lean core components, alsoI rewrote it to typescript

Not looking to be a long time maintainer but rather to tackle issues here and there 🚀

That would be awesome @Titozzz! Thanks a lot for your offer 🙏

It's been on my to-do list for months but I still haven't taken the time to do so.

Just a quick thought: I don't plan on supporting the current v3 anymore, so the TypeScript update would be a perfect addition to the current v4 WIP.

Any question at this point?

@bd-arc Are you OK with me using https://github.com/react-native-community/bob to deal with all the project build stuff ?

@Titozzz I don't know this particular CLI solution, but as long as it helps users get into the plugin I'm all for it.

Just to be sure: this will only be used with the example, right?

@bd-arc It's a CLI to manage the builds / releases to NPM more easily, it also come with opinionated defaults for lint, etc

@Titozzz Ok. I don't know how it compares to other solutions, but I'm trusting you: let's give it a try!

#734 WIP -> I made this live for my first OSS stream.

Hi @bd-arc,
Hello there, I'd like maintain this repository.

Who am I

  • I am a full-stack developer.
  • My skills are Ruby on Rails, React, React-native.
  • Currently, I am from India.
  • I contributed a few open source projects. Also react-native projects. I mainly worked on fixing bugs in open source projects

Reason for consideration

  • From last year I started working on the react-native. I would love to explore more in react-native and contribute to the community.
  • I contributed to /zo0r/react-native-push-notification, react-native-community. I started my open source contribution from last year.

Experience

  • 3 year experience in Ruby on Rails
  • 2 year experience in react
  • 2 Year experience in react-native
  • 1 year experience in vue.js

Hi @narender2031,

Thanks a lot for offering your help!

Are you familiar with Typescript? If yes would you be interested in testing and reviewing #734? I'm trying to get as many pair of eyes as possible on this PR because it's a huge one :-)

Thanks, @bd-arc,

Yes. I have basics knowledge of typescript. I will take a look at this.

It's been 2 years and nothing yet?

Sorry, please allow me to advertise for my open source library! ~
I think this library react-native-reanimated-carousel will solve your problem. It is a high performance and very simple component, complete with React-Native reanimated 2

Hello!
I haven't seen a post in close to a year but I would love to join!
I have been a professional developer for 2 years and I love everything Typescript and React
I am based in Australia so you know I can deal with the heat

@bd-arc have you found some maintainers? It may be good to add some devs that already pushed code into the library. Or anything that could help to keep this project alive.

Thanks!