After having used three20 for a few years I thought to apply some life cycle management to my app and invest some time in discovering Nimbus. As expected it is a well thought out framework that really induces quality and timesaving. In addition it looks more resilient than three20.
However I have some concerns though related to the MVC design pattern:
- the model contains the data and is unaware of the other two and raises events to notify the controller of changes in data.
- the view represents the data on screen and is unaware of the controller, it requests data to display from the model.
- the controller performs actions on the model and the view based on events from the user or the model
- In NIMutableViewController I noticed that it deletes rows in the table view directly. Wouldn't it be better to have a delegate that defines: didInsertObjectsAtIndexPaths:(NSArray*)indexPaths and equivalents for remove & update, and also equivalents for sections?
- Where I would consider NICellObject to be more closely related to a model than to a view, it contains cellClass and cellStyle if it conforms to the NICellDelegate. Why would you do that if we want to represent the view in the cell class?