As Steve Jobs’ keynote at Apple’s WWDC (Worldwide Developers’ Conference) chugged towards its end with no word of the 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 media-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 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 security and stability.
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 will all 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 and 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 added gravity to his point by dropping the name of the 800-pound gorilla in the web app business, Salesforce.com.
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% 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.