A “few” thoughts on complicated Android apps
I haven't been a steady Android users for all that long, but I like to think I learn fast. Despite my tablet being rooted though, I haven't gotten much into the custom ROM part of Android. Instead, I've focused most of my attention on the app layer, and more specifically what's possible to do on Android using apps. For what I need to do, I've simply found that part of Android to be where the most useful tweaks lie, not in using different ROMs – not for me.
The more I tinker with the more complicated apps for Android however, the more I start seeing a pattern emerge that is somewhere between ironic, sad, and amusing. Some people in the world are under the impression that if something is possible, it needs to be easy. I'm sorry, but that's just now how it works.
Reading through the reviews of some of the more advanced apps that I use on my devices is very educational. While these apps have a majority of good reviews, the bad reviews are where it gets interesting. As a satisfied user of some of these apps, I want to reply to some comments that stood out to me on Google Play. Since these reviews are publicly available for absolutely anyone to find on the web, I won't bother hiding the (nick)names of whoever wrote them.
I'll start off with Tasker, the automation app I've talked about off and on for a few weeks now as I myself have learned more and more about it.
Ten steps is a bit of an overstatement if it's truly a simple thing, but it does happen. By far the most complicated Tasker setup I have right now Consists of one profile, two tasks, and a total of 24 actions. It took me ages to set up, and I wouldn't even have been able to do it at all if not for a friend who lent me his time to create a PHP script that runs separately on a web server and handles part of the process. However, once set up, it automates a process that normally costs me a headache and a few hours every month, and eliminates a level of uncertainty throughout the month. In my experience, the more steps needed for Tasker to do a job, the more complicated the task that it automates is to begin with. I completely understand that it isn't for everyone, but I do think that it's a bit wrong to blame the app for the user not "getting it".
Kinda the same point as above here, but also different. This users believes that there should be more tasks available out of the box. There are several problems with this, the most obvious of which is that Tasker can be set up in essentially an infinite amount of ways, making the concept of a "common task" a bit flawed. On top of that, there are limitations with Android that prevents it from accomplishing things that seem simple, but actually requires a lot of workarounds. Detecting if an app runs in the background is something I've been toying with myself, and after consulting with the developer, my suspicions that Android was to blame for Tasker not being able to read certain aspects of the OS that would make the task easy to set up was confirmed. I've personally made the mistake of blaming apps for issues related to the OS or simply blamed the app for not having something that I just couldn't find many times, which has taught me to be more cautious when it comes to assuming anything. As such, I totally understand his reaction, despite finding it to be a pity that it is indeed based on wrong assumptions.
As for "who has that kind of time", well, automation is not always about saving time when everything is tallied up. Sometimes it's about spending a lot of time when you have it so that you don't have to spend a little bit of time when you don't have it. If spending an hour setting up an automated GPS on/off system when you have the time to do so repeatedly save you a minute here and there when you'd rather not be tinkering with device settings (like, when driving), I think that's just as valuable as spending one hour to set up something that automates a three hour process.
Now this one really stuck with me, both because of the length, and some of the claims made. His initial point is that the app description doesn't hint to the level of involvement needed to get the app to do various things. I get that. It has annoyed me with certain apps myself, and it leaves a bad taste in your mouth when you thought you were buying a wind-up car and you were actually buying a jet plane. This is an example of where the 15 minute trial period in Google Play is both invaluable and flawed because it's only 15 minutes, and that's not enough time to really get into some of these apps. Tasker now has a link to a 7 day trial in its app description, which I would assume (but can't be sure) was there on 3/3/12 as well, so I do think it's a bit unfair to shell out bad reviews for apps that turned out to not work for a person and in turn not cost the person anything (if done right). As for the description of the app, how do you present the complexity of Tasker in a way that is concise enough to fit an app description, yet complex enough that it explains the concept of variables to everyone from Google engineers to people who even have trouble logging into the Facebook app? I'm just asking here, I don't have the answer, and I don't think the Advertising Standards Agency does either.
What goes beyond just disagreement with this guy however is his classification of people who are able to use Tasker as "not normal". "I don't think it's OK to spend an entire weekend learning how to make my phone do something an iPhone can't do". Well, so don't do it then! Did someone kidnap your family and force you to learn Tasker, or am I missing something with regards to why you're angry at this app for having advanced functionality? It seems like this guy thinks that because it would take too long to learn, it shouldn't exist. I don't even think that sort of mentality requires further response.
Then, finally, the advice of putting down the phone and going outside to smell the roses. Again, automation can be about spending time when you have it in order to not have to do something when you don't want to/have the time. I don't even have to go back 24 hours to respond to that one in a visual way:
What you're seeing above is an HDR pic taken from a bird watching tower not far from where I live. The picture is of a protected swamp where a special species of bird stops to rest during its migration around this time of year (actually not until a few weeks from now). I visited the place yesterday with a friend, as it was a nice day for once (been raining a lot here lately), and fresh air is great. What's my point with all of this? The app I used was an app I found and installed back in January, after just messing about the then-called Android Market. The image got into this article after first originating in the Dropbox folder where Dropsync has been syncing photos I've taken with my phone ever since I sat down and set it up to do so in March. I don't know if you've ever been to Norway in January or March, but let's just say that you wouldn't find me in that tower enjoying the fresh air at those times of year. Yet now, 2-5 months later, being part of the "tech mafia" meant that taking an HDR photo and getting it to my computer for later was a matter of opening an app I already had on the phone, and taking a photo.
Make Your Clock: "The free version is crap"
Make Your Clock is an app that I only started using a couple of days ago. It allows you to create your own clock-style widgets, much like Minimalistic Text, but – for my use at least – a lot more powerful. When I first tried it out after failing to get Minimalistic Text to do what I wanted, I too downloaded the free version rather than the $3 Pro version. I was also just as perplexed as these reviewers as to how limited the free version is, being essentially so limited that its existence is borderline pointless. I actually ended up buying the Pro version, found it to be what I needed, and some frustration and tinkering later I had a new clock widget to replace my "one size fits all" widget from Google Play that I have been using. Make Your Clock is extremely powerful, allowing you to make your own widget from scratch, and also has the ability to get data from Tasker to display in the widget (which was what lead me to it to begin with).
While I like the app though and am glad I bought it, the state of the free version is something I simply can't make my mind up about. On the one hand, not knowing what you're buying is a big issue, especially where we're at in the mobile app evolution where $3 is actually considered a lot for a piece of software (by some, I don't agree). that is even more true for an app like this which, like Tasker, is so advanced that there's no way you can decide if it's worth it in 15 minutes (the refund period).
On the other hand, this is a very advanced app. It's well worth $3 if you take the time to learn it, a decision that I won't try to make for anyone else. It's an app I firmly believe people should pay for, and I'm no fan of people who stick to free software. Software doesn't write itself, and if paying a few bucks for something you use is the reason for its existence, that's a reason to do it if there ever was one. Unfortunately, given the choice between a free version and a paid version where the free one does what someone needs, I would make an educated guess that the majority chooses the free version. There seems to be a lack of any moral obligation to the developer in this new app system, which makes it perfectly understandable for me that a developer chooses to make the free version of the app essentially useless on its own. The person who comes around with a truck and picks up your trash sure doesn't do it for free, why do people demand that those who program their apps should?
This review is from the Pro version of the app, which means that anyone posting a review here actually had to buy the app. This is more back to the original point of this article, namely complicated apps. What has happened here is that someone has completely missed the existence of or point of a feature that is not only in the app, but basically paramount for its use.
With Make Your Clock using variables like day of the week and time to create a widget from scratch, one problem that becomes apparent very quickly is the difference in size between words and individual characters/digits. If you center a clock that reads 1:00, it won't be centered when it reads 22:00. Monday is a 6 letter word, Wednesday is a 9 letter word. Add a "day of the week" object that brushes up against the side of another element when it's Monday, and they will overlap on Wednesday when the word is longer. Simple logic. That's where the Anchor feature that you see in the second screenshot above comes in, allowing you to select where the object draws from. In the case of Suzy's problem, a day of the week element that overlaps the year would need to be anchored in the bottom right corner, so that the y in Monday and the y in Wednesday are in the same spot and grows to the left instead. If you need it to be the same absolute size, then the way to go is to use abbreviations for text and constant digit format for numbers, and then center the elements. This would produce e.g 01:00 centered on the colon or MON/TUE/WED centered on the middle letter. Make Your Clock has these features built in, and it's even possible to get Tasker to handle it via variables – though that's definitely even more complicated.
Point being, here's another review of an advanced app where the reviewer rates it low based on a simple misunderstanding of the basic concept behind how it works. As I've already said I know how easy it is to make these mistakes with apps you're new to, and I don't blame this person for not immediately grasping the importance of the Anchor option – I didn't either. At the same time, it's not fair for the review to be listed, really. At the same time, reviews for apps are a must, and yet it's not really a viable solution to have a "review complain department" for something as huge as Google Play, or the App Store for that matter (which has similar issues with reviews). Ah, what a mess…
USB/BT Joystick Center: "THIS MUST BE A JOKE"
This last app is one that I have somewhat of a personal relationship with due to it being rather niche at this point and me having featured it quite heavily on Nothing But Tablets: USB/BT Joystick Center. It's an app that handles game controller connections with Android, and is such a Swiss Army Knife for that task that it ended up being more or less the sole focus for my Android game controller guide. Throughout my use of the app I've struggled to get it working, gotten it working, created tutorials as a result, interacted with the developer, and so on. As such, I have a better understanding of how it works than most of its users, and that also means I know how advanced and complicated it can be – which is why I dedicated a paragraph to warning people of that when I wrote the above guide, under the sub header "We're not in Facebook anymore".
Like the previous apps I've mentioned here, the bad reviews you see here are the minority, and I don't think they should really be there due to being based on the wrong assumptions or lack of information. To start off with the "Wtf" comment about Shadowgun, well, my guide actually shows Shadowgun working. It's a case of not configuring it correctly, which is a common problem with an app like this that is so advanced, and I don't think that giving it one stars for a user error is the right thing to do. This app basically adds functionality to Android that Google is still trying to add officially with the latest releases, just with more compatibility and features than Google's implementation. The games it can be made to work with are made by completely independent developers, and in a lot of cases, not even designed to work with game controllers at all. Having the app work at all is a programming marvel, but it also means that there are enough settings and potential issues that can create problems that it definitely isn't for everyone.
The other two negative reviews above actually go as far as accusing the developer of posting fake reviews. Even when those reviews were written, there were enough videos out there of this working – both on NBT and elsewhere – to prove to anyone that the app is capable of doing what it says. To then conclude that the good reviews are not from actual users is just…not ok.
As for lack of instructions, that's something I half agree with, half disagree with. The developer is your everyday Android users, just with programming skills, and he basically does this on the side. Writing instructions for an app like this is basically a full time job, which I really got to experience first hand when I made the Android game controller guide. When you have an app that has probably a few dozen potential major points where it can go wrong, trying to cover all of them is like trying to stop the spread of a circlular wave that gets wider and wider the further out from the point of origin you get. It basically requires that you understand how it's supposed to work to even be able to guess at where a problem is, and that's not something that can easily be put in a step by step tutorial. That's why my guide focused more on explaining what's happening and how it works than what buttons to press. It's ironic, because this makes certain apps way more complicated to learn for the actual end user than things like rooting or flashing a ROM, as people with the know-how tend to create one-click solutions for that on a per-device basis before you can blink. Try making a one click solution that hooks up one of dozens of different game controllers to one of hundreds of different Android devices, each with a combination of hardware, software, and user tweaks that can all be sources of errors.
If anyone is still reading at this point, I'm sure it's become obvious that this is a topic that I have a lot to say about, as well as having split opinions of. When it all comes down to it, I think the only conclusion one can draw from this is that it's unavoidable. With Android, the gap between what's actually possible and what the least tech savvy users can make happen is just so huge that it's like having several different OSes trying to coexist in the same eco system. It's not ideal, but I don't see it working any other way without becoming something that is no longer Android. The only possible solution I can dream up is to add a new setting to apps where the developer chooses between a few different difficulty ratings to classify their apps as, and then allow users to set and change this setting as a filter in Google Play – with plenty of explanation as to what the setting does. There are problems to such a system too, but I think it could actually help provide a bit of order to the Android app universe.