This is a story about the making of Bluetooth® Developer Studio. It is also a claim that you should care about Bluetooth Developer Studio, because you probably care about Bluetooth Smart, and you care about software development that has good results.
Bluetooth Special Interest Group (SIG) had a vision for making it easy, reliable and reproducible to prototype, prove and publish Bluetooth Smart-based services. Imagine the excitement we felt when they engaged us to turn this vision into an entirely new tool for Bluetooth Smart development.
This tool would let you put together a model, in software, of a physical Bluetooth device; test it on a virtual workbench; express that model in the real-world scripts or sketches required by specific chipsets; spit out companion code for apps that will work with that device; and even test the physical Bluetooth device you have created. If that’s not enough, the tool would need to achieve objectives of cutting Bluetooth learning time, speeding up time to market and providing a quality end-user experience.
A tool like no other
The many functions of this tool reflect the variety of real-world users in the target demographic: a startup putting together a prototype to get funding; a systems integrator preparing complex hardware for Bluetooth certification and mass production; an app developer with an idea to create a user experience with physical world connections. All these groups, and more, bring different and valuable insight into what they need, and how they want to work. And Bluetooth Developer Studio must satisfy each group according to its needs.
So, where to start? Was there an obvious standard type of software template we could use? Not really. While hardware manufacturers have their own internal tool chains, and platform vendors make IDEs for app development, there is nothing out there that is quite like what we imagined for Bluetooth Developer Studio (BDS). In order to come up with the right user experience, we had to understand three big questions:
- What is Bluetooth Smart?
- Who is going to use this tool?
- And Why?
Bluetooth Smart is the brand for what many in the industry call Bluetooth Low Energy. Bluetooth Low Energy is, at its core, a simple concept: a server calculates and exposes values; a client uses and updates those values. Around that core idea is a world of clever, inter-related logical building blocks made up of power management, radio technology, encryption, communication and objects. Luckily for us, we knew that the low-level radio behavior was out of scope. But still we had to understand the intricacies of GATT and GAP, profiles, services and characteristics, and how the many parts relate to each other in the context of a real-world product.
Two Worlds: One Vision
James Morse and Rik Dodsworth, leading the design and architecture on the project, spent a week with Bluetooth Special Interest Group (Bluetooth SIG) in Kirkland, Washington.
As the yachts bobbed on the lake, with Seattle in the background, the two groups shared ideas and understanding about the technology, the users, and the context. We learned more about Bluetooth; we shared insight into giving software a purpose, and making it work for target users. Together we came up with a mission statement for the app:
Taken as is, this statement could sound bland or devoid of meaning. On the contrary: the more you dig into what Bluetooth Smart does, and who it is for, the more this guiding statement helps in making the right decisions when building a tool.
Both teams got to work in roughing out and validating user experience concepts to support this mission statement. We quickly settled on a few guiding principles:
Don't be scary
We moved user log-in to the end of the process, so that you can get your hands dirty and make something before being asked to sign in.
Encourage play and discovery
A drag and drop interface for profiles and services allows instant gratification as the user experiments with the building blocks of a profile.
Show only what is necessary
The visual device of cards allow the tool to abstract the detail while allowing the user to dig in for detail. Nested cards show logical hierarchies without overwhelming with a large tree control.
Focus on the fun
We wanted to take away the admin tasks of filling in multiple data fields about the project but not essential to the project. BDS collects information intelligently as the user builds up the profile, removing the need for ‘paperwork’.
Don't limit discovery
Allow power users to go beyond, with a powerful scripting engine for testing both server and client.
Play nice with all platforms and tool chains
A versatile plug-in framework should allow a BDS user to produce source code in any language, project files and scripts for other IDEs and platforms.
Bluetooth Developer Studio should be a learning tool as well as a production tool. The Bluetooth Smart specifications run to hundreds of pages, and there is a lot of important detail to master regardless of your aims. Nonetheless, we wanted BDS to be useful and usable quickly, while still giving you a powerful tool for creating Bluetooth Smart projects. In parallel, we and the SIG are working on tutorials, sample projects and ‘appcelerators’ to help you get results quickly and understand the principles of Bluetooth Smart in the context of BDS.
Create. Learn. Repeat
Why do we what we do? To learn. To get dirty with new technology. To help others get the benefit of the next cool thing. And often, whenever we can, to be surprised by a new challenge.
Bluetooth Developer Studio continues to give us all of that, and more. It is in the hands of hundreds of beta testers right now. We continue to work with Bluetooth SIG in refining the user experience to make it work for the people who are going to use it in the real world. It is a thrill to be able to hear hundreds of developers talk about what’s important to them, and how any tool we create could help them solve real problems, be more productive, and work better.
This is exciting. The journey continues …