rambler.ios #1: nimbus kit models
TRANSCRIPT
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 устарели и не работают