Chainable Data Sources (CDS) Open Source

A few months ago, we set out to rebuild the UI of our redesigned iOS app. We wanted to give our iOS users a simpler, efficient app, with the usages and polish they would expect from their favorite service and platform. Behind the scenes, we wanted to make our app even more robust and maintainable, and with solid foundations to build new, useful features.

One particular thing we wanted to improve was how lists were handled. Table views have always been a hallmark of the iPhone user experience, offering an intuitive way to interact with large data sets. Though, from the development point of view, some things can still be hard to do well. For instance:

– Displaying composite data coming from different sources.
– Displaying the same data in different places, with slight changes in look and behavior, while maintaining high code reuse.
– Keeping the polish of animated updates in anything but the most simple cases.

Chainable Data Sources

We’ve come up with a generic approach to deal with these issues that we’ve called Chainable Data Sources. It’s a lightweight framework that allows a developer to:

– Define data sources that can be reused everywhere in your app.
– Combine and transform them using functional building blocks, to build complex behaviors and datasets.
– Reuse the logic that handles the look and behavior of items, and tweak it only where necessary.
– Benefit from the animated update automatically.

It’s is based on protocols and simple functional blocks, so it can be adapted to take advantage of it. We’re making it available for you to use and extend, and we hope you’ll find it as useful as we did for building better apps, faster.

To learn more about Chainable Data Sources, visit our Github page at