An update on Android

Hi everybody,

This is a different sort of blog post than we have done before at Pebble, so let me start by introducing myself. My name is Kean Wong, and I lead the software engineering group at Pebble. I wanted to grab a few minutes of your time to introduce myself and to bring you up to speed on some of the activities going on in the Pebble software group, particularly on our Android app development.

I joined Pebble in September of last year, and have been enjoying every day helping lead the software team to get the new 2.0 software shipped (more on that later in this blog). The software team is both going through a lot of growth, as well as looking carefully at how we are developing, testing, and releasing the Pebble software. I hope that you have started to see the impact of the hard work that we are doing to ship reliable, high-quality, innovative features for your Pebble.

I know that there are many passionate fans of Pebble using Android devices, and that you are all asking when Pebble will publicly release our Android Pebble application supporting the 2.0 software and the Pebble appstore. Our Android users are very important to the whole Pebble team, to the software engineering group, and to the management team at Pebble. Eric, Andrew, Myriam, and about half of the Pebble Team uses Android devices. I actually wear two Pebble watches (and look like a complete dork most of the time) so I can have one Android phone and one iPhone on me at all times, and can test both continually. Android is a hugely important platform for Pebble, and it will be critical to our ongoing success.

The 2.0 Pebble Android app is a pretty complex mobile app that utilizes many Android features that have nuanced and varying characteristics across different Android devices and Android OS versions. The Pebble Android app uses Bluetooth heavily, includes a Javascript runtime environment, accesses the internet and talks to the Pebble without interrupting the user experience, integrates with the Pebble appstore, works on a myriad of (over 1000) different Android devices, runs on 27 different versions and flavors of Android 4.x, and must continue to run in the background even if other apps in the system use up all the memory, or the Android device powers down or resets. All of this has to work elegantly and reliably for many thousands of Pebble Android users.

The reason why the Android version of the 2.0 Pebble app has lagged the iOS version is fundamentally pretty simple – it has purely been a matter of resources. In order to ship a high quality, reliable Android experience that will work for many thousands of users across the myriad of devices and operating systems, we need engineers working on the Android app who are both fantastic engineers and great Android developers. We have had a very small team working on the 2.0 Android app for a long time, building up the foundational pieces of the app (such as the Javascript environment, to expose the Javascript capability enabled in many new 2.0 Pebble apps), working on the appstore integration, and doing a huge amount of work on the user-onboarding process. Upgrading an existing Pebble 1.0 user to 2.0 involves a complex dance to make sure that no matter how old the operating system running on a user’s Pebble is, that we can upgrade them to 2.0. And in order to make sure that they can continue to enjoy the applications they have come to love that were built on the original 1.0 SDK, where at all possible we need to migrate those applications to 2.0 versions. New Pebble users (or those original Pebble fans who might be rediscovering the joy of owning a Pebble, now that 2.0 enables so many new types of applications) also need to be guided through setting up their device.

We have released previews of the 2.0 Android app through our developer program, and will keep refining the Android app until it is working well for all Android users – only at that point is it ready to go out the door. Those developers using Android devices should install the latest Developer Preview 2.0 Android app, and provide us feedback via our developer forums. The best way to help get the 2.0 Android app out to all Pebble users is to work with Thomas and Cherie, our developer evangelists, to give us effective feedback on bugs or issues you encounter using the Developer Preview.

Android appstore BETA    Android appstore BETA, locker    Android appstore Beta, watchfaces

We have been recruiting to expand our Android team for a while, and seeking to find Android experts who are great engineers, enthusiastic fans of Pebble, and who will fit in well working at Pebble. With the complexity of our application, even given the talented Android engineering community, not many Android engineers have applicable skills and experience to work on these types of apps. If you know top-notch Android engineers, please refer them to our job site – we have a lot of interesting, challenging work to do, and huge opportunities to create awesome Pebble experiences on Android.

Stepping away from Android, Pebble is continuing to grow our software group across the board, and we are hiring embedded, kernel, Pebble applications, Android, iOS, Bluetooth, javascript, web front-end, web back-end, test automation, internationalization, build infrastructure, and data analytics engineers. There really are few companies in the world, especially companies small enough to where an individual engineer’s work has a huge impact on the company, who are working on everything from bit-twiddling to big data, and who are building mass market consumer products and a flourishing developer ecosystem.

As we move through 2014, we will mention a few more of our awesome engineering team members, and some of the exciting projects we’ve been working on to make both the user experience as well as the developer experience on Pebble better and better. We are working very hard to deliver on our commitment, to you, to make Pebble the best smartwatch on the planet.

In the next few months, I look forward to sharing more behind-the-scenes blog posts from engineering, including:

  • How we converted over 130,000 watchfaces from Paul Rode’s Watchface Generator (built on the previous 1.x SDK) to run on the new 2.0 software, and automagically upgrading generated watchfaces when people updated to Pebble firmware 2.0.

  • How ANCS notifications work on iOS 7 devices with Bluetooth Low Energy: the lowdown on challenges we addressed in adding full support, and why ANCS notifications behave the way they do.