SlideShare a Scribd company logo
Нестандартная верстка для
стандартных компонентов в iOS
Зимин Александр
iOS Developer
UI Engineer
CocoaHeads
Russia
macOS Developer
Co-Founder
Организатор
Маркетинг, Дизайн, Аналитика, …
План
• Верстка в iOS
• Table View/Collection View
• 4 примера-истории
• Советы и оптимизация
Верстка в iOS
• Распространение элементов на экране
• Отступы, размеры, выравнивания, …
• Динамические коллекции
Airbnb
Airbnb
UICollectionView
Custom Pagining
UICollectionView
Custom Pagining
UITableView UICollectionView
Table View/Collection View
Scroll View
• Контент может быть больше
экрана
• Позволяет прокручивать по
оси x и y
Cell
Cell
Cell
Table View
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell Data
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell Data
“Although UITableView allows vertical scrolling only”
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell Data
“Although UITableView allows vertical scrolling only”
Cell Height
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell Data
“Although UITableView allows vertical scrolling only”
Cell Height
Dynamic Height
Cell
Cell
Cell
Table View
Data Source
Delegate
Cell Data
“Although UITableView allows vertical scrolling only”
Cell Height
Dynamic Height
8
Cell Cell
Cell
Cell Cell
Collection View
Data Source
Delegate
Cell Cell
Cell
Cell Cell
Collection View
Data Source
Delegate
Cell Data
Cell Cell
Cell
Cell Cell
Collection View
Data Source
Delegate
Cell Data
Cell Cell
Cell
Cell Cell
Collection ViewCollection View Layout
Data Source
Delegate
Cell Data
Cell Cell
Cell
Cell Cell
Collection ViewCollection View Layout
Layout
Attributes
Пример
• override func systemLayoutSizeFitting(:, :, :) -> CGSize
• Нет ничего плохого в комбинировании Auto Layout и
ручного подсчета
• Типы динамического контента:
• Картинки (UIImageView)
• Текст (UILabel, UITextView)
• Нестандартные элементы (Custom UIView/UIControl)
• UILabel
• func sizeThatFits(_ size: CGSize) -> CGSize
• String/NSAttributedString
• func boundingRect(with size: CGSize, options:
NSStringDrawingOptions = [], attributes: [String : Any]? = nil,
context: NSStringDrawingContext?) -> CGRect
goo.gl/pBdZlI
• UILabel
• func sizeThatFits(_ size: CGSize) -> CGSize
• String/NSAttributedString
• func boundingRect(with size: CGSize, options:
NSStringDrawingOptions = [], attributes: [String : Any]? = nil,
context: NSStringDrawingContext?) -> CGRect
goo.gl/pBdZlI
• UILabel
• func sizeThatFits(_ size: CGSize) -> CGSize
• String/NSAttributedString
• func boundingRect(with size: CGSize, options:
NSStringDrawingOptions = [], attributes: [String : Any]? = nil,
context: NSStringDrawingContext?) -> CGRect
• func boundingRect(with size: CGSize, options:
NSStringDrawingOptions = [], context:
NSStringDrawingContext?) -> CGRect
goo.gl/pBdZlI
• UIImageView
• UIImage
• CGSize
• Заранее заданный размер
• Динамическая верстка у таблиц и коллекций
существует уже давно (iOS 8+)
• В ней нет ничего плохого, и она вам упростит жизнь
• Вы всегда можете комбинировать auto layout и
ручной подсчет
• Посчитать размер String/NSAttributedString легко
Итоги демо
Пример
Collection View Layout
Collection View Layout
prepare()
Collection View Layout
prepare()
var collectionViewContentSize: CGSize
Collection View Layout
prepare()
var collectionViewContentSize: CGSize
func layoutAttributesForElements(in rect:
CGRect) -> [UICollectionViewLayoutAttributes]?
Collection View Layout
prepare()
var collectionViewContentSize: CGSize
func layoutAttributesForElements(in rect:
CGRect) -> [UICollectionViewLayoutAttributes]?
Collection View Layout
prepare()
var collectionViewContentSize: CGSize
func layoutAttributesForElements(in rect:
CGRect) -> [UICollectionViewLayoutAttributes]?
func shouldInvalidateLayout(forBoundsChange
newBounds: CGRect) -> Bool
• Для любой нестандартной верстки вам хватит
UICollectionView
• Нестандартный paging находится там же
• Для оптимизации кэшируйте все заранее или в
процессе
Итоги демо
• Заготавливайте ваши значения в prepare()
• Кэшируйте значения
• Не стоит всегда возвращать true из `shouldInvalidateLayout`
• Будьте осторожнее с `estimatedItemSize`
• Не все то золото, что блестит
• Не жалейте ресурсов на проверку всех
поддерживаемых iOS
• Использование таких элементов по-прежнему
оправдано
Итоги демо
Анимация
• Вы всегда можете показать взаимодействие
пользователя с контентом
• Чем интереснее возможность, тем сложнее ее
поддерживать
Итоги демо
• Динамическая верстка — это хорошо
• Любую верткую можно реализовать на
UICollectionView, и это просто
• Чем интереснее возможность — тем больше
ответственность
• Все это можно еще анимировать
Итоги
• WWDC 2016 Inclusive App Design — https://developer.apple.com/videos/play/
wwdc2016/801/
• WWDC 2016 Making Apps Adaptive Part 1/2 — https://developer.apple.com/
videos/play/wwdc2016/222/, https://developer.apple.com/videos/play/
wwdc2016/233/
• Подсчет высоты строки — https://goo.gl/pBdZlI
Ссылки
• WWDC 2016 Inclusive App Design — https://developer.apple.com/videos/play/
wwdc2016/801/
• WWDC 2016 Making Apps Adaptive Part 1/2 — https://developer.apple.com/
videos/play/wwdc2016/222/, https://developer.apple.com/videos/play/
wwdc2016/233/
Ссылки
Спасибо за
внимание!
Зимин Александр
azimin@me.com
@ZiminAlex

More Related Content

What's hot

Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Ontico
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
DotNetConf
 
Lime.JS
Lime.JSLime.JS
Сделай дизайнеру приятно: Красивые веб-формы
Сделай дизайнеру приятно: Красивые веб-формыСделай дизайнеру приятно: Красивые веб-формы
Сделай дизайнеру приятно: Красивые веб-формы
Kyrylo Melnychuk
 
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18MoscowJS
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5Technopark
 
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с Tizen
Iurii Ageev
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Ontico
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
Anastasia Goryacheva
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
Ontico
 

What's hot (13)

Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
 
course js day 1
course js day 1course js day 1
course js day 1
 
Lime.JS
Lime.JSLime.JS
Lime.JS
 
Сделай дизайнеру приятно: Красивые веб-формы
Сделай дизайнеру приятно: Красивые веб-формыСделай дизайнеру приятно: Красивые веб-формы
Сделай дизайнеру приятно: Красивые веб-формы
 
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5
 
Знакомство с Tizen
Знакомство с TizenЗнакомство с Tizen
Знакомство с Tizen
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
 

Similar to Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"

Backbone.js
Backbone.jsBackbone.js
Backbone.js
Eduard Antsupov
 
UICollectionView — Александр Зимин
UICollectionView — Александр ЗиминUICollectionView — Александр Зимин
UICollectionView — Александр Зимин
CocoaHeads
 
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
e-Legion
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiAlexander Makarov
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
Noveo
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
Yandex
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
buranLcme
 
iOS 7. Новые концепции и новые средства
iOS 7. Новые концепции и новые средстваiOS 7. Новые концепции и новые средства
iOS 7. Новые концепции и новые средства
Any Void
 
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий (Agora)
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий  (Agora)Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий  (Agora)
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий (Agora)
EgorPetrov9
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
Talks&Works
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в DjangoMoscowDjango
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр Зимин
CocoaHeads
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоStanfy
 
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.КассыRambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
RAMBLER&Co
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
Denis Izmaylov
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application Development
Anton Kirillov
 
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
Mail.ru Group
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
Igor Shkulipa
 

Similar to Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS" (20)

Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
UICollectionView — Александр Зимин
UICollectionView — Александр ЗиминUICollectionView — Александр Зимин
UICollectionView — Александр Зимин
 
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем Yii
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
iOS 7. Новые концепции и новые средства
iOS 7. Новые концепции и новые средстваiOS 7. Новые концепции и новые средства
iOS 7. Новые концепции и новые средства
 
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий (Agora)
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий  (Agora)Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий  (Agora)
Избавляемся от старья и переходим на SwiftUI / Руслан Кавецкий (Agora)
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в Django
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр Зимин
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
 
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.КассыRambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
Rambler.iOS #4: Создание модульных приложений на примере Рамблер.Кассы
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application Development
 
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
CocoaHeads Moscow. Александр Зимин. «Работа с динамичным изменением размеров ...
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
 

More from IT Event

Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
IT Event
 
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
IT Event
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
IT Event
 
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
IT Event
 
Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"
IT Event
 
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
IT Event
 
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
IT Event
 
Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"
IT Event
 
Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"
IT Event
 
Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"
IT Event
 
James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"
IT Event
 
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
IT Event
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
IT Event
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"
IT Event
 
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
IT Event
 
Наш ответ Uber’у
Наш ответ Uber’уНаш ответ Uber’у
Наш ответ Uber’у
IT Event
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
IT Event
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
IT Event
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
IT Event
 

More from IT Event (20)

Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
 
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
 
Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"
 
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
 
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
 
Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"
 
Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"
 
Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"
 
James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"
 
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"
 
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
 
Наш ответ Uber’у
Наш ответ Uber’уНаш ответ Uber’у
Наш ответ Uber’у
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 

Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"