From 5d675d34a319ee32d286854a3327c9e10a86128b Mon Sep 17 00:00:00 2001 From: Ryo Aoyama Date: Sat, 11 Aug 2018 01:20:25 +0900 Subject: [PATCH] Add FlexibleDiff to the README --- README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 82cc0e8..9044f01 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Implementation is [here](https://github.com/ra1028/DifferenceKit/blob/master/Sou --- ## Documentation +⚠️ Since DifferenceKit is currently released in alpha version, updates may contain breaking changes. See docs in [GitHub Pages](https://ra1028.github.io/DifferenceKit/). Documentation is generated by [jazzy](https://github.com/realm/jazzy). @@ -146,10 +147,12 @@ collectionView.reload(using: changeset, interrupt: { $0.changeCount > 100 }) { d ## Comparison with Other Frameworks Made a fair comparison as much as possible in features and performance with other **popular** and **awesome** frameworks. +⚠️ This does `NOT` determine superiority or inferiority of the frameworks. I know that each framework has different benefits. The frameworks and its version that compared is below. -- [DifferenceKit](https://github.com/ra1028/DifferenceKit) - 0.2.0 +- [DifferenceKit](https://github.com/ra1028/DifferenceKit) - 0.3.0 - [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources) ([Differentiator](https://github.com/RxSwiftCommunity/RxDataSources/tree/master/Sources/Differentiator)) - 3.0.2 +- [FlexibleDiff](https://github.com/RACCommunity/FlexibleDiff) - 0.0.5 - [IGListKit](https://github.com/Instagram/IGListKit) - 3.4.0 - [ListDiff](https://github.com/lxcid/ListDiff) - 0.1.0 - [DeepDiff](https://github.com/onmyway133/DeepDiff) - 1.2.0 @@ -162,6 +165,7 @@ The frameworks and its version that compared is below. |:------------|:----:|:-------:|:-----------------------:| |DifferenceKit|✅ |✅ |✅ | |RxDataSources|❌ |✅ |❌ | +|FlexibleDiff |✅ |✅ |✅ | |IGListKit |✅ |❌ |✅ | |ListDiff |✅ |❌ |✅ | |DeepDiff |✅ |❌ |✅ | @@ -172,21 +176,23 @@ The frameworks and its version that compared is below. `Sectioned` means 2-dimensional collection. #### - Supported element differences -| |Delete|Insert|Move|Reload | -|:------------|:----:|:----:|:--:|:------:| -|DifferenceKit|✅ |✅ |✅ |✅ | -|RxDataSources|✅ |✅ |✅ |✅ | -|IGListKit |✅ |✅ |✅ |✅ | -|ListDiff |✅ |✅ |✅ |✅ | -|DeepDiff |✅ |✅ |✅ |✅ / ❌ | -|Differ |✅ |✅ |✅ |❌ | -|Dwifft |✅ |✅ |❌ |❌ | +| |Delete|Insert|Move|Reload |Move across sections| +|:------------|:----:|:----:|:--:|:------:|:------------------:| +|DifferenceKit|✅ |✅ |✅ |✅ |✅ | +|RxDataSources|✅ |✅ |✅ |✅ |✅ | +|FlexibleDiff |✅ |✅ |✅ |✅ |❌ | +|IGListKit |✅ |✅ |✅ |✅ |❌ | +|ListDiff |✅ |✅ |✅ |✅ |❌ | +|DeepDiff |✅ |✅ |✅ |✅ / ❌ |❌ | +|Differ |✅ |✅ |✅ |❌ |❌ | +|Dwifft |✅ |✅ |❌ |❌ |❌ | #### - Supported section differences | |Delete|Insert|Move|Reload| |:------------|:----:|:----:|:--:|:----:| |DifferenceKit|✅ |✅ |✅ |✅ | |RxDataSources|✅ |✅ |✅ |❌ | +|FlexibleDiff |✅ |✅ |✅ |✅ | |IGListKit |❌ |❌ |❌ |❌ | |ListDiff |❌ |❌ |❌ |❌ | |DeepDiff |❌ |❌ |❌ |❌ | @@ -197,6 +203,7 @@ The frameworks and its version that compared is below. Performance was measured using `XCTestCase.measure` on iPhoneX simulator with `-O -whole-module-optimization`. Use `Foundation.UUID` as an element. +⚠️ If Move is included in the difference, performance may obviously decrease in some frameworks. ⚠️ *DeepDiff may had increased the processing speed by misuse of Hashable in algorithm.* #### - From 5,000 elements to 500 deleted and 500 inserted @@ -204,6 +211,7 @@ Use `Foundation.UUID` as an element. |:------------|:-----------| |DifferenceKit|0.00425 | |RxDataSources|0.00784 | +|FlexibleDiff |0.0168 | |IGListKit |0.0412 | |ListDiff |0.0388 | |DeepDiff |0.015 | @@ -215,6 +223,7 @@ Use `Foundation.UUID` as an element. |:------------|:-----------| |DifferenceKit|0.0079 | |RxDataSources|0.0143 | +|FlexibleDiff |0.0305 | |IGListKit |0.0891 | |ListDiff |0.0802 | |DeepDiff |0.030 | @@ -226,6 +235,7 @@ Use `Foundation.UUID` as an element. |:------------|:-----------| |DifferenceKit|0.098 | |RxDataSources|0.179 | +|FlexibleDiff |0.356 | |IGListKit |1.329 | |ListDiff |1.026 | |DeepDiff |0.334 |