I've been experimenting streaming FLAC from various UPnP servers controlled by a separate UPnP control point running on Android, with the rendering being on my Naim. Control points seem to be a weak point in the chain. Maybe that's because they haven't been a big issue until recently, or perhaps it's because they have interfaces "pointing both ways", but for whatever reason it seems quite hard to get them to play well with renderers and servers.

Naim have their own software solutions, but they're in the proprietary Apple camp. Linn have the open source (and therefore free) Kinsky which looks good on PC but isn't available on Android. It's a little flaky with the systems I've tried it with too.

Here's some information on the third-party control points I've tried. Broadly they all work at some level, but there are basic reliability issues which can be frustrating if you're just trying to listen to your stuff. The controllers, servers and renderers seem to be able to get their knickers in a complete knot every so often, which can make them more hassle than they're worth. Note that I'm looking at only the control point features here; I don't care if they can stream baked beans or whatever, because I'm not streaming from the phone, I'm controlling from it.

Bubble UPnP

Bubble broadly works. Mostly when you press something, the player does what you'd expect. Sometimes it doesn't, and sometimes you have to reboot everything to recover. I'm not sure whose fault that is, but it's a pain.

The UI has adverts in it and doesn't quite work; it has a lot of features, but somehow it doesn't feel quite together.

I stopped using Bubble because of functional problems - it would lose its way sometimes. This is my second choice control point.

UPnPlay

UPnPlay is let down by a couple of things. First the UI is idiosyncratic. It's not as bad as it first appears, but it looks horrid and is confusing to use, where as there are much better ways to do those things in Android. In use I found this less reliable than Bubble. That could be the renderers' fault, or the server's, although I tried a few servers and they all behaved the same way.

This one is close to being ok, but not quite close enough.

Skifta

Skifta I don't understand their business model, but this is a more ambitious system of which a small subset does what I want: control a stream of FLAC from server to renderer.

From the start this looks professional - the look and feel of the UI is excellent. You may think that connecting server to renderer via control point should be just a question of picking the renderer and server out of a list, and that's precisely how this works. Their "settings" page has only three things you can tweak... which is brilliant because it just works, so you don't have to hunt down net masks or whatever those pages of settings let you tweak on the competing systems. It's a classic case of less is more. I don't want "tweak-ability", I want something which works. This does.

In use it's rock solid, never missed a beat. Backwards, forwards, play, pause, pick track, pick CD. Sure, the other players have more features (like progress sliders, elapsed time displays, dancing girls), but they fall down because they don't do the basic stuff quite reliably enough. And in any case, when it comes down to it, I don't spend a lot of time "seeking" for position within a track, I just play the sucker. Dancing girls would be ok though.

Some play list management would be nice to have, although Skifta will use playlists set on the server (likely because they look the same as any other collection of media to it), so if I get around to it then that's probably where I'd create them.

It's not perfect - switching from "now playing" to the media list requires a few more finger clicks than necessary, and a prettier artwork display mode would be nice, but it's as reliable as my remote control, which actually is the #1 requirement here.