Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Texture

CocoaHeads
September 29, 2018

 Texture

CocoaHeads

September 29, 2018
Tweet

More Decks by CocoaHeads

Other Decks in Programming

Transcript

  1. План доклада 2 • Недостатки и преимущества UIKit • Недостатки

    и преимущества Texture • С чего начать работу с Texture • Примеры реализации верстки Texture • Фишки Texture
  2. Угнать Посчитать за 16 мс • Констрейнты, heightForRowAtIndexPath, sizeThatFits •

    Декодинг UIImage • Отрисовка текста, градиентов, теней. • Жизненный цикл объектов UIView Стандарт Apple – 60 кадров в секунду 4
  3. Преимущества Texture 10 • 60 кадров в секунду • Совместима

    c UIKit (можно использовать любые готовые сторонние компоненты) • Переиспользование кода (ASDisplayNode). • Универсальная верстка iPad и iPhone • Простой удобный синтаксис • Преимущества верстки кодом (мержинг, рефакторинг)
  4. Недостатки Texture 11 • Поменять механизм отрисовки на другой будет

    проблематично • Ojective-C++ • Заточен под сеточную верстку (сложная физика и анимации не пройдут) • Сложность навигации по проекту из-за большого количетсва сабклассов ASDisplayNode
  5. Сравенение с UIKit: отличия UIKit Texture Быстрое прототипирование + -

    Поддержка и развитие фреймворка + + Удобство быстрого изменения и поддержки верстки - + Автоматическая отрисовка анимаций - + Количество результатов на StackOverflow by Google 132,000 2,120 Совместная работа и мержинг - + Размер приложения 30,8mb 36,9mb 12
  6. С чего начать работу •ASDisplayNode – обертка над UIView •func

    layoutSpecThatFits(_:ASSizeRange) -> ASLayoutSpec •func animateLayoutTransition(_:ASContextTransitioning) •ASViewController - аналог UIViewController •AS{*}LayoutSpec - опции верстки 14
  7. Пример #1 • UIKit: • UIStackView
 + • UILabel •

    contentHuggingPriority • contentCompressionResistance • Скрытые констрейнты стека 15
  8. Пример #1 }Стек: иконка + текст Указываем, что имя должно

    ужиматься }Стек: иконка + текст + цена } Отступы по краям 16
  9. Intelligent Preloading Диапазон Preload: Данные загружаются из источника. Диапазон Display:

    Выполняются задачи декодинга изображений и растерзации текста. Диапазон Visible: Нода находится на экране хотя бы на 1 пиксель. 18