Discover and read the best of Twitter Threads about #день2

Most recents (2)

#день2 Data-driven UI на iOS.

Props умеет рендерить наследник UIViewController. Сами Props объявлены вложенным типом, что символизирует их связывание.

У контроллера есть функция render которая сохраняет пропсы и переносит их на UI компоненты.
Полезно в render делать setNeedsDisplay, а сам рендеринг в viewWillLayoutSubviews. Это не работает с таблицей - у неё свой цикл и reloadData достаточно.
Каждый контроллер должен кто то подключить к системе. Такая сущность может называться Connector или Presenter. Его жизненный цикл совпадает с жизненным циклом контроллера и на каждый контроллер он свой. При переходе между экранами коннектор создаёт новые коннекторы.
Read 3 tweets
#день2 Практика data-driven UI.

Собирать Props это самое сложное во всей практике. Будьте готовы к тому что вам будет неудобно довольно долго.

Использование enum (sealed class, union type) это обычное дело. Для людей которые не привыкли так моделировать - это challenge.
Props могут передавать не только состояния, но и обратную связь. Для этого используется абстракция Command. По сути своей это обертка над произвольным лямбда выражением. Для Android это еще дает мостик от async / await к главному потоку.
Команды могут быть опциональными, тогда состояние UI кнопки легко привязать к тому есть команда или нет.

В этом примере кнопка login может появится только когда там появится команда.
Read 9 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!