Master
ThoughtWorks
菜单
关闭
  • 产品及服务
    • 概况
    • 客户体验与产品设计业务线
    • 数据战略、工程及分析业务线
    • 数字化转型及运营业务线
    • 现代化企业、平台及云业务线
  • 合作伙伴
    • 概况
    • 汽车企业
    • 医疗企业
    • 公共服务机构
    • 清洁技术,能源与公用事业
    • 媒体和出版业
    • 零售业和电商
    • 金融和保险企业
    • 非盈利性组织
    • 旅游业和运输业
  • 洞见
    • 概况
    • 特色

      • 技术

        深入探索企业技术与卓越工程管理

      • 商业

        及时了解数字领导者的最新业务和行业见解

      • 文化

        分享职业发展心得,以及我们对社会公正和包容性的见解

    • 数字出版物和工具

      • 技术雷达

        对前沿技术提供意见和指引

      • 视野

        服务数字读者的出版物

      • 数字化流畅度模型

        可以将应对不确定性所需的数字能力进行优先级划分的模型

      • 解码器

        业务主管的A-Z技术指南

    • 所有洞见

      • 文章

        助力商业的专业洞见

      • 博客

        ThoughtWorks 全球员工的洞见及观点

      • 书籍

        浏览更多我们的书籍

      • 播客

        分析商业和技术最新趋势的精彩对话

  • 加入我们
    • 概况
    • 申请流程

      面试准备

    • 毕业生和变换职业者

      正确开启技术生涯

    • 搜索工作

      在您所在的区域寻找正在招聘的岗位

    • 保持联系

      订阅我们的月度新闻简报

  • 关于我们
    • 概况
    • 我们的宗旨
    • 奖项与荣誉
    • 多元与包容
    • 领导层
    • 合作伙伴
    • 辅助功能
    • 新闻
  • 联系我们
China | 中文
  • United States United States
    English
  • China China
    中文 | English
  • India India
    English
  • Canada Canada
    English
  • Singapore Singapore
    English
  • United Kingdom United Kingdom
    English
  • Australia Australia
    English
  • Germany Germany
    English | Deutsch
  • Brazil Brazil
    English | Português
  • Spain Spain
    English | Español
  • Global Global
    English
博客
选择主题
查看所有话题关闭
技术 
敏捷项目管理 云 持续交付 数据科学与工程 捍卫网络自由 演进式架构 体验设计 物联网 语言、工具与框架 遗留资产现代化 Machine Learning & Artificial Intelligence 微服务 平台 安全 软件测试 技术策略 
商业 
金融服务 全球医疗 创新 零售行业 转型 
招聘 
职业心得 多元与融合 社会改变 
博客

话题

选择主题
  • 技术
    技术
  • 技术 概观
  • 敏捷项目管理
  • 云
  • 持续交付
  • 数据科学与工程
  • 捍卫网络自由
  • 演进式架构
  • 体验设计
  • 物联网
  • 语言、工具与框架
  • 遗留资产现代化
  • Machine Learning & Artificial Intelligence
  • 微服务
  • 平台
  • 安全
  • 软件测试
  • 技术策略
  • 商业
    商业
  • 商业 概观
  • 金融服务
  • 全球医疗
  • 创新
  • 零售行业
  • 转型
  • 招聘
    招聘
  • 招聘 概观
  • 职业心得
  • 多元与融合
  • 社会改变
San Francisco体验设计技术

Beacons Provide Modern Take on Scavenger Hunt

Alexandra Price Alexandra Price

Published: Feb 19, 2014

It was the holiday party season and we wanted to create an interesting application to show off our freshly delivered developer preview of Estimote Beacons – low power, low cost bluetooth sensors. What better than a scavenger hunt app in San Francisco to take advantage of the micro-location based nature of the beacons, while testing it out on other ThoughtWorkers?

Here’s what we learned.

The Tech

Let’s start with a look at the technology. These beacons are enabled by Bluetooth 4.0, a low power iteration of Bluetooth championed by hardware like Fitbit and smart watches. The batteries in the Estimote Beacons are purported to last two years.

Strengths of the Estimote Beacon include long battery life, it can be used indoors and outdoors, and it’s compatible with iOS and Android. On the downside, the proximity measurement isn’t very precise. It uses the registered strength of the bluetooth signal, which is finicky, as well as easily disrupted by physical objects. There’s also no directional measurement – directional functionality requires other measurements like the compass or GPS.

The lack of precision wasn’t a showstopper though. We tested RSSI (Received Signal Strength Indicator) readings for the beacons at different distances. Despite the fluctuation, our chosen RSSI threshold for finding a clue reliably corresponded to two to four feet.

We designed our app for use with iOS 7 (Estimote Beacons can also be used with Android devices, but the SDK was released a week too late for us). We built a clean interface with built in beacon interactions – the background and message on the bottom bar changed depending on proximity of the clue’s Estimote Beacon.

Check it out on github (https://github.com/shanear/beacon_finder)

We had some extra time towards the end of the week, so we added a web scoreboard element. We built it with a Ruby on Rails based API and some cool fonts.

The Event

The scavenger hunt was more than just building the app. We asked some folks around the office for their favorites spots and took five of the best ones. We scoped out the top picks throughout the week, took pictures, and assessed good spots for the beacons. When we dropped the beacons off, we found that businesses were excited about the publicity. As for the public parks, we only got a few weird looks while casually hiding them in shrubberies.

Since the app store is slow, we also needed a good way to distribute the app to teams. TestFlight was recommended to us, but is difficult to set up for non-devs without some assistance. Since the event was starting in the office, we decided to install the app on each device manually, and the process went surprisingly smoothly.

The night of the party we had six teams (each between two to four people) sign up. We could send teams out at different times because the app kept track of their total start-to-finish time for scoring.

We then headed over to the party to meet the teams as they finished up over the course of the next hour or so. One team emerged victorious, as they were the only team able to find every single location.

Four Lessons learned

  1. Estimote Beacon Sensitivity Testing
    Test on location – we might have been able to figure out that some of our hiding spots were too difficult, but we didn’t have the app running when we actually placed the beacons. One person had to reach all the way over the bar at one location before the app declared that location “found.”
  2. Event Planning
    We reached a little on the walking distance for the scavenger hunt to fit in all of our locations, and it might have been too much. A couple teams gave up, or aggressively skipped. Turns out people will rush through an activity that ends at an open bar. We could have thought more about that.
  3. iOS Best Practices
    Being from development backgrounds of languages and frameworks with stronger communities, we were surprised by how hard it was to find good example code and best practices online for iOS development. Maybe books are the way to go?
  4. Website Bug
    We knew adding an untested feature near the end of the project was risky, but we thought a web API would be fun. We figured it wouldn’t harm the actual scavenger hunt if it wasn’t perfect. There did end up being a bug. API request URLs for teams with a space in their names were incorrect, and didn’t update them correctly. The bug didn’t affect the app experience, but hampered our ability to use the web scoreboard (we did update it manually though).

Thanks to my co-authors Shane Russell and Maurício Silveira Sanches. 
Interested in reading about different uses for Beacons? Check out the best of NRF write-up. 

Technology Radar

Don't miss our opinionated guide to technology frontiers.

Subscribe
Master
政策声明 | 现代奴役声明 | 辅助功能
Connect with us
×

WeChat

QR code to ThoughtWorks China WeChat subscription account
© 2021 ThoughtWorks, Inc.