Nimbus Models
Nimbus
• Последний релиз 1.2.1
- 21 февраля 2014
• 4.5к
• 58 issues
• 1.8мб при подключении
через Cocoapods
Возможности фреймворка
• NIAttributedLabel
• NIBadgeView
• CSS
• NIInterapp
• NINetworkImageView
• NIWebController
• ...
• NILawnMovier
Проблемы UITableView
• Часто является одной из причин "толстого" VC
• Неявное соответствие модели и UITableView
• "Толстые" delegate/datasource методы
Models
• Реализация data source протокола
• Возможности повторного использования
• Работает для UITableView
Ключевые объекты
• id<NICellObject> - VM в модели MVVM
• id<NICell> - V в модели MVVM
• NITableViewModel : NSObject <UITableViewDataSource>
Пример кода
Стандартные компоненты
• NITitleCellObject
• NISubtitleCellObject
• NIDrawRectBlockCellObject
• NIFormElement
• NIDatePickerFormElement
• NISliderFormElement
• ...
Собственные ячейки
• Существует NINibCellObject
• Связка: id<NICellObject> - id<NICell>
• <NICellObject> - предоставляет поля для
заполнения
• В метод NICell 

- (BOOL)shouldUpdateCellWithObject:(id)object
передается CellObject
Action'ы
• Механизм похож на предыдущий
• NITableViewActions - отдается в качестве
делегата
• Можно привязаться к тапу по ячейке, по
деталям
Высота ячейки
• Метод протокола <NICell> : 

+ (CGFloat)heightForObject:(id)object 

atIndexPath:(NSIndexPath *)indexPath

tableView:(UITableView *)tableView;
Выводы
Плюсы:&
• Относительная простота в освоении
• Решает проблему "сложных" таблиц
• Упрощает VC
Минусы:&
• Не работает при установке через cocoapods
• Некоторые компоненты Nimbus устарели и не работают
Вопросы?

Rambler.iOS #1: Nimbus Kit Models