Take control of the big screen from your iOS app with Estimote Mirror
Got a question? Join us on Gitter, or head over to our community forums.
Table of Contents:
Clone or download this repo, open MirrorDisplay.xcodeproj, and run the bundled Examples.
Want to integrate it with your own app?
Copy this repo into a subdirectory of your project, e.g., MyProject/MirrorSDK
.
Open your project, e.g., MyProject/MyProject.xcodeproj
. Drag the MirrorDisplay.xcodeproj and MirrorContextSDK.framework from the MirrorSDK
folder into the Project Navigator. Verify that the checkbox next to your app's target is selected.
(You can check out one of the Examples' "Dependencies" group to see what it should look like.)
Go to your project's settings, the General tab.
Add MirrorDisplay.framework and MirrorContextSDK.framework into the Embedded Binaries section.
(Again, when in doubt, you can compare your General tab to that from one of the Examples.)
import MirrorDisplay
class ViewController: UIViewController {
let mirrorClient = MirrorClient()
override func viewDidLoad() {
super.viewDidLoad()
let hello = Poster() { p in
p.header = "Hello, world!"
p.body = "The programmable screen is here."
p.image = .preloaded(path: "shoe_big.jpg")
p.style = PosterStyle() { ps in
ps.textAlign = .center
ps.textPosition = Position(horizontal: .center, vertical: .bottom(offset: 80))
ps.imagePosition = Position(horizontal: .center, vertical: .top(offset: 80))
}
}
mirrorClient.display(hello, inProximity: .near)
}
}
We have extensive documentation available on Estimote Developer Portal.
The best place to get started is with … Intro to Estimote Mirror!
Install via CocoaPods:
$ pod init
in the project root directorypod 'EstimoteMirror', '~> 0.1.6'
under your project target$ pod install
If you need Carthage support, let us know by submitting a feature request or just chat with us over Gitter! (see the badges above)
"MirrorContextSDK" will soon be renamed to "MirrorCore"
MirrorClient
currently tries to connect to any and all Mirror devices it finds
startDeviceDiscovery
call, inside the ConnectivityService
's init
Proximity zone thresholds are currently kind of hard-coded in the Proximity.swift
file
The APIs are not yet considered stable and will likely change … for better, and more powerful, naturally