Hey, Forbes, Get real (sources).

When it comes to Apple and Google, I’ve come to expect a lot of sensationalist journalism.  Apple is hot, their success stories are hotter, and their losses burn brightest of all.  Facts and accuracy go out the window in the name of clicks.

When reading a source as prominent as Forbes, however, I would expect a bit more where accuracy is concerned.  Recently, they published an article stating that Android’s web share had exceeded Apple’s.  While the article was well-written, their source, an article from Pingdom, is a cluster of completely fictional data, with nothing to back it up.

Let’s begin with the assertion that Android is leading in mobile web usage.  This is wishful thinking at best, but it could be extremely costly when it misguides the mobile development efforts of a large corporation.  The truth is that the gulf between the two platforms is still massive and possibly growing; Android is nowhere near iOS.  Here’s some recent NetMarketShare data and CNN context:

On to the next assertion: Samsung as the top smartphone manufacturer.  This, too, is false.  In smartphone sales, Apple is top, and increasing its lead.

“Android is everywhere you look.” They’re definitely not looking in the same places as me… maybe Korea?  Let’s ask our youth:

Here’s some truth:  The only statistic in which Android bests iOS is in number of units moved, and that’s because they come free in specially-marked boxes of Cheerios.

The only reason to use an Android device is because you’re a geek who has the savvy and desire to do the work required to administer and manicure the Android experience; someone who understands what a process manager is and why you want and need one on Android; and, based on statistics, someone who doesn’t think they should have to pay for software.  There are plenty of people like that who want a smartphone.  I’m easily geeky enough to be one of them; however, I have an appreciation for the work Apple does to bring complex solutions to the masses.

I see non-geeks struggling with Android devices constantly, putting up with little glitches, crashes, and inconsistencies whenever they use their devices, even to do something as simple as change a contact’s information or send a text.  For them, for me— for the vast majority of consumers, who just want a phone that works for them— an iOS device is a better fit.

Those Who Do Not Remember History…

It seems like there are two groups of mobile developers out there.  The first group thinks that using HTML5 with PhoneGap (or a similar tool) will save them time and money.  The second group feels that such a setup adds complexity, removes a lot of the polish from your app, and ultimately adds significant costs to development.  I find myself in the second camp, despite a rapidly-growing number of developers who would disagree with me.  As I watch mobile developers (mostly former web app jockeys) gush about the potential of hybrid HTML/Native apps, flashbacks of every write-once-debug-everywhere toolkit I’ve ever used spring immediately to mind.  They’re not pleasant memories.

I can certainly understand a lot of the arguments.  If, for example, you’re doing native iOS development, you have to hire people who know Objective-C/Cocoa.  It can be hard to find good people with that skill set.  There’s also the tendency for native development— when tackled by inexperienced resources— to be more expensive than web development.  So, you might figure that since you can find a ton of HTML developers, you’ll just switch to HTML5, wrapped with something like PhoneGap for access to native-only features not available via the web.  Problem solved, right?  Perhaps, but now you have a whole new set of challenges.

Proponents of hybrid development tend to ignore several important factors that are sure to impact both the cost and quality of their applications.  First, it’s just as hard to find really good HTML developers as it is Cocoa Touch jockeys, and if you want any kind of polish at all, you’ll need the best web talent.  Second, these teams are actually increasing their staffing requirements from a single core competency to four of them:

  • Core web skills (HTML5 / CSS / JavaScript)
  • A rich web app framework (Sencha Touch, JQuery Mobile, etc)
  • The PhoneGap framework and tools
  • Apple’s iOS development suite (Xcode, the Objective-C language, and the Cocoa Touch frameworks)

Good luck with your hiring.  Third, you’ll spend a ton of time with caching and loading strategies to make the app feel smooth, not to mention all the UI tweaking and everything you’ll need to do to get it just right.  It’s so much effort that, in my experience, most hybrid development teams simply don’t do it— their apps ship with a depressing lack of polish.

Finally, you’re at the mercy of a third-party compatibility layer to be timely with updates when a new system version lands, or when bugs are discovered; if you want to get the newest features in the latest iOS integrated with your app as quickly as possible, native is the only way to go.  Any other approach will automatically put you in “fast follower” territory, at best.

Please note that I’m not saying that if you’re doing native development, your app is automatically good. There are a lot of ways to do native development wrong, and indeed, it seems that most native development groups are working far harder than they have to in order to bring their apps to market, while still ultimately releasing mediocre products.  If you want to save time and money, there are myriad ways to improve your approach to native development without hopping aboard the “Native development BAAAD!” bandwagon, and you can improve your customer experience at the same time.

Start by getting your house in order from the bottom, upward:

  • Make sure your web services are smart enough that you don’t have to code a ton of client-side business logic to decide what UI elements to present.
  • Clean up your model and networking layer so you can avoid a potential mess of spaghetti code every time you add a feature.
  • Simplify and unify your component library, eliminating or merging all of the one-off UIView and UITableViewCell subclasses you’ve got floating around that probably all do the same thing.

Most importantly, strive to create application designs that allow you to use as many built-in framework objects and patterns as possible.  I’m not saying that your app should be boilerplate; devoid of style or brand. I’m saying that you should go get the human interface guidelines for your platform, and follow them.  Learn your frameworks, and understand which customizations are easy, and which might be avoided to prevent headaches.

If you’re creating a ton of objects and patterns to sidestep the framework, it’s likely that you’ve entered the “should be avoided” category, and your app needs to be redesigned.  Those “workaround” objects are expensive twice: they’re difficult and time-consuming to plan and create, and then they’re the first objects to break when an OS update lands, causing you to spend time and money patching them to preserve functionality that probably shouldn’t be there at all.

Designed in the USA. Made in the USA.

On my quest to find an awesome iPad 2 case, I have discovered that the spirit of entrepreneurship and craftsmanship are still alive here in the USA. The guys at grove, who are based in Portland, OR, do absolutely amazing work, and ultimately, I gave them my business.  However, I wouldn’t want to sell short companies like Blackbox, who are located in Golden, Colorado; or Rustic Case, which is in Templeton, MA.

I went through dozens and dozens of case options before picking grove’s, and I know it’ll be worth the wait to get it.  The best part of the search, though, was finding that the most beautiful, elegant, innovative products were designed and hand-built by happy workers, with genuine quality and safe materials, by companies right here at home.

Says AndroidSPIN: “iPhone Users Getting Fed Up, Switching to Android”

I’ve come close to being one of them.  Very close.  In fact, if I had the funds, I’d have two phones right now.

However, when I decide which horse to back (or any time I’m making software), I have to constantly remind myself that I’m a geek, and not representative of the population at large (the ones for whom I am making said software).  Apple is still doing it best for 95% of the people who would want a smartphone

That article’s author is particularly bad about remembering that, and quite frankly, the whole article is full of half-truths bordering on wishful thinking (hey, the site is called AndroidSPIN)…

  • “Open Source is what customers want.” No, it is not.  It’s what we geeks want.  Customers couldn’t care less.  They want something that works—the way they would expect.  Apple delivers.
  • “A lot of the iPhone users I’ve talked to are either switching to or already have switched to Android.” Ah yes, anecdotal evidence: so damning.  I’m sure the people he’s talking to are the type who would be switcher types.

I’m seeing a fair bit of misdirection in there on other topics, too.  I’ll cover them as I come across them.

Constant updates: All iPhone users get all iPhone updates simultaneously.  This is far from true if you’re running Android.  Depending on the carrier/device you have, Android updates may be far less frequent, or may never come.  For this reason, I always tell people that if they want an Android phone, they should lean toward a stock Android device, like the N1 or the Droid.

Listening to its users: Last time I checked, Eric Schmidt hasn’t been replying to Google customers’ emails directly.  :D  But specifically, what are users and developers asking for?  Apple dropped DRM from iTunes entirely… other media types are, ostensibly, next in line.  iPhone OS 4.0 has multitasking and background services.  The next iPhone (currently) has a front-facing camera.  Here, again, our community of hardcore geeks may be completely justified in feeling that Apple is not meeting their needs, but would seem that nobody is listening to the masses better than Apple.

Developer freedom: Time for my own anecdotal evidence, I guess.  I’ve got a half-dozen ideas for iPhone applications, all of which I’m sure would make decent money.  None of them would have any problem clearing Apple’s approval process.  I just attended a local iPhone developer group meeting which filled an auditorium with people who are shipping iPhone apps with no issues.  I find it hard to believe that any talented developer with a decent amount of creativity and imagination would have trouble doing the exact same thing.  I also catch a lot of Android fanboys griping about Apple’s process when they never even tried to get an iPhone app on the App Store.  If you’re just assuming, then your problems are your own, and you’re doing nothing to help the situation.  But if you did try, and your app was rejected, then get it on the Android Market quick, because if it sells well, that is the only thing that will convince Apple to let you do your thing on their platform.  Significant sales.

The Numbers Game: First of all, Android should be growing a lot faster than iPhone… it’s a wonderful product, it’s marketed well, and it has a lot more room to grow than Apple’s offering.  Android-based devices have, indeed, flourished lately, but you have to remember that that’s been in a marketing environment nearly devoid of Apple’s presence… Apple has been damned near silent since the launch of the iPhone 3Gs and prior to iPad.  That’s nearly a year of down-time for Apple, and it concides perfectly with Android’s growth curve.  Realistically, one has to expect that Android’s growth will slow significantly with the advent of the next iPhone and the 4.0 OS.

Would I love to have an Android device for my own uses?  You bet.  If I had the resources, would I develop for both?  Absolutely.   But when it comes to which platform I’m gonna back, I’m not moved from Apple’s offering, which also happens to be more than good enough for my personal needs.

As a side note, I laughed my butt off at the image of the Green Robot relieving itself on the Apple logo.  Very cute; well done.


Microsoft How-To: “Porting” From iPhone to WinMo.

Microsoft has released an article detailing how to port a particular Cocoa Touch to Windows mobile. The catch: the app in question relies particularly little on the Cocoa framework, it handles its own widgetry and visual display. This is rarely the case in an iPhone app… most of them make heavy usage of UIKit and Foundation objects to get the job done. The best advice for porting these apps? Don’t.

There is no analog to most of the Cocoa Touch frameworks on Windows Mobile, and most WinMo devices simply can’t DO at the hardware level what a lot of iPhone apps take for granted as basic device functionality. Porting an app of any complexity will usually be nigh impossible… it will require a complete rewrite. The rewrite process is basically what Microsoft’s article details. The same goes for Pre, Android, or Blackberry.

For any given app, when you’re beginning development, Microsoft would probably advise that you not use any of the frameworks Apple has provided, outside of basic executable functionality, opting instead for custom drawing routines handwritten by the developer, or using only the most basic shared libraries. This would definitely benefit their platform, as your app would be easier to port, but it would entirely negate the rapid app development advantage offered by the iPhone (and Mac OS X, for that matter) frameworks over every other API out there. And to top it off, you’d be going through all this extra effort for what is becoming an ever smaller marginal increase in revenue.

While I do recommend creating code with an eye toward portability (especially stuff like custom drawing or OpenGL code), my advice to developers seeking to do a multiple-platform release is the same advice I’d give to a desktop developer: create a common C library for handling proprietary data formats, specialized encryption, custom communication protocols, etc. Then, build your UI using the native frameworks available on each device, taking advantage of each platform’s special functionality, and maximizing the fit and finish for each.

Palm Plays Dirty, Whines to Ref When Checked

Every so often, it seems that someone needs to be reminded that it is not illegal to have a monopoly, only to use the power of that monopoly to impede competition.  We all want to see the little guy succeed and compete effectively, forcing its competitors to react and improve.  The underdog, however, does not get a free pass to overstep its legal bounds, simply because they’re up against harsh odds.

Recently, there’s been a lot of talk about Palm’s hack that allows them to sync with iTunes.  Apple released an update to iTunes, which closed that hacking method.  Now, Palm has updated the PrÄ“ to use a lower-level hack, restoring iTunes sync capability.  Apple will soon respond in kind, and they have every legal right to do so.  They would, in fact, be derelict in their duties if they did not.

At the same time, Palm has built upon consumers’ misplaced sympathies by complaining to the USB governing body that Apple is using its Vendor ID unfairly to limit access to iTunes. A lot of people like to scream that these actions are like “the ‘Man’ keeping Palm down,” which is an unfair assessment; Apple has done nothing to keep Palm from reaping the rewards of their own efforts, and Apple is certainly not obligated to share any of their own success with Palm.

Palm has created an iPhone alternative, the first new smartphone to really compete on level ground with the iPhone. Apple has done nothing to prevent this, nor has it made any specious claims to deter people from buying the Prē.  And now, having done that so successfully, Palm is equally free to create their own media player and sync software solution which integrates seamlessly with the Prē.  Apple would not want to stand in their way, and they are legally prevented from doing so.

Palm is NOT, however, free to force Apple to allow their device to sync with iTunes.  They are violating several licenses and agreements with their actions, and they haven’t a legal leg on which to stand.  A few points:

  • Apple owns their USB vendor ID. It is prohibited for Palm to use Apple’s ID at all, let alone in the fraudulent way in which it is using it.
  • Apple owns iTunes. They are free to set the license for its use, and to restrict its connectivity to a selected set of devices manufactured by themselves and by their partners.
  • Customers are free to vote with their dollars. If Apple’s restrictions impact the consumer negatively, buyers will take their business elsewhere.

And the final nail in the coffin of Palm’s legal chances:  Apple is probably open to the idea of the PrÄ“ syncing with iTunes! Oh, but make no mistake… Palm would to have to pay (whether monetarily, through a partnership, or with some other concession) a fair price for the privilege of integrating with iTunes and benefiting from Apple’s hard work.

There is no legal quandary here.  If Palm wants into iTunes, they need to pay up.  Otherwise, they need to STFD and STFU before something bad happens to them.

Apple closes a window, opens a door

I recently learned of Apple’s decision to make Macworld 2009 its last.  While this news is somewhat sad to hear, it’s hardly unexpected; Apple has been steadily eliminating many similar events, including Apple Expo, Macworld Tokyo, and Macworld Boston, for several years now.  And while this turn of events may be difficult for many Mac fanatics to swallow (perhaps even harder for the third parties who convene there to sell Mac-focused goods and services) it’s really not bad news, and the move actually makes a lot of sense on Apple’s part.

For a decade, Apple has been throwing this party: a Mac-specific event designed to rally the troops, getting the faithful together and spreading the word about what they’re putting on store shelves next.  It is a truly grand event, and in years past, it’s been well worth the massive expenditure required to make it happen.  But things are different now.  Apple no longer needs to hold their own party to get people to pay attention; what tech-savvy individual doesn’t know when a new iPod comes out these days?  Or when Mac OS X gets a major update?  Apple has earned the coverage in major publications — and even in the mainstream media — necessary to keep the masses informed about the big announcements.

But not every Apple product is Mac OS X, iPhone, or iPod.  What about updates to their computers, or other hardware such as displays, Apple TV, or Airport?  How will those less-prominent products gain exposure?  The answer is simple: they will do it at the same conventions, electronics shows, and expositions where every other manufacturer does it.  After years of (undeserved) obscurity, Apple has finally earned the right to sit at the same table as the likes of HP, Intel, Microsoft, and Dell; so it only stands to reason that they be a major player at the same established events to show off their new offerings.

By abandoning their solo show and attending the big industry events, Apple doesn’t have to shoulder the expense of the logistics associated with a major convention (building, staff, food, networking, etc) and they can focus their resources solely on their own booth, which will be much more grand as a result.  The best part is that Apples presence at the show, and the shiny new products announced therein, can be directly compared and contrasted with those of their competitors’.  The Apple advantage will become all the more clear to the consumer, and Apple will need to be all the more focused on maintaining their lead in the marketplace.

On a final note, if you still want to attend an Apple-cultural event, I would recommend you think about downloading the free Xcode developer tools, learning about Cocoa, and writing your own Mac OS X or iPhone application.  Then, attend Apple’s Worldwide Developer Conference, where you can experience the same familial atmosphere which can only be created by a bunch of extreme Mac-heads learning about new Apple technologies.  While MacWorld’s time has passed, I can’t imagine that WWDC (which has enjoyed explosive growth over the past two years) would be going away any time soon.

Jailbroken iPhone? Change that root password safely!

When you jailbreak your iPhone these days, SSH (secure shell) for remote connections is automatically installed.  It’s really handy to be able to connect, but there’s one issue:

The root password for every single iPhone (1.1.4, anyway) is “alpine”.

This means that by default, when SSH is enabled, anyone can connect to your device and wreak havoc.  It’s wise to do something about this, so one of the first commands savvy users will type in after connecting is…

# passwd root

…to set their own password.  This is actually a bad idea, because the passwd tool doesn’t work correctly on the iPhone (it’s not a normal function of the device) and you’ll wind up stuck in an endless crash loop.

But fear not!  There is a way to change your password (and, if you happen to have gotten stuck in that loop, fix the issue).  It’s all detailed on this page at matsimitsu.nl, for which I was immensely grateful.

If your 1.1.3 or 1.1.4 iPhone is jailbroken, go do it, and be successful with it.

Open Is Good, Usable Is Better…

… even in the Mobile space.

Unless you’re living in a Faraday cage, you’ve seen the Internet hype around Android, Google’s mobile platform. The iPhone-alternative seekers and FOSS evangelists are engaging in a collective circle-jerk around it, because it has the potential to “beat the iPhone” and bring open-source to mobile. I think it will definitely have a profound impact on mobile devices, and there’s no disputing that an open mobile platform is exciting, especially one backed by Google. But guys, I’m not ready to circle up just yet. My apologies.

Yes, Open Source is definitely awesome, but its potential for “beating the iPhone” is limited. If there’s one way that Apple humiliates everyone else, it’s with their ability to make something universally usable. Personally, I love all that Android’s open nature has to offer the hardcore power users and developers. Open-source is great, offering infinite freedom for niche geeks like you and I, but that doesn’t translate to something that’s going to make it in the mainstream market.

Continue reading

Brawl Delayed: ZOMG TEH DOOMED!!11~

So now we’ve got this walking pile of fail over at Wired predicting MICROSOFTALYPSE this holiday season, just because Nintendo has decided to push back the release of Super Smash Bros: Brawl to January 2008. Three whopping months. Sweet Tree-Topping Jebus, where do I start with this?

How about this approach: I’ll come right out and say it. Halo 3 notwithstanding, there is minuscule-to-no chance whatsoever that Microsoft will catch up to Nintendo, or even beat their sales numbers, in this upcoming season. Super Smash Bros: Brawl’s availability (or lack thereof) will have a less-than-significant impact on performance this Christmas.

Look, I know all the hardcore Wii gamers (myself included) are frothing at the mouth for SSB:B, but you all have to realize that we’re in the minority as highly-connected, hardcore gamers. A whole lot of Nintendo console owners (the clear majority, I’d wager) have never purchased a Super Smash Brothers title in any incarnation. A slightly larger percentage have played someone else’s copy, and many more have heard of it. The negative effect of its absence from the shelves for the next three months can’t begin to compare to the positive effect of the presence of universally appealing titles that everyone has been waiting for. Especially one in particular… Continue reading