← Усі проєкти

DMAction Swift SDK

Тип
Swift SDK з відкритим кодом
Період
01/2024 – дотепер
у відкритому доступі з 02/2025
Платформи
iOS 17+, watchOS 7+
UI
SwiftUI, UIKit
Встановлення
Swift Package Manager, CocoaPods
Ліцензія
MIT
Вихідний код
GitHub
Логотип DMAction SDK

Огляд

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'

Посилання