SwiftUI dev
1.17K subscribers
87 photos
37 videos
1 file
74 links
Mobile development, SwiftUI, Compose, feel free to reach me: @lexkraev
Download Telegram
Modern swift API design.pdf
2.3 MB
Modern Swift API Design
https://developer.apple.com/videos/play/wwdc2019/415/
Отличная презентация про современной подход к дизайну API приложения, поднимаются такие вопросы, как какие типы - value или reference - использовать и где, когда лучше вводить протоколы, а когда дженерики (общий посыл: не надо чрезмерно злоупотреблять протоколами (принцип less code is better), а чаще использовать generic типы), рассказывают про PropertyWrappers (ключевая аннотация при объявление @propertyWrapper) и их роль в SwiftUI.

#watchthis
SwiftUI dev
Modern swift API design.pdf
This media is not supported in your browser
VIEW IN TELEGRAM
Главное:
1. Binding, State - это property wrappers
2. Компилятор раскрывает property wrapper в stored property/storage (сохраняемое состояние) и computed property (вычисляемое состояние), в случае с Binding storage ссылается на storage State в геттере.
3. Именно из storage SwiftUI и отрисовывает View после изменения Binding или State.
4. У Binding дополнительно введен аттрибут dynamicMemberLookup (который вызывает subscript при доступе к свойству:
$slide.title -> $slide[dynamicMemder: \Slide.title])
5. Привязка Binding к State работает через префикс $

#readthis
SwiftUI dev pinned a photo