• Stars
    star
    124
  • Rank 278,209 (Top 6 %)
  • Language
    Swift
  • License
    Other
  • Created about 6 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⛽ Differific - a fast and convenient diffing framework.

Differific

CI Status Version Carthage Compatible codecov License Platform Swift

Description

Differific Icon

Differific is a diffing tool that helps you compare Hashable objects using the Paul Heckel's diffing algorithm. Creating a changeset is seamless for all your diffing needs. The library also includes some convenience extensions to make life easier when updating data sources.

The library is based and highly influenced by Matias Cudich's (@mcudich) HeckelDiff library that aims to solve the same issue. Versions prior to 0.3.0 was based on DeepDiff. For more information about how the algorithm works and the performance of the algorithm, head over to DeepDiff. For the time being, both frameworks are very similar; this is subject to change when the frameworks evolve.

Features

  • 🍩Built-in extensions for updating table & collection views.
  • 🎩Customizable diffing.
  • 🏎High performance.
  • 📱iOS support.
  • 💻macOS support.
  • 📺tvOS support.

Usage

Diffing two collections

let old = ["Foo", "Bar"]
let new = ["Foo", "Bar", "Baz"]
let manager = DiffManager()
let changes = manager.diff(old, new)

Updating a table or collection view

// uiElement is either your table view or collection view.
let old = dataSource.models
let new = newCollection
let changes = DiffManager().diff(old, new)
uiElement.reload(with: changes, before: { dataSource.models = new })

Installation

Differific is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Differific'

Differific is also available through Carthage. To install just write into your Cartfile:

github "zenangst/Differific"

Differific can also be installed manually. Just download and drop Sources folders in your project.

Author

Contributing

We would love you to contribute to Differific, check the CONTRIBUTING file for more info.

License

Differific is available under the MIT license. See the LICENSE file for more info.

More Repositories

1

Hue

🎨 Hue is the all-in-one coloring utility that you'll ever need.
Swift
3,463
star
2

Spots

🎍 Spots is a cross-platform view controller framework for building component-based UIs
Swift
1,313
star
3

Gray

🌓 Tailor your macOS Mojave experience
Swift
1,276
star
4

Blueprints

🌀 Blueprints - A framework that is meant to make your life easier when working with collection view flow layouts.
Swift
991
star
5

KeyboardCowboy

⌨️ The missing keyboard shortcut utility for macOS
Swift
535
star
6

Syncalicious

🍫 Syncalicious
Swift
356
star
7

Vaccine

💉 Vaccine - Make your apps immune to recompile-disease
Swift
303
star
8

Family

🚸 A child view controller framework that makes setting up your parent controllers as easy as pie.
Swift
250
star
9

Tailor

👔A super fast & convenient object mapper tailored for your needs
Swift
243
star
10

Versions

❇️Helping you find inner peace when comparing version numbers in Swift.
Swift
207
star
11

MarvinXcode

🔨A collection of nifty commands for your everyday workflow in Xcode
Swift
125
star
12

Coda-2-Modes

Modes for Coda 2
AppleScript
61
star
13

UserInterface

🚥 UserInterface - a collection of convenience extensions specifically tailored to building user interfaces in Swift.
Swift
51
star
14

ToTheTop

🔝To the top - A small macOS application to help you scroll to the top.
Swift
36
star
15

Zcode

Work around Apples restriction with running Xcode 6.4 on El Capitan Developer Preview 2
Swift
25
star
16

NSString-ZENInflections

Returns camelCased, UpperCamelCased, dashed-case, snake_cased representations of an NSString
Objective-C
25
star
17

Inflection

The Optimus Prime of string inflection
Swift
22
star
18

MouseDef

🐭Move and resize windows by holding down modifier keys
Swift
21
star
19

ChangeMarks

Change Marks helps you to keep track of your most recent changes by giving them a different background color.
Objective-C
14
star
20

OSX-Configuration

My personal OS X configurations
Shell
10
star
21

ZenCode

🔨ZenCode for Xcode - A collection of nifty commands for your everyday workflow in Xcode.
Swift
9
star
22

Voodoo

💀 Voodoo is a set of Sourcery templates to make you do more with less.
Swift
7
star
23

Apps

Swift
7
star
24

Houston

Swift
6
star
25

WindowFlex

Helps you flex your Xcode window muscles
Objective-C
6
star
26

Storage

Swift
5
star
27

AXEssibility

Swift
5
star
28

Mapper

An object mapper for Swift
Swift
4
star
29

Marvin-Xcode-Extension

🔨A collection of nifty commands for your everyday workflow in Xcode 8
Swift
4
star
30

Xcode-Templates

🔨 Xcode templates
Swift
4
star
31

DirectoryObserver

Observing the file-system, easy as 1 2 3!
Swift
3
star
32

Goldfish

Something something secret ... goldfish.
Swift
3
star
33

TextMate-1-Bundle

Commands and Snippets I use everyday at work
3
star
34

coda-command-line

Coda 2 command line tool
Objective-C
3
star
35

XcodeConfiguration

3
star
36

C.mode

C mode for Coda 2
AppleScript
3
star
37

GoldenRetriever

Swift
2
star
38

dotfiles

My dotfiles
Vim Script
2
star
39

xcode-fish

Find and open xcworkspace or xcproject in Xcode.
Shell
2
star
40

LaunchArguments

Swift
2
star
41

xcode-espresso-tribute-theme

A light theme inspired by the Espresso - The Web Editor
2
star
42

xcode-ios-project

Ruby
2
star
43

MachPort

Swift
2
star
44

ZENFramework

Just another PHP MVC framework
PHP
2
star
45

HideDockAndStageManager

Swift
2
star
46

Windows

Swift
2
star
47

NSString-ZENVersions

Helping you find inner peace when comparing version numbers.
Objective-C
2
star
48

ApacheConf.mode

Apache configuration mode for Coda 2
1
star
49

VVDocumenter-Xcode

Xcode plug-in which helps you write documentation comment easier, for both Objective-C and Swift.
Objective-C
1
star
50

theme-oh-my-sushi

oh-my-sushi
Shell
1
star
51

SidebarFlex

Objective-C
1
star
52

Retina

Swift
1
star
53

KeyCodes

Swift
1
star
54

StageManagerAppWindowGroupingBehavior

Swift
1
star
55

Swift.mode

1
star
56

DockManager

Swift
1
star
57

xc

Swift
1
star
58

haml.mode

HAML mode for Coda 2
1
star
59

ERB.mode

Ruby ERB mode for Coda 2
AppleScript
1
star
60

Ruby.mode

Ruby mode for Coda 2
AppleScript
1
star
61

emolator

TBD
1
star
62

DefaultKeyBinding

Custom keyboard shortcuts for OS X
1
star