Swype Keyboard – Trust, Performance, and Excuses

So, last December a Swype user notified Swype that he had detected the Swype keyboard making an egregious number of location requests on his Android.

Swype’s reply was: “This definitely sounds like a bug. We check for last known location in order to provide regional dialects via Living Language.”

This topic blew up on Slashdot the other day, so I’m aware of it now, and it’s made me think about a few things:

1) Trust and Keyboards
A lot of trust is needed to use a third party keyboard, or really keyboards in general. It seems to me that a keyboard developer that gets a reputation for being untrustworthy would have a hard time doing business. This tells me that the people at Swype making decisions on this issue either: don’t see trust between users and them as an important commodity that needs to be preserved, or don’t see this as a bug. Neither is good news.

2) Writing performant code for Android apps
When I got a new Android in Jan/Feb, I made certain to turn on my Swype keyboard. (I really do like some of the keyboard features that I don’t get with the Google iteration.) But my battery life was terrible. I tried to figure out why my Android was only getting on average 4 hours of life (with practically no use), and after turning off almost all of the checkboxes in the Swype settings, I promptly started getting a reasonable amount of battery life. (I only have to charge once a day.) Either I inadvertantly turned off all those location requests, or these guys are not terribly good at performant code in general. A cursory glance at documentation on the location libraries would tell you that its a performance hazard.

3) Incomprehensible excuses/marketing decisions
So, this “Regional Dialects via Living Language” thing. What does that even mean? As several commenters have mentioned, I certainly wouldn’t want my keyboard to behave differently because I took a trip to London. And I have no idea what Living Language is, but it sounds like some kind of branded feature? So I asked the internet and got redirected here, and the short story seems to be that they are using it to identify “trending words”. I can see how a developer would make the mistake of connecting location data with this concept, but you’re making it too complicated. You don’t need to know if a user has driven to Jersey to offer a trending word. Let the user identify her locale, use that as your cohort, and move on. Also, maybe your marketing page should explain how you’re protecting user privacy when you crunch your trending words algorithm. I can certainly think of ways you could do it badly. And is this feature really worth the privacy scandal and the threat to your reputation? I mean, I didn’t even know this feature existed, and up until this weekend would have said I was a Swype enthusiast. A little less so now.

UPDATE:

Swype has followed up with the following statement:

At Nuance, we take privacy very seriously. The location requests you may see occurring when using the Swype app are actually notifications of changes to location from the Android Operating System. We do not actively ping for location information. Swype may show more notifications than some other applications because as a keyboard it is almost always running, even when not visible. Only a small number of these instances are used. The location information that we do use is very important because it allows us to improve our language models and user experience. Swype has a feature that sends to devices regionally specific dictionary extensions, and the data will help develop new regional databases we build in the future. We do not track or store location when the keyboard is not actively being used. 

I’m still absorbing what this is supposed to mean, but the thing that really strikes me is the incongruity of the two statements:
We do not actively ping for location information.
Swype may show more notifications than some other applications because as a keyboard it is almost always running, even when not visible. Only a small number of these instances are used.

I think, in general, a more expansive use of language when describing these things would do a world of good in avoiding confusion as to both meaning and intent.

theme by teslathemes