Kronos is an NTP client library written in Swift. It supports sub-seconds precision and provides a stable monotonic clock that won’t be affected by changes in the clock.

Example app


This is an example app that displays the monotonic Clock.now on the left and the system clock (initially out of date) on the right.

ascii-clock

Usage


Sync clock using a pool of NTP servers

Calling Clock.sync will fire a bunch of NTP requests to up to 5 of the servers on the given NTP pool (default is time.apple.com). As soon as we get the first response, the given closure is called but the Clock will keep trying to get a more accurate response.

Clock.sync { date, offset in
// This is the first sync (note that this is the fastest but not the
// most accurate run
print(date)
}

Get an NTP sync’ed date

Clock.now is a monotonic NSDate that won’t be affected by clock changes.

NSTimer.scheduledTimerWithTimeInterval(1.0, target: self,
selector: #selector(Example.tick),
userInfo: nil, repeats: true)

@objc func tick() {
print(Clock.now) // Note that this clock will get more accurate as
// more NTP servers respond.
}

Installation


Add Kronos to your Podfile:

pod ‘Kronos’

Swift Package Manager

Add Kronos to your Pacakge.swift:

.package(name: “Kronos”, url: “https://github.com/MobileNativeFoundation/Kronos.git”, .upToNextMajor(from: “TAG”)),

Bazel

Add Kronos to your WORKSPACE:

http_archive(
name = “Kronos”,
sha256 = “”,
strip_prefix = “Kronos-TAG/”,
url = “https://github.com/MobileNativeFoundation/Kronos/archive/TAG.tar.gz”,
)

GitHub


View Github

#datetime #time-picker #timer
YOU MIGHT ALSO LIKE...
CameraBackground

Features Both front and back camera supported. Flash modes: auto, on, off. Countdown timer. Tap to focus. Pinch to zoom. Usage  

DKCamera

Description A light weight & simple & easy camera for iOS by Swift. It uses CoreMotion framework to detect device orientation, so ...

HorizonSDK-iOS

Horizon SDK is a state of the art real-time video recording / photo shooting iOS library. Some of the features ...

LLSimpleCamera

LLSimpleCamera: A simple customizable camera - video recorder control LLSimpleCamera is a library for creating a customized camera - video ...

RSBarcodes_Swift

RSBarcodes allows you to read 1D and 2D barcodes using the metadata scanning capabilities introduced with iOS 7 and generate ...