SlideShare a Scribd company logo
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 устарели и не работают
Вопросы?

More Related Content

PDF
Rambler.iOS #5: TDD и VIPER
PDF
Rambler.iOS #5: VIPER a la Rambler
PDF
Сергей Крапивенский
PPTX
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
PPTX
Андрей Чебукин "Построение успешных API"
PDF
QA Fest 2016. Антон Серпутько. Автоматизация запуска тестов с помощью Jenkins...
PPTX
Test driven development in net
PPTX
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Rambler.iOS #5: TDD и VIPER
Rambler.iOS #5: VIPER a la Rambler
Сергей Крапивенский
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Андрей Чебукин "Построение успешных API"
QA Fest 2016. Антон Серпутько. Автоматизация запуска тестов с помощью Jenkins...
Test driven development in net
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ

What's hot (20)

PDF
Станислав Цыганов "SOA в iOS разработке"
PPTX
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
PDF
Take a Look at Akka-Java
PDF
141 - Spring. Добавление контроллеров Spring MVC
PDF
66 - Spring. Spring и JSF
PPTX
«Компонентная верстка с AngularJS», Андрей Яманов (CTO TeamHunt)
PDF
Максим Пугачев
PPTX
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
PPTX
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
PDF
130 - Spring WebFlow. Создание проекта
PDF
131 - Spring. Переход между страницами
PPTX
Delivering Native User Experience In Client Side Java Applications
PPTX
Александр Афенов
PDF
A.pleshkov
PDF
Winium — это как Selenium, только под Windows
PPTX
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
PPTX
Test Driven Development in ASP.NET MVC 3
PPTX
Protrarctor and Angular
PDF
AntonSaburov (Gemini-Systems) @ CodeCamp2011
PDF
Rambler.iOS #8: Сервис-ориентированная архитектура
Станислав Цыганов "SOA в iOS разработке"
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
Take a Look at Akka-Java
141 - Spring. Добавление контроллеров Spring MVC
66 - Spring. Spring и JSF
«Компонентная верстка с AngularJS», Андрей Яманов (CTO TeamHunt)
Максим Пугачев
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
130 - Spring WebFlow. Создание проекта
131 - Spring. Переход между страницами
Delivering Native User Experience In Client Side Java Applications
Александр Афенов
A.pleshkov
Winium — это как Selenium, только под Windows
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Test Driven Development in ASP.NET MVC 3
Protrarctor and Angular
AntonSaburov (Gemini-Systems) @ CodeCamp2011
Rambler.iOS #8: Сервис-ориентированная архитектура
Ad

More from RAMBLER&Co (20)

PDF
RDSDataSource: Основы LLVM
PDF
Rambler.iOS #9: Анализируй это!
PDF
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
PDF
Rambler.iOS #9: Life with out of memory
PDF
RDSDataSource: Чистые тесты на Swift
PDF
RDSDataSource: OCLint
PDF
RDSDataSource: Построение UML диаграмм
PDF
RDSDataSource: App Thinning
PDF
RDSDataSource: Мастер-класс по Dip
PDF
RDSDataSource: YapDatabase
PDF
Rambler.iOS #8: Чистые unit-тесты
PDF
Rambler.iOS #8: Make your app extensible with JavaScriptCore
PDF
Rambler.iOS #8: Как не стать жертвой бэкендеров
PDF
RDSDataSource: iOS Reverse Engineering for inexperienced
PDF
RDSDataSource: Автогенерация документации для SDK
PDF
RDSDataSource: Плюрализация в iOS
PDF
RDSDataSource: Promises
PDF
RDSDataSource: Flux, Redux, ReSwift
PDF
Rambler.iOS #7: Построение сложного табличного интерфейса
PDF
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
RDSDataSource: Основы LLVM
Rambler.iOS #9: Анализируй это!
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Life with out of memory
RDSDataSource: Чистые тесты на Swift
RDSDataSource: OCLint
RDSDataSource: Построение UML диаграмм
RDSDataSource: App Thinning
RDSDataSource: Мастер-класс по Dip
RDSDataSource: YapDatabase
Rambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Make your app extensible with JavaScriptCore
Rambler.iOS #8: Как не стать жертвой бэкендеров
RDSDataSource: iOS Reverse Engineering for inexperienced
RDSDataSource: Автогенерация документации для SDK
RDSDataSource: Плюрализация в iOS
RDSDataSource: Promises
RDSDataSource: Flux, Redux, ReSwift
Rambler.iOS #7: Построение сложного табличного интерфейса
Rambler.iOS #7: Прием платежей по банковским картам в iOS приложении
Ad

Rambler.iOS #1: Nimbus Kit Models