MultiPeer 0.0.8

MultiPeer 0.0.8

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2018
SPMSupports SPM

Maintained by Wilson Ding.


Downloads

Total68
Week0
Month0

Installs

Apps22
powered by Segment

GitHub

Stars0
Watchers0
Forks0
Issues0
Contributors1
Pull Requests0

Code

Files4
LOCLines of Code 180


MultiPeer 0.0.8

  • By
  • Wilson Ding and Quan Vo

Build Status CocoaPods Version Status Carthage compatible CocoaPods CocoaPods iOS Mac Swift MIT License

A wrapper for Apple's MultipeerConnectivity framework for offline data transmission between Apple devices. This framework makes it easy to automatically connect to multiple nearby devices and share information using either bluetooth or wifi radios.

  1. Features
  2. Integration
  3. Usage
  4. License
  5. Authors

Features

  • Supports iOS/macOS
  • Auto Connection
  • Auto Invitations/Advertising
  • Send/Receive data via MultipeerConnectivity Framework
  • Specify data types for easy handling

Integration

CocoaPods

You can use CocoaPods to install MultiPeer by adding it to your Podfile:

pod 'MultiPeer'

Carthage

You can use Carthage to install MultiPeer by adding it to your Cartfile:

github "dingwilson/MultiPeer"

Swift Package Manager

For SPM, add the following to your package dependencies:

.package(url: "https://github.com/dingwilson/MultiPeer.git", .upToNextMinor(from: "0.0.0"))

Usage

To get started, simply initialize MultiPeer with the name of your session (serviceType). There are two modes of connections (advertiser and browser). To utilize both, simply use .autoConnect().

MultiPeer.instance.initialize(serviceType: "demo-app")
MultiPeer.instance.autoConnect()

Any data transmitted by MultiPeer will always be accompanied by a numerical "type", to ensure other peers know what kind of data is being received. You can manage this by creating a UInt32 enum, as shown below:

enum DataType: UInt32 {
    case string = 1
    case image = 2
    // ...
}

To send data, simply use the .send(object: type:) function:

MultiPeer.instance.send(object: "Hello World!", type: DataType.string.rawValue)

To receive data, we must conform to the MultiPeerDelegate protocol:

func multiPeer(didReceiveData data: Data, ofType type: UInt32) {
    if type == DataType.string.rawValue {
        let string = data.convert() as! String
        // do something with the received string
    } else if type == DataType.image.rawValue {
        let image = UIImage(data: data)
        // do something with the received UIImage
    }
}

func multiPeer(connectedDevicesChanged devices: [String]) {}

Congratulations! You have successfully sent data using MultiPeer! For more detailed information (including details of other functions), please see the docs.

License

MultiPeer is released under an MIT License. See LICENSE for details.

Authors

Project heavily inspired by Apple-Signal.