DMAction Swift SDK
- Тип
- Swift SDK з відкритим кодом
- Період
- 01/2024 – дотепер
у відкритому доступі з 02/2025 - Платформи
- iOS 17+, watchOS 7+
- UI
- SwiftUI, UIKit
- Встановлення
- Swift Package Manager, CocoaPods
- Ліцензія
- MIT
- Вихідний код
- GitHub
Огляд
DMAction є Swift-бібліотекою для поєднання дій з обробниками завершення, повторними спробами та резервним сценарієм. Вона зосереджує виконання дій і обробку результатів у протокольно-орієнтованому API, спільному для клієнтів на UIKit і SwiftUI.
Основні можливості
- Поєднуйте дії з налаштовуваними повторними спробами та резервним сценарієм.
- Отримуйте асинхронні результати через обробники завершення.
- Ігноруйте результати через
simpleActionабо обробляйте їх черезResult. - Використовуйте той самий невеликий API з UIKit і SwiftUI.
Приклад
У цьому прикладі після першої спроби виконати основну дію дозволено одну повторну спробу. Якщо обидві спроби завершаться невдачею, DMAction викличе резервну дію.
import Foundation
import DMAction
let primaryButtonAction = DMButtonAction { completion in
completion(.failure(NSError(domain: "TestError", code: 1, userInfo: nil)))
}
let fallbackButtonAction = DMButtonAction { completion in
completion(.success("Fallback succeeded"))
}
let actionWithFallback = primaryButtonAction
.retry(1)
.fallbackTo(fallbackButtonAction)
actionWithFallback { result in
switch result.unwrapValue() {
case .success(let value):
print("Result value: \(value)")
case .failure(let error):
print("Action failed: \(error)")
}
}Встановлення
Swift Package Manager:
dependencies: [
.package(url: "https://github.com/nikolay-dementiev/DMAction.git", from: "1.0.5")
]CocoaPods:
pod 'DMAction'Посилання
- DMAction на GitHub
- Стаття: на цьому сайті, на Medium, на dev.to