Jon Chmura

CocoaPods trunk is moving to be read-only. Read more on the blog, there are 17 months to go.
4pods
It is a drop in replacement for UIActivityIndicatorView and UIProgressView that tracks touch input like a UIButton. It may be useful in the following scenarios * Replacement for UIActivityIndicatorView * Replacement for UIProgressView * Replacement for UIButton with Google Material Design styling * To create a similar interaction as start and stopping downloads in the App Store app.
License: MIT
Table and Collection views populated with content fetched from a web API is essential a large number of apps. Yet I've seen many poor implementations of this design. I think Apple's API for table and collection views tends to lead developers into creating view controllers with a couple thousand lines of code, most of which isn't really "view controller" responsibilities (I know I've done it). This violates the SOLID design principle of single responsibility and makes the code not very reusable. I think it may be best that the data source is never part of the view controller. Leaving the view controller free to handle more appropriate tasks. Here are some of the higlights: * DataSourceController class handles the logic to drive table and collection view data sources * Data source is divided into Fetch Requests, backing Models, and Cell Factories * A state machine in DataSourceController neatly drives Fetching, Preparing Content, and Reloading data * Set a list of Models to combine multiple data sources * BackgroundView class displays an activity view while loading data and can display helpful error messages when loading fails * Animators make it easy to animate changes in content * Supports embedded collection views (Like in App Store) * Very minimal code required to get up and running * Pull to refresh (Coming soon) * Infinite scrolling (Coming soon)
License: MIT
Managing views with iOS auto layout can be tedious. This is a collection of extensions to make simple layouts easier.
License: MIT
License: MIT