DittoKit
public class DittoKit
DittoKit
is the entry point for accessing Ditto-related functionality.
-
An optional delegate that will be called with SDK lifecycle information if defined.
Declaration
Swift
public var delegate: DittoKitDelegate? { get set }
-
Represents whether logging is enabled.
Declaration
Swift
public static var loggingEnabled: Bool { get set }
-
The minimum log level at which logs will be logged, provided
loggingEnabled
istrue
.Declaration
Swift
public static var minimumLogLevel: DittoLogLevel { get set }
-
Represents whether or not emojis should be used as the log level indicator in the logs.
Declaration
Swift
public static var emojiLogLevelHeadingsEnabled: Bool { get set }
-
Configure a custom identifier for the current device.
When using
observePeers()
, each remote peer is represented by a short UTF-8 “device name”. By default this will be a truncated version of the device’s hostname. It does not need to be unique among peers. Configure the device name before callingstart()
. If it is too long it will be truncated.Declaration
Swift
public static var deviceName: String { get set }
-
The site ID that the instance of
DittoKit
is using as part of its identity.Declaration
Swift
public var siteID: UInt32 { get }
-
Provides access to the SDK’s store functionality.
Declaration
Swift
public var store: DittoStore { get }
-
The
DispatchQueue
that will be used to deliver delegate events. Defaults toDispatchQueue.main
.Declaration
Swift
public var delegateEventQueue: DispatchQueue { get set }
-
Initializes a new
DittoKit
.Throws
DittoKitError
Declaration
Swift
public init( identity: DittoIdentity = .development(), persistenceDirectory directory: URL? = nil )
Parameters
identity
Provide the identity of the entity that is interacting with DittoKit.
persistenceDirectory
The directory that will be used to persist DittoKit data.
-
Activate a
DittoKit
instance by setting an access license. You cannot interact withDittoKit
before you have activated it.Declaration
Swift
public func setAccessLicense(_ license: String)
Parameters
license
The license to activate the
DittoKit
instance with. -
Start a set of transports being used by DittoKit to connect to other devices. This has no effect if a provided transport is already started.
By default the WiFi, Bluetooth, and AWDL transports will be started.
Declaration
Swift
public func start(transports: Set<DittoTransport> = [.wifi, .bluetooth, .awdl])
Parameters
transports
The set of transports to be started.
-
Stop all DittoKit transports.
Declaration
Swift
public func stop()
-
Stop a set of transports from being used by DittoKit to connect to other devices.
Declaration
Swift
public func stop(transports: Set<DittoTransport>)
Parameters
transports
The set of transports to be stopped.
-
Starts a WebSocket server that other devices will be able to connect to.
Declaration
Swift
public func startWebsocketServer(address: String)
Parameters
address
The address that the WebSocket server should run at.
-
Request bulk status information about the transports. This is mostly intended for statistical or debugging purposes.
Throws
DittoKitError
Declaration
Swift
public func transportDiagnostics() throws -> DittoTransportDiagnostics
Return Value
An instance of
DittoTransportDiagnostics
. -
Clears the cached site ID, if one had been cached.
Declaration
Swift
public func clearSiteID()
-
Request information about Ditto peers in range of this device.
This method returns an observer which should be held as long as updates are required. A newly registered observer will have a peers update delivered to it immediately. Then it will be invoked repeatedly when Ditto devices come and go, or the active connections to them change.
Declaration
Swift
public func observePeers(callback: @escaping (Array<DittoRemotePeer>) -> ()) -> DittoPeersObserver
-
A string identifying the version of the DittoKit SDK.
Declaration
Swift
public var sdkVersion: String { get }