callstack / callstack/react-native-pager-view
☂️ Pager View Improvements
- 主要语言
- TypeScript
- 星标
- 3.4k
- 派生
- 476
- 平均合并
- 10 天 21 小时
- 30 天内合并 PR
- 2
描述
### Intro
It is been a while since I am maintaining the `react-native-pager-view`. Previously it was part of the RN core, but then it has been extracted into a separate package. It has used 2 versions of ViewPager (v1, v2) and UIPageView. I tried to fix all issues, but some of them required some workarounds that were not stable enough. Those workarounds created other issues, hence other workarounds were used to fix that. To be honest, I was a little bit exhausted from it, hence together with @krozniata and @okwasniewski decided to build those components from the scratch
### Next branch
@alpha0010 did a great job by implementing the `LazyViewPager` component. We released his changes into the `next` branch and we had the plan to merge it into the main branch. But we did some internal tests on real applications and in some cases, it did not work well. Internally we used another workaround to achieve the lazy effect. Moreover, we did not want to add additional complexity, when it did not bring more benefits and would add additional bugs to fix. With new architecture implementing a lazy approach should be much easier. Unfortunately, we won’t merge the next branch into the main. We will implement a lazy approach using a new architecture. If you would like to maintain `LazyViewPager`, feel free to make a fork
### New architecture support
Meta has released a new architecture called fabric. In this library, we would like to focus first on the new architecture. After that, we will evaluate, if it would be worth migrating a new solution to the old arch (Right now it is hard to estimate it based on a priori knowledge)
### Motivation
We would like to have more control over native components to easily fix issues or add new features. Right now, those components are black boxes, which are hard to maintain. Moreover, `UIPageViewController` is not maintained anymore and is not used in the iOS world. Unfortunately, we cannot use `UICollectionView`, because it does not work well in the RN world.
The same thing refers `RecyclerView` component for Android. The currently used `ViewPager2` component on Android brought more issues than benefits since it uses the earlier-mentioned `RecyclerView`.
贡献指南
调研方向
未指定任何文件、测试或具体入口点。首先根据 Fabric 要求审查现有的 Android ViewPager2/RecyclerView 和 iOS UIPageViewController 集成;除了替换当前的原生组件并增强对它们的控制之外,未定义完成标准。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, ios, react-native, typescript
- 领域
- mobile-dev
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 20/100