Pull to refresh
2
Станислав Шияновский@st-small

iOS Developer

Send message

Потоко-защищённая шина событий в Swift

Level of difficultyMedium
Reading time11 min
Reach and readers5.8K

В крупных приложениях для iOS взаимодействие между компонентами зачастую оказывается сложнее, чем сам компонент. Сервис завершает операцию, координатор должен отреагировать, возможно, потребуется обновить несколько экранов, и передача каждой зависимости по всему дереву навигации быстро начинает казаться излишней «рутинной» работой. Внедрение зависимостей и управление состоянием по-прежнему имеют своё место. Шина (данных) событий предоставляет нам ещё один инструмент для слабосвязанных уведомлений, где прямое управление добавило бы ненужную сложность. Цель этого компонента проста: позволить одной части приложения публиковать событие, а другим частям приложения — подписываться на события определенного типа. Реализация сосредоточена на типовой безопасности, потокобезопасном хранении, автоматической очистке при деаллокации владельца, явной отмене отдельных подписок, доставке MainActor для кода пользовательского интерфейса и поддержке AsyncStream для потребителей async/await.

Читать далее

Information

Rating
Does not participate
Location
Кировоград, Кировоградская обл., Украина
Date of birth
Registered
Activity

Specialization

Разработчик мобильных приложений
Ведущий
Git
Bash
Разработка под iOS
Swift
SwiftUI
UIKit
Xcode
CoreData
GCD
MVVM