A Guide to Beacons by Noor Murteza and Maddie Sabatelli developed for DSN 6400, Assignment 2
KEYWORDS API - short for application programming interface, an API is a set of programming instructions and standards for accessing the functionality of an operating system, software application, or utility. Software developers release their APIs to the public so that other developers can take advantage of their products’ functionality and services in their own projects. AppDelegate - is an object which receives notifications when the UIApplication object reaches certain states. In many respects, it is a specialized one-to-one Observer pattern. This means that the “area of concern” for the AppDelegate is handling special UIApplication states BLE - bluetooth low energy beacon, technology that enables smartphones, tablets and other devices to perform actions when in close proximity to a beacon. Bluetooth beacons use Bluetooth low energy proximity sensing to transmit a universally unique identifier picked up by a compatible app or operating system. Cocoa Touch - is a UI framework for building software programs to run on iOS for the iPhone, iPod Touch, and iPad, watchOS for the Apple Watch, and tvOS for the fourth-generation Apple TV, from Apple Inc. Cocoa Touch provides an abstraction layer of iOS, the operating system for the iPhone, iPod Touch, and iPad.
Estimote - is a company that builds apps for the physical world and innovate by creating an online-offline bridge with iBeacon, Bluetooth Mesh, wireless sensors and indoor location technologies. Eddystone - is an open beacon format developed by Google and designed with transparency and robustness in mind. Eddystone can be detected by both Android and iOS devices. The Eddystone format builds on lessons learned from working with industry partners in existing deployments, as well as the wider beacon community. Frameworks - hierarchical directories that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package. GUI - Graphical User Interface (GUI), which lets you install IPA files on iOS devices. Cydia Impactor is available for widespread operating systems including Windows, Mac, Linux Headers - allow you to import a Objective-C code into a Swift Xcode project (this allows you to communicate with your old Objective-C classes from your Swift classes) Immutable - a value that cannot be changed (or mutated) after it’s initialized, like a constant. IDE - Integrated Development Environment, a development tool (or collection of tools) used to develop for particular languages, including code editors, compilers, debuggers, and other utilities. .ipa - (iOS App Store Package) file is an iOS application archive file which stores an iOS app. Each .ipa file includes a binary for the ARM architecture and can only be installed on an iOS device.
Jailbreak - paves the way for iPhone, iPad and iPod Touch owners to add more functionality to their devices than what is offered in a standard Apple gadget. Cydia and Installer are two of the most popular App Store alternatives that offer interesting apps for jailbroken iPhones and iPod Touches. let - Swift function that defines a constant Minor/Major Values - are numbers assigned to your iBeacons, in order to identify them with greater accuracy than using UUID alone. Minor and Major are unsigned integer values between 0 and 65535. Nearables - (also nearable technology) is a term used to describe the idea of smart objects – everyday items with small, wireless computing devices attached to them. Those devices can be equipped with a variety of sensors and work as transmitters to broadcast digital data, usually using Bluetooth Smart protocol. Nib - Interface Builder is a software application which allows you to develop Graphical User Interface with the help of Cocoa and carbon. The generated files are either stored as NIB or XIB files. A nib file is a special type of resource file that you use to store the user interfaces of iOS and Mac apps. OTA - (or Over-The-Air) is a standard for the transmission and reception of application-related information in a wireless communications system. The standard is supported by Nokia, SmartTrust, and others. Provisioning Profile - is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code.
Range - As opposed to monitoring, which enables users to detect movement in-and-out of range of the beacons, ranging provides a list of beacons detected in a given region, along with the estimated distance from the user’s device to each beacon.[12] Ranging works only in the foreground but will return (to the listening device) an array (unlimited) of all iBeacons found along with their properties (UUID, etc.) An iOS device receiving an iBeacon transmission can approximate the distance from the iBeacon. The distance (between transmitting iBeacon and receiving device) is categorized into 3 distinct ranges: Immediate: Within a few centimeters Near: Within a couple of meters Far: Greater than 10 meters away SDK- A software developer’s kit (SDK) is a set of programs used by a computer programmer to write application programs. Typically, an SDK includes a visual screen builder, an editor, a compiler, a linker, and sometimes other facilities.
KEYWORDS Swift - is a programming language developed by Apple Inc for iOS and OS X development. Swift 4 adopts the best of C and Objective-C, without the constraints of C compatibility. UUID is a 128-bit value, known as Universally Unique Identifier or UUID(for simplicity in this text I’ll stick to the UUID term). This value is one that distinguishes one iBeacon from another. UIKIt - A Cocoa Touch framework for working with the user interface (UI) layer of an iOS app. var - Swift function that defines an ordinary variable ViewController - is an object that manages a set of views and coordinates the flow of information between the app’s data model and the views that display that data. WKWebView - an object that displays interactive web content, such as for an in-app browser. In Xcode, “class WKWebView : UIView” Xcode - is the integrated development environment (IDE) from Apple that is used to create, compile and test Mac OS X and iOS (iPhone/iPad/ iPod) applications.
SYMBOLS // Used for single-line comments at the beginning of the comment.
/* Used for Multi-line comments start with and terminate comment. ? indicates that the value it contains is optional, meaning that it might contain some Int value, or it might contain no value at all == Equal to != Not equal to ! used at the end of an optional’s name if an it does contain a value [ ] declares an array { } represents the scope of a method, where it starts and where it ends
RESOURCES 3rd Party resources. (2018, October 21). Retrieved from Estimote Forms: https://community.estimote.com/hc/en-us/articles/202254358Building-an-app-Useful-3rd-party-resources.
“Coding De-Coded: 18 Terms New Programmers Should Know.” (2016, May 1)LinkedIn. https://learning.linkedin.com/blog/tech-tips/coding-decoded--18-terms-new-programmers-should-know.
Bronner, S. (2011). The Rise and Fall—and Return—of the Class Rush: A Study of a Contested Tradition. Western Folklore, 5-67.
Cydia Impactor. (2018, October 21). Retrieved from http://www. cydiaimpactor.com/.
Brown, O. (2017, May 8). iBeacon Tutorial with iOS and Swift. Retrieved from Raywenderlich: https://www.raywenderlich.com/632-ibeacontutorial-with-ios-and-swift
Dages, W. (2014, October 11). Getting Started with iBeacon: A Swift Tutorial. Retrieved from Willd: https://willd.me/posts/getting-startedwith-ibeacon-a-swift-tutorial.
Brynes, D. (2015, September 24). #THROWBACKTHURSDAY: OHIO STATE’S 1915 CANE RUSH. Retrieved from Eleven Warriors: https:// www.elevenwarriors.com/the-ohio-state-university/2015/09/60202/ throwbackthursday-ohio-states-1915-cane-rush.
Dages, W. (2016, October 5). Closest Beacon Demo. Retrieved from GitHub: https://github.com/willdages/closest-beacon-demo.
Cane Rush . (1931, October 5). Ohio State Lantern. Columbus, Ohio: The Ohio State University. Cane Rush, Tug-Of-War Top Today’s May Program. (1950, April 5). Ohio State Lantern. Columbus, Ohio: The OHio State University. CodeWithChris. (2015, December 15). CocoaPods Tutorial - How to install and setup Cocoa Pods for Xcode. Retrieved from YouTube: https:// www.youtube.com/watch?v=oNKVVBN2JN0.
Developer Docs. (2018, October 21). Retrieved from Estimote Developer: https://developer.estimote.com. Dorbik. (2013 , May 30). Long Gone Campus Traditions: Cut-throat competition for the cane. Retrieved from OSU Libraries: https://library. osu.edu/blogs/archives/2013/05/30/long-gone-campus-traditions-cutthroat-competition-for-the-cane/. First Cane Rush In 20 Years Won By Sophomores. (1948, November 5). Ohio State Lantern. Columbus, Ohio: The Ohio State University. Goerler, R. (1992, October 6). The Cane Rush: An Historical Study of the Birth, Institution, and Death of a Campus Tradition. Columbus, Ohio: The Ohio State University. How do Beacons Deliver Content to Mobile Devices. (2018, October 21). Retrieved from Estimote Forms: https://community.estimote.com/hc/ en-us/articles/200848086-How-do-beacons-deliver-content-to-mobiledevices.
Goerler, R. (1992, October 6). The Cane Rush: An Historical Study of the Birth, Institution, and Death of a Campus Tradition. Columbus, Ohio: The Ohio State University. How do Beacons Deliver Content to Mobile Devices. (2018, October 21). Retrieved from Estimote Forms: https://community.estimote.com/hc/ en-us/articles/200848086-How-do-beacons-deliver-content-to-mobiledevicesHow to Make an App for Beginners - Lesson 5 (Swift Programming Basics). (2017, October 24). Retrieved from YouTube: https://www. youtube.com/watch?v=-zIBlg-I5BY Hudson, M. (2016, January 5). Login Register InstantiateViewControllerWithIdentifier. Retrieved from YouTube: https://www.youtube.com/watch?v=6lktogIOMOs Keep The Cane Rush . (1916, June 4). Ohio State Lantern. Columbus, Ohio: The Ohio State University . MAGNETAR. (2017, January 28). Export an IPA From Xcode Without an Apple Developer Account. Retrieved from Medium: https://medium.com/ m%CE%BBgn%CE%BEt%CE%BBr/how-to-export-a-ipa-file-from-xcodewithout-a-dev-account-bac8b2645ad3 Minicons. Adobe Illustrator. www.webalys.com/minicons. ‘No Cane Rush This Year’ Senate Officials Say After Past Flops. (1934, March 10). Ohio State Lantern. Columbus, Ohio: The Ohio State University. Nova. Adobe Illustrator. www.webalys.com/nova.
Products. (2018, October 10). Retrieved from Estimote : https:// estimote.com/products/. “Ranging Beacons Only Works When App Running?” Stack Overflow. https://stackoverflow.com/questions/19141779/ranging-beacons-onlyworks-when-app-running/19152814#19152814 RPI Cane Rush. (2018, October 21). Retrieved from Library Archives: http://www.lib.rpi.edu/archives/traditions/rushes/cane_rush.html. Senate to Decide Cane Rush Future. (1931, October 14). Ohio State Lantern. Columbus, Ohio: The Ohio State University . “Start Developing iOS Apps (Swift).” Apple. https://developer.apple.com/ library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ GlossaryDefinitions.html. “Swift Tutorial.” Tutorials Point. https://www.tutorialspoint.com/swift/ index.htm. “Technology Dictionary.” Techopedia. https://www.techopedia.com/ definition.
RESOURCES The Annual Cane Rush . (1915, September 28). Ohio State Lantern. Columbus, Ohio: Ohio State University. The Swift Guy. “How to Create a Scroll View in Xcode 8 (Swift 3.0).” (2016, November 22). Youtube. https://www.youtube.com/ watch?v=LhhW3xqhCzg Theodororulos, G. (2015, March 15). Developing iBeacons Apps with Swift. Retrieved from Appcoda: https://www.appcoda.com/ibeaconsswift-tutorial/. Using iPhones as iBeacons. (2016, October 20). Retrieved from StackOverflow: https://stackoverflow.com/questions/34620735/usingiphones-as-ibeacons.