There’s a plethora of articles and resources for consumers to decide which smartwatch fits their needs best. Here at CodeFlügel, we are consumers too, but developers at heart. So we took a look at the smartwatch landscape as it is at the moment.
What concerns us as developers first and foremost is the platform the hardware runs on. We identified the five platforms we see becoming more prevalent in the future:
- watchOS, the operating system powering the Apple Watch
- Android Wear, the Android spin-off for wearables
- Tizen, the Samsung-backed operating system
- Android, as in full-featured Android running on a wearable
- Pebble OS, the operating system powering the Pebble watches
At the moment, another important distinction can be made when selecting platforms, but these lines will most likely blur in the future:
- Smartwatch as a companion device: watchOS, Android Wear, and Pebble OS are intended to be used in combination with a smartphone.
- Smartwatch as a stand-alone device: Some Tizen and Android wearables can be used as complete stand alone devices without a paired smartphone.
Which features can a developer expect?
When talking about a smartwatch, we can assume the following features (with a few exceptions) at the moment:
- A touchscreen and/or buttons
- Vibration, microphone, heart rate monitoring (ECG/PPG), ambient light sensor
- WiFi, Bluetooth 4.0, NFC connectivity
- Dust and water proof
- 4 to 8GB onboard storage
- Depending on the device, display resolutions from 272×340, 320×320, 312×390, up to max. 360×480
- Exchangeable watch bands
Some smartwatches omit one or two of the features, others add special features like the following:
- GPS, Bluetooth 4.1, other sensors (e.g. barometer, …)
- Additional navigation methods like force touch, digital crown, rotating bezel, gestures
- Additional stand-alone features
- Ability to run apps natively on the watch
- Display form other than square or rectangle, e.g. round or curved
Let’s take a closer look at the aforementioned platforms, starting with watchOS.
The Apple Watch itself comes with a very rich set of features and more. From a developer’s perspective, however, it doesn’t expose many of those features to the common 3rd party developer and the use of the Apple Watch as a stand-alone device is very limited. With the introduction of watchOS 2, Apple has fixed many shortcomings of the initial launch version, but the NFC and Bluetooth APIs remain inaccessible for third party developers. While running apps natively on the watch is possible now, every watch must be connected to an iPhone and multiple pairings are not possible. Developing for watchOS requires an Apple Developer Account, Xcode, the WatchKit SDK, and using Swift or Objective-C.
Android Wear is the Android spin-off for wearables, and as such it’s free to use as a platform for companies producing smartwatches. There’s a vast array of smartwatches powered by Android Wear, such as the Motorola Moto 360, LG G Watch, LG Watch Urbane, LG Watch R, Asus Zenwatch 2, Sony Smartwatch 3, and the Samsung Gear Live. Recent improvements on this platform have given third party developers much more freedom, as it is now possible to run apps natively on the watch, connect to the cloud and communicate with the phone over different WiFi networks (as long as the watch has internet access). While it is possible to access the Bluetooth API, the NFC API doesn’t seem to be implemented yet. An Android Wear smartwatch can be paired with Android or iOS devices and multiple smartwatches can be paired to one Android device at the same time. Developing for Android Wear requires Android Studio with the Android Wear SDK, using Java.
Few smartwatch manufacturers have decided to use Android in its complete form on a smartwatch. However, there are some that do so. Running full Android on a smartwatch doesn’t really impose any more restrictions than running it on a smartphone, but the user experience might not be as good as on a smartwatch that runs an OS designed for its size. A good example of a smartwatch running Android is the Omate TrueSmart and its follow-up versions. From a developer’s perspective, it is like developing for an Android smartphone, though with size restrictions regarding the display. Development requires Android Studio with the Android SDK, using Java.
As we can see, which of those smartwatches will suit you best essentially depends on your requirements to it. For complex apps that require access to hardware features and/or stand-alone functionality, Tizen and full Android seem to be the best fits. The Pebble, Android Wear and watchOS smartwatches work best in cooperation with a connected smartphone. As these platforms improve the APIs, the exposure of their features to developers will grow. At the moment, however, developing for a smartwatch feels like having to commit to one of the major mobile platforms.