Dronecode-SDK-Swift
Use framework in iOS application
Get framework using carthage
To use this framework, add this to your Cartfile
:
github "Dronecode/DronecodeSDK-Swift" "master"
And then get the framework using:
carthage bootstrap --platform ios
First steps to use framework
Note: The steps below assume that your iOS device has a network connection to the drone, e.g. using WiFi.
To connect to the drone, add a CoreManager to your iOS application:
import Foundation
import Dronecode_SDK_Swift
import MFiAdapter
import RxSwift
class CoreManager {
let disposeBag = DisposeBag()
let core: Core
let telemetry = Telemetry(address: "localhost", port: 50051)
let action = Action(address: "localhost", port: 50051)
let mission = Mission(address: "localhost", port: 50051)
let camera = Camera(address: "localhost", port: 50051)
private static var sharedCoreManager: CoreManager = {
let coreManager = CoreManager()
return coreManager
}()
private init() {
core = Core()
}
class func shared() -> CoreManager {
return sharedCoreManager
}
public func start() -> Void {
core.connect()
.subscribe(onCompleted: {
print("Core connected")
}) { (error) in
print("Failed connect to core with error: \(error.localizedDescription)")
}
.disposed(by: disposeBag)
}
}
Then, you can for instance use the CoreManager
in your view controller like this:
import Dronecode_SDK_Swift
import RxSwift
class MyViewController: UIViewController {
@IBOutlet weak var armButton: UIButton!
@IBOutlet weak var feedbackLabel: UILabel!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func armPressed(_ sender: Any) {
CoreManager.shared().action.arm()
.do(onError: { error in
self.feedbackLabel.text = "Arming failed : \(error.localizedDescription)"
}, onCompleted: {
self.feedbackLabel.text = "Arming succeeded"
})
.subscribe()
.disposed(by: disposeBag)
}
Example of iOS application
Check out the iOS example application for a complete example project using this framework.
Develop for this framework
For instructions how to develop on the Swift wrappers and contribute, please check out: CONTRIBUTING.md.