Opinion: Jobs' ideal iPhone app won't run on an iPhone
Which AJAX toolset would you use to develop a mobile application? I’ll give you the answer at the end.
As Steve Jobs’ WWDC keynote chugged toward its end with no word of iPhone, I felt a sense of foreboding. Won’t we even see a detailed demo? Leopard deserved a re-warming, and Jobs pulled that off brilliantly. So where the hell are the pre-sales fireworks for iPhone?
No fireworks. Instead, Jobs dumped a bucket of opaque glaze bearing the Press-mollifying label “AJAX & Web 2.0” over the reality that developers have been locked out of iPhone, completing the Apple no-touch trifecta of iPod, Apple TV and iPhone. Jobs said that the decision had been taken after a struggle over the best approach, and that the chosen solution, unlimited freedom to write server-hosted mobile Web applications that use Safari as a front end, gave developers access to the iPhone platform without sacrificing its security and stability.
Perhaps I was the only person in the room who’s actually developed mobile software, one who believes that mobile and embedded software are the next frontier for forward-looking developers who are looking toward being employable in 10 years. I found Steve’s statement, with its meaning translated, that the platform was closed because a) Apple doesn’t want to support it, b) Apple wants to pick and choose developers that are allowed to create native applications for iPhone (and there will be plenty), and c) open tools means that Windows Media, RealPlayer, Flash, Java, Silverlight and who knows what all will creep onto the platform. BlackBerry, Windows Mobile and Symbian/Nokia let developers run wild on their devices with free tools, forums and documentation. That’s how you run a mobile handset business. Nokia phones are programmable in Java, C, Python, and now, in C with a large subset of POSIX that covers the TCP/IP stack.
Jobs portrayed AJAX and Web 2.0 as models for the applications of the future, and he added gravity to his point by dropping the name of the 800-pound gorilla in the Web application business, salesforce.com. They’re true believers, all right. Salesforce’s service mark is the word “Software” in a circle with a line through it.
Steve managed to pick the perfect example. True, Salesforce has done more with and for the Web-based application software model than just about anybody. Salesforce takes pride in the fact that its server-based software runs anywhere, with the server doing 100 percent of the heavy lifting. That’s exactly what Steve advocates when he talks about custom apps for iPhone.
However, if you want to run Salesforce on a mobile device, for God’s sake, says Salesforce, don’t use a browser! Use established platforms—BlackBerry, Symbian, Windows Mobile. Use their native APIs and stay aware of changes. Make sure that you handle unreliable connections in your code, caching as much as possible and listening on sockets for incoming session requests. Managers need to be able to provision, track, manage, erase and lock out all deployed devices from a central console. Salesforce and I have never met, but we have exactly the same best practice model for mobile apps. Salesforce supports the three mobile platforms that I support: BlackBerry, Windows Mobile and Nokia/Symbian.
Back to the opening riddle: Which AJAX toolset would you use to develop a mobile application? It’s a trick question.