This repo is now unmaintained. When I have time, I may bring this back to life by replacing it with a SWIFT solution I wrote instead. whenever I have time to make that code public-ready, I'll update. Til then - consider this code very out-dated and unmaintained. Thanks for your interest!
(WIP) - Finding there are some boiler plate setup stuff for working with Estimote's iOS SDK. To make life easier, created some ways to avoid all the boiler plate setup.
** NOTE You will find a version of the EstimoteSDK in both the Companion and the Example folders. It will eventually be moved to the parent folder. The main thing to remember is that this is only for development purposes. Do not depend on this having the latest/greatest version of their SDK. You should do that on your own, which you can find here.**## Requirements [Estimote's iOS SDK](https://github.com/Estimote/iOS-SDK) - see their README for installation instructions
Note that you should be using the latest/greatest of this SDK as ESTCompanion should be assumed to run with it as well.## Installation Pretty simple stuff:
- Make sure to install the latest Estimote iOS SDK
- Copy the ESTCompanion folder into your project - and its ready for use.
Checkout the Example for a very simple usage example
- No need for the ESTBeaconRegion property ( see details in sibling points below )
- No need to create an instance of the ESTBeaconRegion unless you want to
- Optionally Start Ranging Immediately as you init the ESTBeaconManager
- Optionally set ourselves as the delegate, and also turn on some common properties during init ('NS_OPTIONS') while we are at it, etc. etc.
- Primary happiness for the lazy people like me - reduces this down to an init, ESTBeaconManagerDelegate method, and then cleanup on destuct.
As to not turn this into a Billy Mays infomercial here i'll admit the downside is that there isnt much else yet either. Its a work in progress though and should grow pretty quickly from here on out.## Categories There also exists a `Misc` folder within `Categories`. This just contains some UIColor/Tinting manipulation stuff. Feel free to mess around with it. Some of it came from another project of mine, a few pieces came also from other repos. ### ESTBeacon+Companion Adds the ability to set the identifier and color for a beacon. WIP. Will save to Defaults when it is all said and done. ### ESTBeaconManager+UUIDGroup This is a small category to just make setting up the ESTBeaconManager easier for when we want to start ranging for estimote beacons.
There are (quite a few) initialization points available for this guy too by means of
NS_ENUM to keep things simple and yet expressive.
### ESTCompanion+BeaconStore This category is simply a way to persist iBeacons found/altered during ranging to the `NSUserDefaults`. The catch 22 to this is that the [Estimote's iOS SDK](https://github.com/Estimote/iOS-SDK) already allows you to save that information to the actual iBeacons - which is not what this is attempting to solve/duplicate ( unless you actually want to that is... ). This is just a easy way to store more information about them.
Checkout the Example for a very simple usage example
This is just a generic first attempt at it - will refactor/expand on this as the use cases arise. The hope is to allow support to multiple stores (
Core Data, remote, etc. ).
## Classes ### ESTCompanion Simple Object at this point. There are bigger plans for it, but for now, has a easy to use way of obtaining the string value from a CLProximity =P
There are a few other categories that are available to be explored in the Misc. folder if interested.
Currently holds just a few constants for dealing with User Defaults, logging, and creating string constants..
## Additional Information/Resources
Here is a small compilation of good resources, information and repositories relating to iBeacons.
NSString *proximity = [ESTCompanion sharedInstance] stringFromProximity:beacon.proximity];
- Estimote IOS-SDK - github repo
- BEEKN - Amazing site with all kinds of information relating to iBeacons
- Developing iOS 7 Applications with iBeacons Tutorial - Ray Wenderlich
- iBeacons Tutorial for iOS 7 with CLBeaconRegion and CLBeacon - DEVFRIGHT
- A Closer Look at the CLLocationManagerDelegate - DEVFRIGHT
- EstimoteEditor - github repo
- HiBeacons - github repo
Here is a screenshot for the curious:
## @todo's * Update the DetailViewController in the Example to reduce the number of imports needed. * This may also require some refactoring of the other imports and the order of those imports. * Establish a good, solid Object Structure and reduce the noise that kind of feels is starting to take shape already. This will be item #1 when main principals and ideas are realized and established. * Simplify checking for updates * May actually add an option to check for an update every `x` days, or on `z` day of the week. * ~~Update Example to show how to use the `BeaconStore` category~~ * Ability to define 3 beacons to work as triangulation points * Simplify managing the UUID/Minor/Major values * ~~Ability to change the "color" of a beacon ( 2 of mine were always showing up as teal - I'll update with my fix for this)~~ * ~~Replace the GroupUUIDDelegate with a block (or just add it as an option)~~ * Add block support to some other things * Add background routines for doing some work ( like updates and whatever ) with a single line. * etc. etc. that's enough as to not overwhelm myself for now. ## License See `LICENSE` included with this repo. Long story short - I'm a dev, you're a dev - we all make great stuff that works, but we also make shitty stuff that breaks...