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 (ключевая аннотация при объявление
#watchthis
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.
2. Компилятор раскрывает property wrapper в stored property/storage (сохраняемое состояние) и computed property (вычисляемое состояние), в случае с
3. Именно из storage SwiftUI и отрисовывает
4. У
5. Привязка
#readthis
1.
Binding
, State
- это property wrappers2. Компилятор раскрывает 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 «Meet async/await in Swift https://developer.apple.com/videos/play/wwdc2021/10132/ ❗️Главное: 1. Async/await существенно сокращает код, позволяет не думать о всех случаях в замыканиях 2. ⚙️ Принцип работы строится на следующем: если синхронная процедура возвращает…»
SwiftUI dev pinned «Discover concurrency in SwiftUI https://developer.apple.com/videos/play/wwdc2021/10019/ Рассмотрим следующий код: class Photos: ObservableObject { @Published var items: [Photos] = [] func updateItems() { let fetched = fetchPhotos() items = fetched…»