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.
BSD 3-Clause "New" or "Revised" License
10.25k stars 2.26k forks source link

[Help wanted] Looking for maintainers #632

Open bd-arc opened 4 years ago

bd-arc commented 4 years ago

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:


πŸ† 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

Naturalclar commented 4 years ago

@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

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.

bd-arc commented 4 years ago

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.

Stringsaeed commented 4 years ago

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

bd-arc commented 4 years ago

Hi @Stringsaeed,

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

Eager to review your first PR ;-)

bd-arc commented 4 years ago

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!

Abhijeetjaiswalit commented 4 years ago

@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.

Titozzz commented 3 years ago

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 πŸš€

bd-arc commented 3 years ago

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?

Titozzz commented 3 years ago

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

bd-arc commented 3 years ago

@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?

Titozzz commented 3 years ago

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

bd-arc commented 3 years ago

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

Titozzz commented 3 years ago

https://github.com/archriss/react-native-snap-carousel/pull/734 WIP -> I made this live for my first OSS stream.

narender2031 commented 3 years ago

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

Who am I

Reason for consideration

Experience

bd-arc commented 3 years ago

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 :-)

narender2031 commented 3 years ago

Thanks, @bd-arc,

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

nagaraju440 commented 2 years ago

me

Stevemoretz commented 2 years ago

It's been 2 years and nothing yet?

dohooo commented 2 years ago

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

Jesse-Lucas1996 commented 2 years ago

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

BrodaNoel commented 1 year ago

@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!

BrodaNoel commented 1 year ago

Seems like we are all migrating to https://www.npmjs.com/package/react-native-reanimated-carousel

lhguerra commented 2 weeks ago

There should be a big warning in the readme stating that this lib is unmaintained! The issues are overflowing with people trying to use it only to find out it does not work anymore!