Friday, July 26, 2024

Sonos Apologizes for App Redesign

Marco.B:

Today we are introducing the most extensive app redesign ever, creating an unprecedented streaming experience that allows listeners to organize their favorite playlists, stations, albums and more from over 100 services on one customizable Home screen.

The new Home screen provides faster access to Sonos system controls with one easy swipe up, making tab to tab jumping a thing of the past. As a leader in sound experience that’s focused on creating a better way to listen, Sonos intentionally redesigned the app on a modern software platform for an easier, faster and better experience that can support more rapid innovation.

DianeRoberts (AMA):

The app is not exclusively built with Flutter, but does make use of Flutter for certain portions of the setup experience. We’ve actually been using Flutter for those experiences for many years, and ported that forward to the new app.

The majority of the app is in fact native. On iOS that means Swift, using SwiftUI. On Android that means Kotlin, using Jetpack Compose.

Juli Clover (forum threads):

Sonos this week released a major redesign for the Sonos app, introducing customizable home screen meant to deliver a personalized listening experience. The update was announced back in April, but just went live, and unfortunately, it removes a number of features while also introducing several bugs.

Multiple complaints on social media have called the app a “step back” with missing features like editing a song queue, managing playlists, shuffling a music library, and setting alarms and timers, along with slow performance and hard-to-access system controls. There has also been feedback from users about missing accessibility features.

The Verge asked Sonos about the negative feedback, and in response, Sonos said that it’s aware of the complaints, but “it takes courage” to rebuild a core product.

Juli Clover:

Sonos CEO Patrick Spence today penned a blog post on the Sonos website apologizing for the controversial Sonos app redesign and promising ongoing updates throughout the year.

Spence said that improving the app for customers is the company’s number one priority, and he explained that addressing bugs that came up in the new app delayed the introduction of additional features.

Previously:

Update (2024-08-01): Juli Clover:

Sonos community manager Keith Nieves confirmed the bug fix on Reddit (via The Verge), stating that the latest version of the app addresses an unspecified issue that was causing excessive battery use on some Apple devices. There have been several complaints about the app’s battery usage over the course of the last week, with the Sonos app running constantly in the background.

Unfortunately, several Reddit users have since said they’re having issues with the update, which seems to be causing a “No System Found” error message. This is a bug that existed previously, but the update seems to have increased the frequency of the error.

Update (2024-08-15): Chris Welch:

Sonos laid off approximately 100 employees this morning, a source familiar with the situation tells The Verge.

[…]

These latest cuts come as Sonos continues to grapple with the fallout from its disastrous mobile app redesign. On Sonos’ earnings call last week, CEO Patrick Spence stressed that fixing the app is the company’s number one priority — so much so that two hardware launches planned for later this year have now been delayed to keep all focus on the app.

Eric Slivka:

Just a few months after debuting an all-new mobile app for controlling its audio products, Sonos is considering bringing back the previous version of the app following numerous user complaints, reports The Verge.

Update (2024-08-21): Jay Peters (via Hacker News):

If you want the old Sonos app back, it’s not coming. In a Reddit AMA response posted Tuesday, Sonos CEO Spence says that he was hopeful “until very recently” that the company could rerelease the app, confirming a report from The Verge that the company was considering doing so. But after testing that option, rereleasing the old app would apparently make things worse, Spence says.

[…]

The trick of course is that Sonos is not just the mobile app, but software that runs on your speakers and in the cloud too. In the months since the new mobile app launched we’ve been updating the software that runs on our speakers and in the cloud to the point where today S2 is less reliable & less stable then what you remember.

Andy Pennell:

For the new app, Sonos threw out all of the old app code, a “clean slate” approach, replacing the front-end (the UX everyone loves to hate) and also the back-end (that actually communicates with speakers and music services).

[…]

When the app starts, it must find your speakers as a critical precursor to anything else, but for some inexplicable reason they decided to drop SSDP and rely entirely on mDNS for device discovery. I don’t know much about mDNS (as my own Sonos apps have never used it), but evidently this new way of finding speakers on the network has proven hugely problematic.

[…]

As all traffic is now encrypted, it takes more CPU cycles for every network call: client encrypts it, sends it (TLS is a lot more chatty), and the speakers have to decrypt it before they can do anything. The crypto overhead is going to be a challenge on the older Sonos devices, which have tiny amounts of RAM (as low as 64MB compared to 8GB of the latest Sonos devices) with a similar disparity in CPU power. Also the cloud API is more “chatty” than the UPnP API, multiplying the network overhead.

[…]

Another reason for the reduced performance is how music services now work: in the old app, the app made SMAPI calls directly to each music service (eg Apple, Spotify, etc), to enumerate items and get artwork. The new app instead calls into the Sonos cloud to do all of this, and then their cloud service makes the SMAPI calls to get the data (I assume), then it returns that data back to the app. Even for artwork! That’s a lot more networking traffic and a lot slower than before.

Eric Schwarz:

I don’t know what’s more infuriating—that a networked speaker manufacturer can’t seem to get networked speakers to work properly or that these require the cloud even for something as simple as AirPlaying content from within your own home network.

Update (2024-09-06): Ryan Christoffel:

Sonos has launched a public roadmap for its future. A new Trello board tracks fixes in the app and outlines what’s coming next.

denominator (via Hacker News):

In short, I’ll summarize my rant before story time - as a prior employee of Sonos, I believe that incompetence has infected top management at the company. Incompetence in management, incompetence in Software, SOFTWARE OH MY GOD this App roll-out, this roadmap.. is a joke.

11 Comments RSS · Twitter · Mastodon


They removed so many features and screwed up so many of the ones they retained. It’s a bad app - not because of design but lack of reliable functionality. I’ve already moved my main stereo away from them.

Great speakers but bad bad software now. I’m not in a hurry to get rid of the rest because they are still fine with airplay, but am not planning on upgrading anything or recommending them to anyone.


Lordy, all these apps moving to SwiftUI are Josh Shaff-ing. Bring back Scott Forstall


Maybe we can get a list of shaff-ed SwiftUI apps?


Christopher Brandow

This really is fascinating, because we absolutely cannot know whether the problem with this redesign on the iOS side is a SwiftUi problem, or just a “dangerous of a massive reactor” problem. In this case, the complaints about android, might absolve SwiftUI, depending on how independently they were designed and implemented.

Yeah, I am not aware of a massive swiftUI refactor that has gone well. Truly, I may simply not be aware of some that may exist. But this plus overcast plus MacOS system settings all feel like cautionary tales.

Because the problems are not purely technical ones in all cases, but often design and feature related, it is making me wonder if a swift UI – first approach is subtly pushing developers in a certain direction design-wise that is hard to notice, but when compared head to head feels like a downgrade.

My own biases are definitely a play, some truly just trying to keep learning.


I've recently redesigned my app completely in SwiftUI. This has moved it from a UIKit / AppKit based app into 90% SwiftUI based app.

I wrote about the design changes here:

https://www.magiclasso.co/insights/magic-lasso-redesigned/

What I did notice going through the process though is that if you base the implementation on the SwiftUI defaults you will definitely get some strange, and especially on macOS, less than ideal behaviour. This led me to not use some of the inbuilt SwiftUI approaches for certain UI elements. Instead, I created custom implementations that better fit within user expectations and best practice iOS and macOS conventions.

This did lead to extra work but I think the polish in the end is worth it. Can see how if you just use default UI behaviours in SwiftUI you may come up with a less than ideal approach, ala macOS System Settings.


@Matthew thanks for sharing your story. I think this discussion is important to have for the developer community.

Being that your app is an ad-blocker, isn’t most of the “meat” of your app in the Safari extension as opposed to the SwiftUI app where the user configures preferences? I’m not trying to minimize your work. All apps from the outside look easier to make than they actually are. Just asking.


And you just know a couple of low level employees pushed back and warned this would happen, but of course the higher ups ignored them.


@Objc4Life, yes a lot of the meat of the app is in the extensions. However there is quite a lot of UI required for configuration, setup, settings etc. Looking at the Sonos app, it may be a bit more, but not considerably more, complex than Magic Lasso.

A huge part of the work was actually prototyping approaches in SwiftUI to see what works well and what doesn't. Once a clean path was discovered, the final implementation was relatively straightforward but it was based upon those learnings. The hard part was ensuring simplicity and not falling into the many traps of weird behaviour that are present in the System Settings UI for instance.

Personally I prefer working in SwiftUI now – probably because I no longer need to implement two similar UIs in both UIKit and AppKit.

Though I also have some UI in the Web Extension which is actually built in HTML/CSS/JS and replicates native UI visuals. This does not use SwiftUI, so there is a bit of duplicate effort still present.


The app is fine, but it’s a minimal viable product that’s missing tons of features. Casual users don’t use those features — I haven’t missed anything, and like the app much better than its predecessor the few times I’ve touched it — but the most engaged users lost a ton of functionality. And those are the people who recommend Sonos to friends and family. Sonos should have rolled this out as optional until it covered the previous app’s use cases.


They may bring back the old app so people are clearly having some issues with it. See https://www.macrumors.com/2024/08/14/sonos-bring-back-old-app/


It's a shame Spence wasn't one of them. I'm shocked the board hasn't removed him yet. [Disclaimer: I hold a small handful of shares.]

Leave a Comment