Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
100644 33 lines (23 sloc) 2.334 kb
b296df5 @jspahrsummers Adding a real README
jspahrsummers authored
1 Proton is a utility framework for Cocoa and Cocoa Touch that provides tools useful for building a powerful model layer.
3 # Features
5 - A simple and extensible system for bindings, suitable for use on iOS and for replacing Cocoa Bindings on OS X
6 - Components to make Core Data easier to use, including:
7 - `PROCoreDataManager`, to manage all the resources associated with a single database
8 - Support for copying managed objects between contexts
9 - Support for encoding and decoding managed objects to and from property lists
10 - Convenience methods on `NSManagedObject` and `NSManagedObjectContext` so callers have to write less code
11 - A class for key-value observing that makes it easier to manage the observation of many different objects or key paths
12 - A couple macros to check key paths at compile time (i.e., fail to build when an invalid key path is used)
babe25e @jspahrsummers Note the higher-order function and NSUndoManager extensions in the READM...
jspahrsummers authored
13 - Higher-order functions (map, filter, fold) for _all_ built-in collection classes
14 - Extensions to `NSUndoManager` to support blocks and make it simpler to manage undo groupings
15 - `PROFuture`, an extremely fast and simple implementation of block-based futures
b296df5 @jspahrsummers Adding a real README
jspahrsummers authored
17 All of the above features are unit tested, to validate the typical use cases and detect any future breakage.
19 Proton has been built with the [Model-View-ViewModel]( architectural pattern in mind. The `PROViewModel` abstract class can serve as a base for any application-specific view model layer.
21 # Dependencies
23 All dependencies can be retrieved by running `git submodule update --init --recursive` from the top level of the repository.
25 - Xcode projects in the repository are configured using prebuilt [xcconfigs](
26 - The unit tests for Proton are written using [Specta]( and [Expecta](
27 - Logging is implemented using the [CocoaLumberjack]( logging framework
28 - Parts of [libextobjc]( and [SafeDispatch]( are used in Proton (but are already present in the repository)
30 # License
6457a96 @jspahrsummers Remove the BSD license clause that requires binary attribution
jspahrsummers authored
32 Proton is released under a modified version of the 3-clause BSD license. See the LICENSE file for more information.
Something went wrong with that request. Please try again.