We recently released a new mobile app for android and iOS.
We promptly got a single 1-star review. It was not that the app was not performing smoothly (it’s a native app, smooth as silk), not that it crashed (it might have happened, but I don’t think it did), or that it used too much CPU for transcoding (we don’t transcode in live mode, and we support all codecs). Not was it that the user can handle incoming events in 10 seconds (and that includes grabbing your phone from your pocket). No, the issue was that it was not the same as the old app.
The android app allows the user to stream video from his phone to the recorder, it shows cameras on google maps, and these features will soon be available in the iOS version as well. The app will pick the best matching stream profile for your device, but you can override this if you so desire. Hell, in the android version you can even add your recorder by scanning a QR code!
We continue to strive to make an app that you will actually want to use in the real world. Hopefully it will be more than just a gimmick that you show your friends (like the remote control I have for rotating my TV.. I used it 3 times).
Naturally, we will continue to add features to the app on at a steady pace, but I do not want to jeopardize the user experience by shoveling in features that the technology just can’t support. Basically, if we stick it is in the app, it should be a delight to use and there should be no asterixis in the contract telling you that you need an octa-core xeon processor to server 2 or 3 clients simultaneously. To me, it is not good enough that it works in the lab. It has to work in the real world, on bad LTE, on a cheap, low power phone too. In fact, I used an LG G2 mini as my reference device, it is small and not very powerful, but if it runs smooth on that, then it will run smooth on just about anything.
I also do not want to shove so much shit into the UI that you can’t easily operate the app, and this is where things become really difficult. You have to decide if you want to be a screwdriver or a hammer. You cannot do both and deliver a good experience. Our mobile app is a screwdriver, but this guy wanted a hammer, so our screwdriver was “a huge step backwards”.
Eventually I will be beaten into submission and I will be ordered to make a hammer-screwdriver-toaster that no-one really wants to use. It will check the appropriate boxes on a spec sheet though, and it will look impressive on store shelf, where we will display videos that show the app running under perfect conditions with carefully selected streams and with the phone being connected to a fast, dedicated network. You’ll then realize that in the real world, cameras fail to come up, the UI is hard to navigate and use, it’s slow and unresponsive and then we might get a 2-star star review. We can then bribe some people to give us 5-star reviews to up the average rating, because that’s how things are done.
I’ve written about the dangers of being too promiscuous for your own good before. It’s very tempting to add every single dish that anyone ever asks for to the menu, but it is a temptation best ignored. Find out who you are, and be loyal to it. Sure, it is easier said than done – why not add burgers, sushi and ramen noodles to the menu of your hotdog stand? How hard can it be? And aren’t we losing all those customers that crave burgers, sushi or ramen noodles? I think that people who want burgers, will go to a place that makes good burgers, rather than go to your elaborate hotdog stand for a mediocre burger on a stale bun.
What if you are wrong about selling hotdogs? Well, if you are wrong, you go out of business fast, but what is the alternative? Is it better to limp along for ages, offering yourself up for all sorts of depraved activity, like some badly aged prostitute?