AsyncTimer

AsyncTimer is a precision asynchronous timer. You can also use it as a countdown timer

? Features

  • [x] Can work as a countdown timer
  • [x] Can work as a periodic Timer
  • [x] Can work as a scheduled timer
  • [x] Working with user events (like: scrolling, tapping, ...)
  • [x] Functionality (start, pause, resume, stop, restart)
  • [x] Support for clousure (never more selectors)

Overview

Countdown timer Periodic timer scheduled timer

? Demo

pod try AsyncTimer

⚠️ Requirements

  • iOS 9.0+ | macOS 10.10+ | tvOS 9.0+ | watchOS 2.0+
  • Swift 3.0+

? Communication

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

? Installation

CocoaPods

pod 'AsyncTimer', '~> 2.2'

Carthage

github "Decybel07/AsyncTimer", ~> 2.2

Swift Package Manager

.Package(url: "https://github.com/Decybel07/AsyncTimer.git", majorVersion: 2)

? Usage

Import AsyncTimer at the top of each Swift file that will use framework.

import AsyncTimer

Countdown Timer

Counts down from 25 to 0 every 100 ms

AsyncTimer(
    interval: .milliseconds(100),
    times: 25,
    block: { value in
        print(value)
    }, 
    completion: { value in
        print("finished")
    }
)

Periodic Timer

Update every 100 ms

AsyncTimer(interval: .milliseconds(100), repeats: true) { 
    print("updated")
}

Scheduled Timer

Do something after 2 seconds

AsyncTimer(interval: .seconds(2)) {
    print("something to do")
}

? Author

Adrian Bobrowski

GitHub

https://github.com/Decybel07/AsyncTimer