Skip to content
Snippets Groups Projects
XXClient-quick-start-guide.md 2.14 KiB

XXClient Quick Start Guide

Add XXClient library as a dependency to your project using Swift Package Manager.

▶️ Instantiating cMix

You can use a convenient CMixManager wrapper to manage cMix stored on disk:

let cMixManager: CMixManager = .live(
  passwordStorage: .init(
    save: { password in
      // securely save provided password
    },
    load: {
      // load securely stored password
    }
  )
)

let cMix: CMix
if cMixManager.hasStorage() {
  cMix = try cMixManager.load()
} else {
  cMix = try cMixManager.create()
}

Check out included example iOS application for the PasswordStorage implementation that uses the iOS keychain.

▶️ Connecting to the network

Start network follower:

try cMix.startNetworkFollower(timeoutMS: 10_000)

Wait until connected:

let isNetworkHealthy = try cMix.waitForNetwork(timeoutMS: 30_000)

▶️ Making a new reception identity

Use the cMix to make a new reception identity:

let myIdentity = try cMix.makeReceptionIdentity()

▶️ Create new E2E

let login: Login = .live
let e2e = try login(
  cMixId: cMix.getId(),
  identity: myIdentity
)

▶️ Connecting to remote

Perform auth key negotiation with the given recipient to get the Connection:

let connection = try cMix.connect(
  withAuthentication: false,
  e2eId: e2e.getId(),
  recipientContact: ...
)

Pass true for the withAuthentication parameter if you want to prove id ownership to remote as well.