I confess that I've ignored mobile development for the last few years. However, some recent press announcements have made me rethink mobile application development—even though I have some reservations about the new, potentially ominous, role of app stores.
Why I Ignored Mobile Development... Until Now
Ten years ago, when I still thought Windows CE was cool, I spent a lot of time and effort doing mobile development. I enjoyed mobile development, but Windows CE just sucked the joy out of life. For starters, the platform was buggy: Restarts were pretty much a fact of life across a number of different devices that I owned. That, and some of the decisions made by the UX team seemed to defy logic. For example, the first thing that just about anyone did after buying a Windows CE machine was run out and buy or install a utility that would let them actually close their apps instead of just pushing them into the background. Yet, the UX folks for CE were so adamant about the need to prevent end users from closing their apps that you couldn't actually achieve Microsoft certification for your apps if they provided functionality that would let users close the application.
That, and the day I threw in the towel was when I had a new HTC phone and was trying to do some development work and had to jump through the idiotic setup for a new Wi-Fi network connection. The notion of having to choose whether a connection was public, part of a home network, or part of a business network made me question the sanity of anyone at Microsoft who thought that this was an easy way for end users to somehow "secure" their network interactions. (Imagine my ongoing joy in working with this "feature," as it now exists on servers and desktops.) So, I just completely gave up on Windows CE, realizing that it was never going to be as cool as I had hoped it would become—and lost interest in mobile app development.
My iOS Experiences
Years passed. I bought an iPod Touch. I loved it—because it just worked. Granted it wasn't a computer; it was just a glorified appliance that ran applications. But all my apps just worked, and I never had to reboot it—ever. That, and when I needed something new, I just went to the app store and either bought it or downloaded it. Apple's "less is more" approach won out, to the point where I bought an iPhone, which I've enjoyed for over a year now (and rebooted only once—to switch phone numbers when I moved).
Part of me has toyed with the idea of how fun it might be to create a game or an app for the iPhone. But what stops me is the idea of learning Objective-C—to the point where iOS application development has been something I haven't been very excited about. (Though Professional iPhone Programming with MonoTouch and .NET/C# has made its way into my wish list, and I've taken more than a few peeks at PhoneGap at this point.) Instead, I've just been happy to be a consumer, and, in the process, I've dumped a few bucks into Apple's App Store to the point where I now have nine pages worth of apps on my iPhone (though a number of them were free).
Mobile Development and App Stores
Yet, some recent developments over the past few days have me both thinking more realistically about the possibility of getting back into mobile development while simultaneously almost scaring me away from it.
The recent announcement that has me seriously contemplating mobile development again was the partnership between Nokia and Microsoft announced last week. To me this announcement portends some potentially huge changes in terms of reach for my .NET development skills (even though I'm very rusty with Silverlight). But the idea of potentially reaching huge audiences holds great appeal, especially as a part of me is convinced that mobile development could be a hoot.
The announcement that has me concerned, ironically, comes from Apple—the same folks that have helped created a fantastic mobile experience thanks to the success of their App Store. Only, it looks like they've gotten high on their own press or fumes because their latest announcement rightfully has developers up in arms. Specifically, Apple recently announced a one-two punch where subscription-based applications can no longer link outside of their apps for signup, and where Apple will now "help" make signups and recurring billing easier—for 30 percent of the signup or recurring revenue.
Apple's New App Store Policy: A 30% Cut Is a Bad Idea
Now, if Apple were offering application (and services) vendors the option to use Apple's "checkout" infrastructure to facilitate recurring charges or boost conversion (through the iTunes interface that millions of users are comfortable with), that would be one thing. But simultaneously making it so that iOS applications can't link externally (i.e., via the browser) to let users sign up for services or features while telling applications/service vendors that they now have to offer signup via iTunes if they have an iOS app is the height of hubris.
Not only is such an approach immoral and greedy, but it's going to be very hard to even enforce. For example, I love Netflix; I've been using them for years and also love the fact that I can stream some of their offerings to my computers, Wii, and Roku. My wife also streams Netflix movies to her iPhone some days while working out. Yet, according to Apple's new App Store policy, Netflix will now need to let users subscribe from within iTunes. In the words of Steve Jobs: "All we require is that, if a publisher is making a subscription offer outside of the app, the same (or better) offer be made inside the app, so that customers can easily subscribe with one-click right in the app."
In the case of Netflix, it doesn't take a software attorney to see that Apple's new policy reeks. For starters, I have no idea what Netflix's margins are like. All I know is that when I want to stream movies or TV shows, they're available—and I never have network problems. So, I assume they're paying a premium for hosting costs. For Apple to assume that they're now entitled to a 30 percent cut (month after month) of Netflix's fees for end users who would prefer to sign up with an "Apple" check-out experience is, again, the height of hubris.
Netflix isn't successful because of Apple or the iPhone. Instead, the iPhone is just that much cooler because Netflix has created a free app for existing subscribers (and, of course, Netflix becomes that much cooler if you have an iPhone)—but Apple shouldn't be entitled to demand that Netflix begin offering subscriptions through iTunes because Apple would like 30 percent of the revenues for new signups.
The same can be said of subscription music services: DropBox, EverNote, RememberTheMilk, as well as a host of other solutions. The existence of apps on the iPhone for these solutions strengthens Apple's offering as well as the offerings of these services, but I fail to see how that entitles Apple to demand that they can now cut their way into a recurring 30 percent fee for adding new customers.
Understandably, developers are angry. And while Apple has a long history of refusing to back down, I'm hoping that they will in this case because they've clearly over-stepped their bounds. Likewise, I think that Rhapsody's reply is spot on—especially where they respond that they're looking for the appropriate legal response for this development. (And I'm not sure if they're thinking lawsuit or crying "anti-trust" to the Feds—but it's clearly time to start thinking about the latter.)
If subscription services via the App Store were an option, then that would be one thing. But Apple is fully convinced that everyone will just fall in line and give them 30 percent of their potential revenues because Apple has built a great platform and a fantastic App Store. As such, it's obvious that Apple only cares about itself and looks at developers as cash cows that have bought into a closed system where they can now be "harvested." Maybe that's a bit too pessimistic of an outlook, but Apple has definitely played their hand and shown the true nature of their greed at this point. As such, mobile development (with them) is suddenly a lot less appealing given what Apple might try to pull in the future (to say nothing of the ugliness of this current situation).
The Microsoft App Store
On the other hand, I'm not holding my breath when it comes to Microsoft's "App Store"--aka Windows Phone Marketplace--either. As cool as the allure of building Silverlight Windows Phone 7 apps is, it looks like Microsoft's App Store is currently bogged down in some really nasty bureaucracy that's making it hard for developers to deploy and maintain their apps. To be fair, it looks like Microsoft is just trying to avoid some of the problems that have plagued the Android ecosystem. However, it appears that the pendulum has swung too far around in terms of control, in this case.
That said, I really identified with Jonathan Goodyear's comments in a recent article where he outlined how Microsoft has the potential to be able to really come out swinging with their own App Store—if they do things correctly. As such, rather than spout off on some of my own thoughts about the Microsoft App Store, I'll refer you to Goodyear's "Microsoft's Key to Windows Phone 7 Success: Build a Better App Marketplace."
Mobile Development Is Moving on In
I've rattled on about a number of things in this article (it's probably the cold medication I've been taking), but I still can't help but draw a few conclusions. First, mobile development is looking cool again (to me). Microsoft and Nokia's latest merger has me thinking about mobile development in ways I hadn't before. Or, maybe it's just that I have been thinking about mobile dev for a while, but this just helped push me a bit closer to seriously considering some ideas that have been rolling around in my head. Which, in turn, makes me wonder if other developers are starting to "the bug" as well. (Or maybe everyone else already has the bug and I'm the last one to the party?)
Either way, if more and more developers start listening to the siren song of mobile development, that means that as developers we're all going to be dealing a lot more with App Stores—for good or for bad (and I'm assuming it will largely be the latter). My guess, though, is that as we continue to see more and more developers addressing mobile development needs and solutions, we'll start to see some of the tricks, tips, and paradigms used successfully in mobile development start to creep back into non-mobile development. And, frankly, I'm curious to see how that pans out.