"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
При разработке интерфейсов для API, неизбежно сталкиваешься с несколькими проблемами. Во-первых, мы не знаем заранее, как будет выглядеть сервис или сайт со встроенными Картами. Важно обеспечить его будущим пользователям наилучший результат — даже если у разработчиков, использующих наш API, вообще нет в команде дизайнера. Во-вторых, проблемы могут возникнуть при адаптации дизайна для разных устройств и размеров экранов. В докладе мы поговорим о том, как и с помощью чего делаются прототипы, и зачем они нужны разработчикам и дизайнерам. А самое главное, разберёмся с адаптивным поведением элементов управления картой, рассмотрим схему работы менеджера контролов. Также мы кратко обсудим другие варианты реализации этого механизма и объясним, почему они не подошли нам.
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
При разработке интерфейсов для API, неизбежно сталкиваешься с несколькими проблемами. Во-первых, мы не знаем заранее, как будет выглядеть сервис или сайт со встроенными Картами. Важно обеспечить его будущим пользователям наилучший результат — даже если у разработчиков, использующих наш API, вообще нет в команде дизайнера. Во-вторых, проблемы могут возникнуть при адаптации дизайна для разных устройств и размеров экранов. В докладе мы поговорим о том, как и с помощью чего делаются прототипы, и зачем они нужны разработчикам и дизайнерам. А самое главное, разберёмся с адаптивным поведением элементов управления картой, рассмотрим схему работы менеджера контролов. Также мы кратко обсудим другие варианты реализации этого механизма и объясним, почему они не подошли нам.
— Концепции UI в iOS 7
— UIDynamics: перестаём видеть, начинаем ощущать
— UICollectionView: обобщение лэйаута и API
— AutoLayout: переход от императивного стиля к декларативному
— TextKit: избавляемся от CoreText
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"IT Event
В докладе пойдет речь о верстке для UITableView и, в частности, UICollectionView. Зимин Александр расскажет о том, почему стоит использовать UICollectionView чаще, чем вы думаете, как не сесть в лужу с оптимизацией и динамично подстраивать верстку под контент. Доклад будет сопровождаться работой в Xcode, реальными примерами кода и полезными ссылками.
В лекции мы попробуем взглянуть на страницу глазами пользователей и понять, что можно сделать для ускорения ее загрузки. Рассмотрим основные оптимизации на стороне браузера, познакомимся с инструментами для измерения времени отображения.
— Концепции UI в iOS 7
— UIDynamics: перестаём видеть, начинаем ощущать
— UICollectionView: обобщение лэйаута и API
— AutoLayout: переход от императивного стиля к декларативному
— TextKit: избавляемся от CoreText
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"IT Event
В докладе пойдет речь о верстке для UITableView и, в частности, UICollectionView. Зимин Александр расскажет о том, почему стоит использовать UICollectionView чаще, чем вы думаете, как не сесть в лужу с оптимизацией и динамично подстраивать верстку под контент. Доклад будет сопровождаться работой в Xcode, реальными примерами кода и полезными ссылками.
В лекции мы попробуем взглянуть на страницу глазами пользователей и понять, что можно сделать для ускорения ее загрузки. Рассмотрим основные оптимизации на стороне браузера, познакомимся с инструментами для измерения времени отображения.
О проектировании дизайн-систем от разработчика интерфейсов. Что такое композиции компонентов и с чего стоит начинать строить свою систему, чем плохи и хороши имеющиеся на рынке решения и почему их точно нельзя использовать. Все то как передать бренд через интерфейсы в CSS с параноидальным переиспользованием кода. Дизайнерские и разработческие сетки, высокоуровневое проектирование интерфейсов с ориентацией на решение задач. Верстка и дизайн уровня «бог». Живые примеры, годы работы, инсайды, вот это вот всё.
27. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
28. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
29. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
• UICollectionElementKindSectionHeader
30. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
• UICollectionElementKindSectionHeader
• UICollectionElementKindSectionFooter
31. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
• UICollectionElementKindSectionHeader
• UICollectionElementKindSectionFooter
• Decoration View:
32. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
• UICollectionElementKindSectionHeader
• UICollectionElementKindSectionFooter
• Decoration View:
• Используется для декораций
33. Supplementary и Decoration view
7
• Supplementary Views:
• Для презентации дополнительной информации
• Некая аналогия header/footed view на table view
• Имеют тип:
• UICollectionElementKindSectionHeader
• UICollectionElementKindSectionFooter
• Decoration View:
• Используется для декораций
• Задается внутри layout у collection view
51. UICollectionViewDelegate
12
• Методы выделения и нажатия на ячейки
• Методы отображения ячеек и дополнительных
видов
• Методы вспомогательного меню
• Метод для смены layout у коллекции
68. Custom layouts
19
• Процесс создания полностью своей логики
расположения элементов
• Свой размер collection view
69. Custom layouts
19
• Процесс создания полностью своей логики
расположения элементов
• Свой размер collection view
• Может быть прокрутка в оба направления
70. Custom layouts
19
• Процесс создания полностью своей логики
расположения элементов
• Свой размер collection view
• Может быть прокрутка в оба направления
• Внешнее представление каждого элемента
задается через UICollectionViewLayoutAttributes
73. Как это работает?
20
• Вызывается invalidateLayout()
• Срабатывает когда вы вызываете его руками или
это делает collection view
74. Как это работает?
20
• Вызывается invalidateLayout()
• Срабатывает когда вы вызываете его руками или
это делает collection view
• При срабатывании
shouldInvalidateLayoutForBoundsChange()
75. Как это работает?
20
• Вызывается invalidateLayout()
• Срабатывает когда вы вызываете его руками или
это делает collection view
• При срабатывании
shouldInvalidateLayoutForBoundsChange()
• Вызывается prepareLayout()
76. Как это работает?
20
• Вызывается invalidateLayout()
• Срабатывает когда вы вызываете его руками или
это делает collection view
• При срабатывании
shouldInvalidateLayoutForBoundsChange()
• Вызывается prepareLayout()
• Запрашивается размер поля
collectionViewContentSize
77. Как это работает?
20
• Вызывается invalidateLayout()
• Срабатывает когда вы вызываете его руками или
это делает collection view
• При срабатывании
shouldInvalidateLayoutForBoundsChange()
• Вызывается prepareLayout()
• Запрашивается размер поля
collectionViewContentSize
• Вызывается layoutAttributesForElementsInRect()
94. Пару слов о редактировании
24
• initialLayoutAttributesForAppearingItemAtIndexPath
95. Пару слов о редактировании
24
• initialLayoutAttributesForAppearingItemAtIndexPath
• finalLayoutAttributesForDisappearingItemAtIndexPath
96. Пару слов о редактировании
24
• initialLayoutAttributesForAppearingItemAtIndexPath
• finalLayoutAttributesForDisappearingItemAtIndexPath
• Такие же методы для Supplementary и Decoration
view