A couple years ago, I had an idea for a mobile app that would revolutionize the universe. It was innovative, solutionable, and coked to the gills with passion.
It was everything the World 2.0 wanted as well as a bunch of stuff it didn't.
I could have written it back then, but the tech required was a touch beyond what was available in most consumer mobile devices. It needed too many stuffs that weren't there. Like certain microchips and transistors and tubes and also magic and wires that are good.
Now, two years later, approaching the end of the first decade of the 21st century, in the year 2008, the technology is here, and it's in the hands of your average jackass moron mallwalker. And if it isn't already stuffed in your pocket, somebody at the mall will sell it to you on your way out of Forever 21 where, although you're only 13 years old, your boyfriend has just purchased $600 worth of lingerie for you, and your parents are Ok with it. If somebody can tell me what the hell's going on with today's youth, speak up.
I've been approached about producing the app. I haven't decided yet if it's what I want to be doing right now, but it's very tempting. To get a feel for what it would take to write and sell it, I've been doing a bit of research.
As far as hardware goes, I have options. The app has been designed to run in several modes. There's an active mode that requires a net connection and GPS. For the passive mode, all you need is a net connection. There's a possibility of doing a version for poor people that only uses texting, but that's a nice-to-have I won't bother with until the "real" app is done.
When considering which platform to use, there aren't many criteria (in my mind, for something sophisticated, the only sane platforms are the iPhone and Microsoft's Windows Mobile - if you aren't familiar with development for mobile devices, then just trust me when I tell you that developing for that crap "free" phone you got for "free" when signing your ten year service contract is hell on Earth):
- I'll target the platform that gives me the most access to your money. That means many people own the device, and there's an easy way for you to send me your money in exchange for A COMPUTER PROGRAM THAT WILL IRREVERSIBLY TRANSFORM YOUR WORLD FOR THE BETTER AND MAKE YOU FORGET ABOUT HOW MUCH YOU HATE LIFE.
- Because of hardware requirements, I'll target the platform that meets my needs and has the most uniformity across implementations. One of the hardest things about mobile app development is knowing what kind of hardware your users have. If there's a way of ensuring (more or less) that they'll all have the same hardware, then that way has an advantage.
- The better the distribution options for my app, the better for me. When you make something - such a piece of writing - every choice, at least if you're relatively unknown, involves compromise. Here, I can easily push whatever I want out to the web without editorial oversight or the fear that I'm going to piss off my investors. I'm not competing with anyone else for this space. It's guaranteed that my work, should I want it to, will, barring technical malfunctions due to my ISP being run by The Three Stooges, appear on the site (there's another compromise - if I were willing to pay more than, like, $3 a month for hosting, I could probably get service run by sentient beings). The trade-off here is that my site has nowhere near the reach of a big publishing house. You have to find my site accidentally or hear about it from your mother-in-law who's one of those people who've dedicated their lives to forwarding other people's mail to you. Somewhere in there is a "loook it this site is lolol called NFIPFOEOPOLEON.COMCOM." I'd much rather have the wider distribution, and if I knew how to get it, I would, but that doesn't mean I'd be equally excited about losing so much of my freedom to publish crap. These same compromises exist when distributing your app. You can do it on your own and have complete control, or you can use a distribution service. With apps, I'd much rather have the service, as I don't want to have to assemble the shopping infrastructure myself, and I don't want to wait for people to accidentally find me.
There's more to consider, but those are big time stuffs.
Here, from what I've learned, is how iPhone and Windows Mobile rate against these criteria.
---- Windows Mobile
- My access to your money: If you have a WM device, you probably have money. Even with carrier "discounts" they're not cheap. If you know what to get, it's worth the moolah, and you'll take advantage of what your chosen device has to offer by downloading apps that make use of it. This is as easy as:
- Trying to figure out where the big app stores are. There are a few, and they don't all support Windows Mobile, nor do they all have apps that will run on whatever version of WM you've got. It can be frustrating because Microsoft's practice of renaming products and slapping weird version numbers on things that are meaningless without context can easily leave you wondering what version of Windows Mobile you have (and wondering if what you've got is the same as/compatible with PocketPC, WinCE, PPC, etc.).
- If not big stores, then searching the small independents where devs post their stuff on sites that look like they were made with a beta release of the first version of FrontPage.
- When you find an app, you go through whatever arbitrary transaction process the store/dev is using. This might mean creating an account with a site you'll never return to, handing your credit card info over to an independent whose trustworthiness is unknown, or even going through PayPal and then having to wait for the dev to check his email and manually respond with a serial number (or whatever).
- Run the app on your desktop which will kick off ActiveSync's install bits that install stuff on your PC in addition to the device.
- After clicking "Yes" or "I think so" or "Sure" on a few dialog boxes that pop up on the desktop and on the device, a CAB file is opened on the device and a local installer runs. This can mean more dialog boxes, and it can also mean having to make choices about things you don't understand (many users aren't going to comprehend the impact/difference between installing to the device's memory or to an expansion card).
- Run the app! Easy as 1-2-3-4-5-6!
- Uniformity of platform implementation: Unless things have changed, although the fundamental bits of the OS are the same, the configurations of Windows Mobile vary depending on the device. Some features might be stripped in favor of a smaller footprint for a device that's light on memory (why has it taken so bloody long for WM device makers to provide users more than, say, 128MB of storage space (without the user adding a memory card)?). Who knows what those features are. Even similar phones from the same manufacturer and carrier can vary enough that you can't rely on much beyond the expectation that there's some kind of phone hardware in place (some people still make calls with their phones).
- App distribution options and ease of install for the customer: As you may have figured out from my "Easy as 1-2-3-4-5-6!" list above, finding, buying, and installing apps on WM devices has always been a pain in the ass. Going back to my first PocketPC (the first iPaq (the 3630)), I wondered why I needed ActiveSync just to install some stupid little app. ActiveSync makes sense if, say, I'm syncing something with the desktop like mail or calendar data, but it doesn't make sense if I'm installing Super Solitaire 5000 Deluxe Color Edition. Where do you sell your app? How do you get the word out? I haven't looked into it for a while because it frustrated me so much in the past. I'm going to take a look again, and, because I plan to target one specific platform for my app, I also plan to develop for others. In the case of Windows Mobile, I'm hoping Microsoft copies Apple's model.
Speaking of which...
---- Apple's iPhone
- My access to your money: Apple's users tend to be enthusiasts. They blow money on stupid shit like knit cozies for their iPods and $3,000 earbuds that might sound great to a trained sound engineer, but which, compared to the buds that come in the box, sound no different to your sloppy unrefined auditory senses. If people are willing to pay for that, then they'll be begging to fork over dough for my app. It's a market of overeager zealots who will pay for things because they're new and different, but not necessarily because they're better (with most of Apple's own product-line excluded, as Apple's been doing beautiful stuff this century). People are still in the phase where, rather than buying iPhones to run their apps, they're buying apps to run their iPhones. It's gadgetophilia.
- Uniformity of platform implementation: You might have an iPod Touch. You might have an iPhone. You might have an iPhone 3G. You might have version 2.0 of the OS. Whatever it is, it's basically the same across devices. Different for the iPod, but the iPhone is quite sufficient. With the iPhone, you have a good idea of what you're getting, so you don't have to plan for as many oddities. Someone might have GPS, as with the 3G iPhone, or someone might have Apple's less precise, but still useable, location services that rely on cell and wifi information to determine your location. It's close enough for what I'm doing. As long as either of those things is present, we're good, and as I can count on those things being present, we're good.
- App distribution options and ease of install for the customer: Apple users have been bitching about using iTunes to install iPhone software. If they had any idea what it's like with other platforms, they'd shut it. While iTunes as an app store feels wrong and stupid and lame and stupid to me, at least iTunes is an app everybody has nowadays (aight - not everybody, but many, and that's good enough). Not that it matters much - with the introduction of Apple's App Store, you can browse apps on your phone, pay for, and install them without having to do some stupid syncing thing. You could be out at a bar where Jolene Blalock is hitting on you, and without having to run home to your iMac, you can buy, install, and run a crossword game before you've even had the chance to realize you've just made the biggest mistake in your life by ignoring her. And when you do realize it, and you see Jolene running off with another man, at least you'll have your crossword puzzles.
---- It's the Little Things
Microsoft is still so focused on the idea that the OS is what makes everything happen that they've let opportunity after opportunity pass by in the way of services.
In 1985, the relatively large amount of software you could buy for your IBM PC gave it a huge edge over technically superior platforms. It didn't matter so much that the disk in the box was the wrong size for your drive or that you needed a different video chipset - you could get those things, and if you were buying a game made by Origin, you did buy those things.
In 2008, if people have to work to get your bits onto their devices, you've screwed up. If they have to do the legwork themselves, figure out specs themselves, get around gotchas themselves, then you've screwed up.
Microsoft has been in the mobile space for a very, very long time. My introduction was, I think, eight years ago. In eight years, how much progress has been made in making it easy for the consumer to buy apps and install them? Not a whole lot. Yeah, there are ways for people to download apps directly to their devices, but that hasn't been the norm. Microsoft's own Windows Live app, which is great by the by, updates itself without going through the desktop, but it's not necessarily the case with other apps.
Apple has been at it for what feels like two weeks, and they've already taken on the problem of making it possible for people to buy and install apps even while driving. The solution is rough and needs work - you'll find plenty of bitching in the Apple magazines - but at least it's there, and you know Apple is going to refine it to the point that you'll wonder how buying apps on your device ever could've been done any other way.
There's plenty to whine about, and the princess-and-the-pea Apple crowd is doing a fabulous job, but with the iPhone where it is, there's no way Windows Mobile would be my first choice for a consumer app. Enterprise apps are a different story, but this post isn't about enterprise apps.
---- Microsoft Smudges Poop on Mona Lisa's Upper Lip
Whatever you anti-MS people say, Microsoft has done some brilliant work.
Of everything they've done, aside from Windows Mobile (which, despite my lack of interest for it as a consumer product, I love for many reasons), the Xbox 360 is at, or near, the top of the Microsoft heap.
Microsoft seems to be terrible at getting media companies to sign on for their services, but even with its small catalog of movies and TV shows, the Xbox Live Video Store rocks. There are some UI pains, but the experience is generally pleasant and makes me want to spend a lot of money.
That's where Microsoft made a mistake. That's where Microsoft smudged poop on the upper lip of its Mona Lisa (I'll explain what that means in a moment). There are other smudges, but we'll leave 'em for now. I only need this one as an example.
A couple nights ago, following a firmware update to my Apple wifi router, I was finally able to get my Xbox back online. For months it wouldn't connect. I stopped trying because I got tired of the letdown, but I was feeling unusually brave and resilient when I tried, and succeeded, to connect. It was awesome.
I went and browsed through the Video Store to see what had been added since the last time I'd been able to connect. Not much it turns out, but they have the new Stargate movie (Continuum) up there in HD, and that was enough to get me feverishly pressing buttons that I hoped would perform a transaction that would end with the movie being downloaded.
Unfortunately, I was too low on points (points are like funny-money that only work with Xbox Live). The obvious solution was to buy more points.
Typically, this is a fairly easy process. My credit card info is stored, so I don't have to reenter it. I just click a button to buy points, and then, after a brief video chat with some of Microsoft's lawyers who want to let me know how many years I'll go to jail should I abuse the point system, I get my points.
Between now and the last time I bought points, my credit card info was acquired by some very bad people in China who wanted to use it to buy things with my money. Modern tech being what it is, my bank's sophisticated Big Brother software noticed that, two minutes after paying for a latte on Hawthorne street in Portland, I tried to spend several thousand dollars on a sex slave in Beijing. They phoned immediately:
Bank: Mr. Blyth, our databanks show that you just purchased a latte in Portland and then tried to purchase a hooker on the other side of the planet shortly thereafter. The purchase got flagged as "Funny Business" in our system, and it's our duty to call you to get to the bottom of these shenanigans.
Me: Oh, well, I thank you for calling, sir, and, yes, these are shenanigans that I did not authorize. Please use your technology to stop these shenanigans.
Bank: Yes, sir. Can I put you on hold?
Me: I'd love it.
[Pretty music plays for thirty minutes.]
Bank: Hello, sir, are you still there?
Me: Yeppers.
Bank: All right. I just wanted to let you know that we've gone ahead and put a block on the payment for your latte. Is there anything else we can help you with today before I transfer you to Account Services to get you a new card?
Me: Thank you, no. I am very pleased with today's service. Please call me anytime.
I got my new card and then went about the tedious process of updating billing information for my car payments, insurance, and diaper service. Because Apple's router was being wonky at my Xbox, I didn't bother with Xbox Live at the time.
When trying to purchase those new points the other night, I finally got around to updating my billing info with the new card, but, by the end, rather than being excited to pay for videos, I was hoping to find a service through Xbox Live that would, in exchange for some of my points, electrocute me through the controller and put me out of my misery.
To begin, I couldn't find a simple "Buy You Some Lots of Points" button. There was a "How Do I Buys for Myself Lots of Points?" button, but all it did was take me to a screen that instructed me to return to the Xbox Live home and then, surprise!, buy some points. It really was that helpful. Since I'd gotten to this screen from the Xbox Live home (or somewhere near), the circular reference was unwelcome in my life, and I cursed out loud.
After much button slapping, I found that I could buy points once I'd navigated to the thing I wanted to buy. For the movie, that meant going to the Video Store, browsing the movies, selecting the one I wanted, and then clicking the "Add Points" button (or whatever it actually said). It was retarded. If MS wants my cash, they should make that the biggest button, and they should put it on every screen. They should build it into the Xbox controller itself. They should embed one in my forehead.
Making people search for a way to give you money is stupid. When you buy a pack of gum at the store, does the cashier argue with you? Do you have to walk through a hedge maze to get to the checkout? Are there a bunch of signs that say "Cashier This Way" that lead you in circles? When you get close, do they turn on the smoke machines, blindfold you, and spin you around?
No. And without various laws we have in place, they'd probably just shoot you on your way in to the store and then go through your pockets for change. Their goal, as is often the goal in business, is to take your money as quickly and as easily as they can, and in as great a quantity as possible for the least amount of work.
Buying points is metawork - it's the work you have to do to get your real work done. When I log on to Xbox Live, I don't do it because I want to spend my night trying to buy points. Buying points is not a game (if you work in the Xbox division, please print that phrase out and tack it on every wall of every hall and office in your building). It should be over with a push of a button. That's it.
It was an exceptional case since I had to put in new credit card information, but that was part two of the retarditity.
I don't have a USB keyboard, so I have to use the controller and the onscreen keyboard to enter text into the various fields of the credit card form.
Since this is still my account (RoryBlyth), you'd think it'd be a given that, though I have a new credit card number, all other things may very well be the same. Things like my name and address. But those things weren't automatically inserted for me. The form was blank, and I had to type everything out from the beginning.
It's a pain to enter in the credit card number and expiration date, but it's understandable. If MS already knew my credit card number, we'd have a problem.
But my name? And address?
How effing hard would it have been for Mister Lazy Stupid Coderpants to have taken that information from my account info and automatically populated the relevant fields with it? So what if there are minor details I might have to correct - my name doesn't appear on my credit card exactly as it does in my Xbox Live account info, but we're talking about the difference of a letter (one of my middle initials). I'd much rather go through the trouble of moving the cursor over to add two spaces and a letter to modify a populated field than have to type it all in from scratch.
Same with my address. It's the same damned address. Have you ever used an onscreen keyboard and console controller to type in your name and address? It's like trying to play Bach's cellos suites with your nipple on a gong.
Is it a legal problem? If so, just ask to access that info. It's not like there's a phobia at Microsoft about making users click "Yes", "No", or "Maybe So" eighty million times when they try to do something as simple as rename a file.
It's that kind of thinking - or lack of thinking - that smudges poop on Mona Lisa's upper lip. You're so close to something amazing, but you just had to go and smear feces on it.
I got a text a few days ago from a friend of mine who has a T-Mobile Dash. She had accidentally activated T9 input. The Dash has a thumb-keyboard, so T9 is a useless nuisance.
I have the same phone, albeit the unbranded version direct from HTC, and to shut off T9 I tinkered with the registry. This friend of mine, a "normal" user who knows nothing about tech, can't be expected to do the same thing.
I figured it'd be easy to turn it off, and that my difficulties were due more to owning the "raw" version of the phone rather than the one offered by T-Mobile. It's not as user-friendly. It's great if you're a dev, but you're probably better off going with the T-Mobile version if you, like my friend, just want to use the thing.
I googled for a solution, but all I found was frustration. It turns out this is a major flaw experienced by tons of users. There's no obvious way to turn T9 off. You can temporarily disable it for individual emails or texts, but the system reverts back to T9 when you're done. It's insane.
How could that have happened? It's such a fundamental thing. The rest of the phone is amazing, but the experience is seriously marred by this incredibly stupid oversight.
Like I said, it's the little things.
The iPhone isn't perfect. I think the complaints are a bit much and the result of people expecting perfection. Apple will continue to iron out the bugs. It'll be fine.
Imperfections aside, the iPhone is looking like a much better choice than a Windows Mobile phone for my app. I love the dev tools for WM, but that doesn't solve the problems I've detailed here.