Latest 1.0
Homepage https://github.com/1amageek/Bleu
License MIT
Platforms ios 10.0, requires ARC
Authors

Bleu is a library that can handle CoreBluetooth easily.

Version
[Platform]()
Awesome
[Downloads]()

Installation

CocoaPods

  • Insert pod 'Bleu' to your Podfile.
  • Run pod install.

Note: CocoaPods 1.1.0 is required to install Bleu.

Usage

Please customize Communicable+.swift.

uuidgen // create uuid
extension Communicable {

    public var serviceUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }

}

struct GetUserIDItem: Communicable {

    public var method: RequestMethod {
        return .get(isNotified: false)
    }

    public var characteristicUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }

}

struct PostUserIDItem: Communicable {

    public var method: RequestMethod {
        return .post
    }

    public var characteristicUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }

}

😃 Get

Peripheral(Server)

Bleu.addReceiver(Receiver(GetUserID(), get: { [weak self] (manager, request) in
    guard let text: String = self?.textField.text else {
        manager.respond(to: request, withResult: .attributeNotFound)
        return
    }
    request.value = text.data(using: .utf8)
    manager.respond(to: request, withResult: .success)
}))

Bleu.startAdvertising()

Central(Client)

let request: Request = Request(communication: GetUserID()) { [weak self] (peripheral, characteristic, error) in
    if let error = error {
        debugPrint(error)
        return
    }

    let data: Data = characteristic.value!
    let text: String = String(data: data, encoding: .utf8)!

    self?.centralTextField.text = text
}
Bleu.send([request]) { completedRequests, error in
    if let error = error {
        print("timeout")
    }
}

😃 Post

Peripheral(Server)

Bleu.addReceiver(Receiver(PostUserID(), post: { (manager, request) in
    let data: Data = request.value!
    let text: String = String(data: data, encoding: .utf8)!
    print(text)
    manager.respond(to: request, withResult: .success)
}))

Bleu.startAdvertising()

Central(Client)

let data: Data = "Sample".data(using: .utf8)!
let request: Request = Request(communication: PostUserID()) { (peripheral, characteristic, error) in
    if let error = error {
        debugPrint(error)
        return
    }

    print("success")
}
request.value = data
Bleu.send([request]) { completedRequests, error in
    if let error = error {
        print("timeout")
    }
}

Latest podspec

{
    "name": "Bleu",
    "version": "1.0",
    "summary": "BLE(Bluetooth LE) for Uud83dudc96). Bleu enables communication in server and client format.",
    "description": "BLE(Bluetooth LE) for Uud83dudc96). Bleu enables communication in server and client format.",
    "homepage": "https://github.com/1amageek/Bleu",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "1_am_a_geek": "[email protected]"
    },
    "social_media_url": "http://twitter.com/1amageek",
    "platforms": {
        "ios": "10.0"
    },
    "source": {
        "git": "https://github.com/1amageek/Bleu.git",
        "tag": "1.0"
    },
    "source_files": "Sources/**/*.swift",
    "requires_arc": true,
    "pushed_with_swift_version": "3.1"
}

Pin It on Pinterest

Share This