rambler.ios #1: nimbus kit models

13
Nimbus Models

Upload: rambler-ios

Post on 19-Jul-2015

210 views

Category:

Technology


4 download

TRANSCRIPT

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 устарели и не работают

Вопросы?