Skip to content

When the shit hit the fan, it will be spread all over.

License

Notifications You must be signed in to change notification settings

trungfinity/ios-spread

Repository files navigation

Build StatusCocoaPods Version

Spread is a data flow control. It changes the way you manage your data.

Features

  • Create, mapping dictionary to model and model to dictionary, manage data model automatic.
  • Auto trigger event to all models in register pools.
  • React when model properties, pool change value.
  • Store and restore models in pools from local database.
  • Fetch/push data for model from internet.
  • Remote event manager with queue.

Installation

CocoaPods

pod "Spread", "~> 1.1.0"

Manual

  • Drag and drop Classes folder into your project.

Usage

#import "Spread.h"

Create a class sub class SModel

class Model: SModel {

  dynamic var objectId: String!
  dynamic var name: String!
}

Register class

  Spread.registerClass(Model.classForCoder(), forPoolIdentifier:"PoolIdentifier")

Register pool event

Spread.registerEvent("TheEvent",
  poolIdentifiers:["PoolIdentifier"]) { (value, spool) -> Void in
  let objectId = (value as NSDictionary).valueForKey("objectId") as String
  let newName = (value as NSDictionary).valueForKey("name") as String
  let models = spool.filter({ (model) -> Bool in
    return (model as Model).objectId == objectId
  })
  for item in models {
    let model = item as Model
      model.name = newName
    }
  }

Add sample data model and setup reaction for property

let model = Spread.addObject(["name": "Some name", "objectId": "123"],
  toPool: self.pool1Identifier)

model.property("name", onEvent: SModelEvent.OnChange) { (oldValue, newValue) -> Void in
  aTextField.text = newValue as String
}

Perform an event

  Spread.outEvent("TheEvent",
    value: ["name": "Change the name", "objectId": "123"])

Contact

If you use/enjoy Spread, let me know!

License

See the LICENSE file for more info.

About

When the shit hit the fan, it will be spread all over.

Resources

License

Stars

Watchers

Forks

Packages

No packages published