IGListKit/Tests
Maxime Ollivier 032e1b0b83 goodbye allowsBackgroundReloading
Summary:
Originally, `allowsBackgroundReloading` was added to improve performance, but ironically, it's causing lots of performance issues among other issues.
* Performance: Looking back, it's not too surprising that it causes perf issues. We're falling back to a full `-reloadData` if the view is not in the window, which can happen pretty often. For example, if a view-controller is within a `UINavigationController` stack but not on top, or within a `UITabBarController`. Because a full `-reloadData` will re-query the cells and re-create the entire layout, it's going to be more expensive than an incremental update via `-performUpdatesAnimated`. The proof is in the data and we have a few examples where this flag was the cause of significant UI stalls.
* Bugs: Because we might reload cells often, it can create strange animation artifacts. Specifically, it was breaking the `UIView` snapshots just before a transition, like the new zoom animator.

Overall, we ended disabling this feature and I think most apps will be in the same boat.

But what if this flag does improve my app's performance?
* File an issue and lets chat! I'd be curious to understand why that's the case. If a full `-reloadData` is more performant than an incremental `-performUpdatesAnimated`, than something odd is happening and I don't think this flag is the right solution.

Reviewed By: joetam

Differential Revision: D25884777

fbshipit-source-id: c4626a52082ef4c7b7300b21077529f26c551e70
2021-01-21 19:58:48 -08:00
..
Assets Support supplementaryViews created from nibs (continued) 2016-11-05 16:29:06 -07:00
Objects unit test missing section-controller fix 2020-09-08 09:11:12 -07:00
IGListAdapterE2ETests.m ship the new updater 2021-01-21 19:58:47 -08:00
IGListAdapterProxyTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListAdapterStoryboardTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListAdapterTests.m merge IGListUpdatingDelegateExperimental into IGListUpdatingDelegate 2021-01-21 19:58:47 -08:00
IGListAdapterUpdaterTests.m goodbye allowsBackgroundReloading 2021-01-21 19:58:48 -08:00
IGListBatchUpdateDataTests.m remove IGListExperimentFixIndexPathImbalance 2020-06-02 13:04:26 -07:00
IGListBindingSectionControllerTests.m goodbye allowsBackgroundReloading 2021-01-21 19:58:48 -08:00
IGListBindingSingleSectionControllerTests.m Add a IGListBindingSingleSectionController 2019-12-16 17:50:50 -08:00
IGListCollectionScrollingTraitsTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListCollectionViewLayoutTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListCollectionViewTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListContentInsetTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListDebuggerTests.m ship the new updater 2021-01-21 19:58:47 -08:00
IGListDiffResultTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListDiffSwiftTests.swift Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListDiffTests.h Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListDiffTests.m remove unused experiment param 2020-09-08 09:11:11 -07:00
IGListDisplayHandlerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListGenericSectionControllerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListKitTests-Bridging-Header.h Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListSectionMapTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListSingleNibItemControllerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListSingleSectionControllerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListSingleStoryboardItemControllerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListTestCase.h Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListTestCase.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListTestHelpers.h Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGListWorkingRangeHandlerTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
IGReloadDataUpdaterTests.m Run lint on IGListKit 2019-12-19 09:34:42 -08:00
Info.plist Initial commit 2016-10-11 10:12:17 -04:00