You have to give the Wear OS believers a little credit: they have survived through Google’s start-and-stop investment patterns into the platform for nearly a decade with half-baked native apps and features left broken for longer than anyone is willing to admit. But if it’s been that way for users, just think about how much crap third-party developers have had to suffer to serve them. Today, as the Pixel Watch and Jetpack Compose for Wear OS are due to reinject some relevance back into the operating system, we talk with a dev who’s been with the platform since the start and find out what’s changed in Wear OS app development after all these years.
Greg Viczian, known most places as DYNA Logix, has been intimately involved with what was known as Android Wear since close to its inception, creating watch faces and other applets with his most renowned being the dual-mode, highly-customizable Bubble Clouds launcher – an app that has grossed more than a million installations.
We have edited Viczian’s responses to our interview questions for readability.
The Android Wear age
The first years of Android Wear were exciting, but incredibly frustrating for developers who were left to fend on their own.
“The earliest versions of Android Wear (1.x) had a much more limited SDK, scarce documentation, and little info on developer forums,” Viczian said.
As a developer who wanted to get in on the ground floor, however, Viczian had to take things into his own hands. Bubble Clouds offered users some of the most utility and customization that a Wear app package could offer throughout the v1 years. A community did eventually grow around Android Wear and he was able to take advantage of some homemade libraries to make more enhancements. He also spent plenty of time on complaints from his audience of power users, especially on battery and memory consumption. Both assets come at a premium in a tiny form factor, but they’re also in high demand given what people use to watch for: namely, to check the time.
But the novelty and mass curiosity over the platform wore off fast and by the time Google came around with Android Wear 2.0 in 2017, there was serious catching up to do.
“Google added watch-specific libraries to watch face complications, brought over billing and network-related libraries, and we received Material theming and design guidelines.”
But the same perceptual aura of malaise set in after a short time. When Google revamped Android Wear into Wear OS and introduced its Tiles UI in 2019, developers immediately homebrewed their own APIs and got them circulating well before the company had bothered to release an official one in 2021. Even with an official release, Viczian says, the builder-based implementation was “horrific.”
Change is a-happenin ‘
This year seemed like Google was turning the corner on developing for wearables. It convinced Samsung to let go of Tizen and help with Wear OS 3.0 and put arm grease into sprucing things up for app and watch face makers.
It’s exciting to see renewed interest in Wear OS on Google’s part: the updated APIs, guidelines, and tools. I was also very happy for Samsung’s retreat to Wear OS.
The Android Studio experience has been vastly improved with the ability to pair a phone to an emulated Wear device as well as debugging over Wi-Fi. Even the Tiles API was rebuilt to a more acceptable form. The Health Services API is particularly interesting to Viczian – he’s planning to use it to improve the power efficiency of his inactivity reminder app, Stand-up Alert.
The developer is also thrilled about Jetpack Compose specifically being tailored for Wear OS. But he’s not rushing to convert his existing projects over, especially considering the mountain of old code Bubble Clouds runs on.
I started to work on this app in 2014: some of the core parts of the app are 7-8 years old! There was no Kotlin, not even Material Design at that time. A lot has changed since the start of this project and it is becoming a challenge to keep everything working and familiar-looking for long time users (some of my favorite members of the user community have been around since the very beginning) and at the same time keep the app appealing to the new Galaxy Watch crowd, not to mention getting it ready for the Pixel Watch.
Bubble Clouds came out back when Android was still heavily into Java’s class inheritance model. It took a while before JetBrains’ Kotlin language and its complementary Jetpack Compose toolkit came into Google’s full embrace – it eventually did as the company announced Kotlin to be its Android language of choice in 2019. However, having to move into a function-oriented mindset and applying it to Bubble Clouds’ existing functions takes loads of effort. Add to that having to find replacements for deprecated APIs and you can probably picture a situation akin to a birthday cake lit with gag candles that can’t be blown out.
It always feels redundant to rewrite any part of an app due to API changes. Ain’t broke, why fix it? Over the years I had to update how background services worked and how rotary input is handled. I’ve redesigned the UI a couple of times and yet another UI redesign is due. Tile functionality is still using the unofficial API by Stringmon and converting it to the official API is still ahead of me. I am still using the deprecated ComplicationData library, which, at this point seems to be more reliable than the new, recommended API, but eventually I will have to switch.
What the future holds
Still, there is a good reason to Viczian’s wait-and-see approach. He was testing out some Compose libraries for his Fat Finger Scribble Calculator app and found that they increased his app bundle size by more than 40% – far from ideal when native storage remains stuck at 4GB on nearly all Wear OS watches.
“What we gain in shortening development work,” Viczian told me, “might impact app quality negatively with regards to primary development priorities.”
And that development may be for nought when OEM-level support sits failing. Viczian cited numerous issues developing with the Galaxy Watch4, including the loss of a number of complication-related functions for third-party apps as well as turning off the ability to hide persistent notifications – especially important to Bubble Clouds since it can show overlays on top of other apps and would thus need a persistent notification. He even had to integrate burn-in prevention into his always-on watch face since the Watch4 didn’t include such a feature.
But with Google’s renewed attitude towards Wear OS and a first-party device almost guaranteed to receive the attention and support it deserves, it looks like the platform could be ready to rejuvenate the confidence of its existing developer base, but welcome in a crop of new ones into the fold. And with 8 years of Stack Overflow threads and GitHub sample repos strewn through the internet, the hope is that it’ll be more fun and easier for newbies to put up apps than it ever was for the Viczian and the other Wear veterans out there .
Does Facebook know what you’re thinking about?