+{"topicSections":[{"title":"Classes","identifiers":["doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerDataSource","doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerTransceiver"]},{"title":"Structs","identifiers":["doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerConfiguration","doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerError","doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/Peer"]},{"title":"Type Aliases","identifiers":["doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/InvitationCompletionHandler"]}],"schemaVersion":{"major":0,"minor":1,"patch":0},"sections":[],"primaryContentSections":[{"kind":"content","content":[{"anchor":"Overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"MultipeerKit is an abstraction on top of the MultipeerConnectivity framework, which enables peer-to-peer communication of Apple devices over WiFi."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"With MultipeerKit, you can exchange messages between Apple devices running your app, the message can be anything that implements the "},{"type":"codeVoice","code":"Codable"},{"type":"text","text":" protocol."}]},{"anchor":"Getting-Started","level":2,"type":"heading","text":"Getting Started"},{"anchor":"Info.plist-Requirements","level":3,"type":"heading","text":"Info.plist Requirements"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Starting with iOS 14, you will have to include two keys in your app’s Info.plist file in order for MultipeerKit to work properly."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"The keys are "},{"type":"codeVoice","code":"Privacy - Local Network Usage Description"},{"type":"text","text":" ("},{"type":"codeVoice","code":"NSLocalNetworkUsageDescription"},{"type":"text","text":") and "},{"type":"codeVoice","code":"Bonjour services"},{"type":"text","text":" ("},{"type":"codeVoice","code":"NSBonjourServices"},{"type":"text","text":")."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"For the privacy key, include a human-readable description of what benefit the user gets by allowing your app to access devices on the local network."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"The Bonjour services key is an array of service types that your app will browse for. For MultipeerKit, the entry should be in the format "},{"type":"codeVoice","code":"_servicename._tcp"},{"type":"text","text":", where "},{"type":"codeVoice","code":"servicename"},{"type":"text","text":" is the "},{"type":"codeVoice","code":"serviceType"},{"type":"text","text":" you’ve set in your "},{"type":"codeVoice","code":"MultipeerConfiguration"},{"type":"text","text":". If you’re using the default configuration, the value of this key should be "},{"type":"codeVoice","code":"_MKSVC._tcp"},{"type":"text","text":"."}]},{"anchor":"Sending-and-Receiving-Messages","level":3,"type":"heading","text":"Sending and Receiving Messages"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The main class in this library is "},{"type":"reference","isActive":true,"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerTransceiver"},{"type":"text","text":", which does both the sending and receiving aspects of the multipeer communication."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"MultipeerKit can transmit and receive anything that conforms to the "},{"type":"codeVoice","code":"Codable"},{"type":"text","text":" protocol, which makes it easy for you to define your own message types."}]},{"type":"codeListing","syntax":"swift","code":["\/\/ Create a transceiver (make sure you store it somewhere, like a property)","let transceiver = MultipeerTransceiver()","","\/\/ Start it up!","transceiver.resume()","","\/\/ Configure message receivers","transceiver.receive(SomeCodableThing.self) { payload, sender in"," print(\"Got my thing from \\(sender.name)! \\(payload)\")","}","","\/\/ Broadcast message to peers","let payload = SomeEncodableThing()","transceiver.broadcast(payload)"]}]}],"variants":[{"paths":["\/documentation\/multipeerkit"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A high-level abstraction built on top of the MultipeerConnectivity framework, which allows iOS, macOS and tvOS devices to exchange data between them over Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth."}],"kind":"symbol","metadata":{"roleHeading":"Framework","externalID":"MultipeerKit","title":"MultipeerKit","symbolKind":"module","role":"collection","modules":[{"name":"MultipeerKit"}]},"hierarchy":{"paths":[[]]},"documentVersion":0,"references":{"doc://MultipeerKit/documentation/MultipeerKit/MultipeerError":{"role":"symbol","title":"MultipeerError","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"MultipeerError"}],"abstract":[],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MultipeerError"}],"url":"\/documentation\/multipeerkit\/multipeererror"},"doc://MultipeerKit/documentation/MultipeerKit/MultipeerConfiguration":{"role":"symbol","title":"MultipeerConfiguration","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"MultipeerConfiguration"}],"abstract":[{"type":"text","text":"Configures several aspects of the multipeer communication."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerConfiguration","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MultipeerConfiguration"}],"url":"\/documentation\/multipeerkit\/multipeerconfiguration"},"doc://MultipeerKit/documentation/MultipeerKit/Peer":{"role":"symbol","title":"Peer","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Peer"}],"abstract":[{"type":"text","text":"Represents a remote peer."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/Peer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Peer"}],"url":"\/documentation\/multipeerkit\/peer"},"doc://MultipeerKit/documentation/MultipeerKit":{"role":"collection","title":"MultipeerKit","abstract":[{"type":"text","text":"A high-level abstraction built on top of the MultipeerConnectivity framework, which allows iOS, macOS and tvOS devices to exchange data between them over Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit","kind":"symbol","type":"topic","url":"\/documentation\/multipeerkit"},"doc://MultipeerKit/documentation/MultipeerKit/InvitationCompletionHandler":{"role":"symbol","title":"InvitationCompletionHandler","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"InvitationCompletionHandler"}],"abstract":[{"type":"text","text":"The completion handler called when the remote peer responds to a manual invite initiated"},{"type":"text","text":" "},{"type":"text","text":"by calling "},{"type":"reference","isActive":true,"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerTransceiver\/invite(_:with:timeout:completion:)"},{"type":"text","text":"."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/InvitationCompletionHandler","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"InvitationCompletionHandler"}],"url":"\/documentation\/multipeerkit\/invitationcompletionhandler"},"doc://MultipeerKit/documentation/MultipeerKit/MultipeerDataSource":{"role":"symbol","title":"MultipeerDataSource","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"MultipeerDataSource"}],"abstract":[{"type":"text","text":"An ObservableObject wrapper around "},{"type":"reference","isActive":true,"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerTransceiver"},{"type":"text","text":","},{"type":"text","text":" "},{"type":"text","text":"useful for use with "},{"type":"codeVoice","code":"Combine"},{"type":"text","text":" and SwiftUI apps."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerDataSource","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MultipeerDataSource"}],"url":"\/documentation\/multipeerkit\/multipeerdatasource"},"doc://MultipeerKit/documentation/MultipeerKit/MultipeerTransceiver":{"role":"symbol","title":"MultipeerTransceiver","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"MultipeerTransceiver"}],"abstract":[{"type":"text","text":"Handles all aspects related to the multipeer communication."}],"identifier":"doc:\/\/MultipeerKit\/documentation\/MultipeerKit\/MultipeerTransceiver","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MultipeerTransceiver"}],"url":"\/documentation\/multipeerkit\/multipeertransceiver"}}}
0 commit comments