Free Newsletters

   All InfoWorld Newsletters
Ahead of the Curve | Tom Yager » Apple iPhone SDK upends mobile market

March 12, 2008 | Comments: (0)

Apple iPhone SDK upends mobile market

Eight months ago, Apple was a nonplayer in the mobile space. Now, according to Apple, iPhone is the second most popular smartphone solution after BlackBerry. With all the hoopla he raised over iPhone at launch time, it's as if Steve Jobs saw this coming.

What he admits he didn't see coming was the market's reaction to the lack of a software development kit (SDK) that would support third-party apps on iPhone. iPhone is the only smartphone platform without custom application support, and that fact locked Apple out of the fleet sales that are RIM's bread and butter. It also disenfranchised the Mac developers who put Mac on the map and keep it there with, wouldn't you know it, native applications. I have weighed in on the subject of an iPhone SDK for native software in my usual soft-spoken, dead-horse-friendly way. "Apple, don't brag that iPhone runs OS X," I said, "until developers can get at it."

Come June, Apple gets a pass to brag about its mobile OS all it likes. That's when Apple is slated to deliver its SDK for iPhone, and from the work I'm doing with the publicly available preview tools and documentation, I can attest that iPhone will be the simplest, best-documented, and most enjoyable experience for mobile application developers. I have coded fairly extensively with Symbian, Windows Mobile, and BlackBerry. iPhone just blows them away, making me wonder who decided that mobile development had to be difficult. I'll take that a step further: If you're new to programming, iPhone or iPod Touch is a splendid place to start.

I can't do the iPhone SDK justice in one post, but I can hit a couple of the high notes that earn Apple props for taking the SDK further than it had to. For openers, application developers don't need to use Objective-C, C, or C++ to write software for iPhone. Apple added the one thing I was sure it wouldn't add -- data persistence -- to iPhone's Safari browser, paving the way for applications crafted in JavaScript, HTML, and CSS that run even when the network is unavailable. What's more, iPhone's JavaScript persistence doesn't force programmers to deal with flat text files or XML. It uses SQL, complete with transactions. Apple also put some flash (ahem) in Safari's GUI with built-in support for Scalable Vector Graphics (SVG) and both automatic and explicit animation. Apple supplies Web app code snippets that mimic iPhone's native GUI, and a Web application can take over the whole screen, leaving no trace that it's running in the browser. iPhone's offline Web app support is so strong that I'm looking forward to seeing it ported to Safari for the desktop.

On the native side, we now know that the iPhone OS is based on OS X 10.5, a.k.a. Leopard, and that Apple has catered to Mac developers. Their skills, and fair chunks of their code, will move readily to iPhone. In fact, there are so many similarities between the Mac and iPhone that much of learning to code for iPhone is familiarizing yourself with what you can't do. For example, the same presentation facilities, such as OpenGL and Quartz, are present in desktop and iPhone OS X, but OpenGL is slimmed down to OpenGL ES (embedded systems), and Quartz is limited to 2-D graphics. But use the word "limited" carefully where the iPhone SDK is concerned. Quartz may be limited to 2-D, but it can still load, display, scale, annotate, and save PDF files. Can your phone or music player do that?

Native iPhone applications have access to standard POSIX C APIs and other must-haves such as Berkeley Sockets for TCP/IP communication. All third-party code runs in a sandbox, meaning that the OS exerts tight control over its access to system calls, TCP ports, files, and other resources. You can't write an application that dips into another app's files. You can't write a custom mail or Telnet server that listens on the standard TCP ports for these services, whether the iPhone OS is using those ports or not. Of course, there's no path from the sandbox to any device internals that you could use to flip the phone to a different wireless operator. The sandbox is tight enough that a hacker would have to punch through it to pillage or hobble your iPhone, and Apple has set it up so that every application can be traced back to its creator. Apple's method for registering and certifying applications will engender controversy, but users need to know that they can sample the riches of iPhone software in complete safety.

I'll leave you with two details that put iPhone way over the top for developers: namely, the multitouch display and the three-axis accelerometer. Both of these are accessible in native code as well as JavaScript. Complex multitouch gestures such as pinch, spread, sweep, and circle are sent to software as events along with the basic tap and drag. To make the on-screen keyboard appear, you don't ask for it. You simply move the focus to a text field.

The accelerometer is developer candy that will break Apple into the gaming market in a way that the Mac never could. iPhone can sense orientation and movement in 3-D space. As you move, or whatever is carrying your iPhone or iPod Touch moves, an application can know about it. The possibilities are endless, and there are serious uses for 3-D position sensing that can't be set aside. It's an ultimately intuitive controller for complex processes that currently require operators to bypass humans' natural 3-D perception in favor of 2-D controls such as buttons, switches, mice, and joysticks.

It's my job to dream big, but developers will come up with far more down-to-earth uses for iPhone and iPod Touch. Apple's main interest is in opening iPhone to enterprises that demand mobile devices they can customize to suit their needs. The SDK gets Apple there, and Apple's Mac-like approach stuffs the market with thousands of developers ready to code for the phone. Those enterprises in need of custom code for fleet-issued handsets don't have to look very far for talent. By year's end, there will be a glut of great software for iPhone and iPod Touch, much of which will cost nothing. And to top it off, Apple will host the entire catalog of third-party software.

Will this change the world? Apple would argue that iPhone did that when it was launched, but I disagreed. In June, when iPhone firmware is updated to Version 2.0 and the object is opened to developers, I'll see the device that I hoped iPhone would be. That will instantly transform high-end consumer phones and music players, and it will gradually alter the landscape for commercial mobile devices. Much depends on how hard competitors are willing to work on their SDKs and developer programs. Communities of mobile developers are scattered and poorly supported. At least in iPhone, other mobile players have a model that reaches from platform and dev tools through distribution and billing.

Perhaps there will be some surprises coming out of the CTIA (Cellular Telecommunications and Internet Association) conference that's just around the corner. Something's going to happen, because Microsoft, Nokia, and RIM can't sit still while Apple accumulates mobile market mindshare, and market share, through its application catalog and developer buzz. There is already electricity in the air. Microsoft and Nokia have declared significant other-ship on Microsoft's Silverlight (nee cross-platform .Net), and RIM is rolling out a substantial firmware update to keep its platform fresh. This is all good; they'll need momentum because when Apple's mobile software catalog, dubbed AppStore, goes online, users of other platforms will start asking their handset makers why they can't share in the riches.

[ For more on the iPhone's potential in the enterprise, see Tom Yager's initial reaction, his iPhone 2.0 Q&A, and our Special Report: IT's guide to the iPhone ]

Posted by Tom Yager on March 12, 2008 03:00 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Beware BlackBerry and Nokia, Apple iPhone is on the prowl. I had a thinking that developing apps for the iPhone will be dificult. But this articles is a ray of hope. I love this article.

Thanks.

Posted by: sachin at March 12, 2008 07:57 AM

I examined 10 factors that put Apple in an unassailable position in the mobile platform wars and reviewed the weaknesses of iPhone competitors in:

Who can beat iPhone 2.0?
http://counternotions.com/2008/03/10/iphone2-competitors/

Posted by: Kontra at March 12, 2008 09:39 AM

I sure wish this article included more details about the development environment. Is there a simulator? A remote debugger? Do I have to have an iPhone in order to develop for it?

Posted by: spinLock at March 12, 2008 09:55 AM

What about security and management? How long after version 2.0 before people will need security suites for their iPhone and iPod Touch?

Posted by: cwhitmo at March 12, 2008 10:06 AM

@spinLock:

Simulator: Yes, the "Aspen" (iPhone) simulator is included with the iPhone SDK

Remote Debugger: Yes, with performance instrumentation tools

Do you need an iPhone to develop: Depends... some features like Open GL ES only runs when downloaded to the hardware device (which could be an iPod touch)

Posted by: byteCoder at March 12, 2008 10:15 AM

This should really spark native Mac OS X development as well. If anything, native OS X development has improved anyway, but there is also pressure to just run the Windows binaries. New Mac models are coming out soon, and I think we are going to see an incredible continuity between apps running on iPhone/iPod and Mac OS X. I expect the next desktop Macs will have iPhone features as all the Mac laptops already have pinch, rotate, etc...

Sooner or later, it looks like Apple could actually have developers and users, not only on iPhone but also on the desktop.

Posted by: Brewer at March 12, 2008 11:03 AM

You mention C and C++ as well as Javascript. Does the iPhone SDK support straight Java dev as well?

Posted by: Rich at March 12, 2008 11:24 AM

Given that this author is clearly very knowledgeable about this subject, I would have like to have seen him comment on what, from my laymen's view, seems to be one of the biggest downsides of the SDK, namely an apparent prohibition on background operation. I've been seeing a lot of blog posts, etc., suggesting that this would hamper certain types of potential programs (or categories of programs) in a big way. I think it is a compelling argument to say that AOL's AIM software on iPhone will be much less than it could be if it can't operate in the background to notify you when a buddy comes online or when you've received a message. What does the author think?

Posted by: Brad at March 12, 2008 11:48 AM

Too much hype! What's the reality? No Bluetooth. No background applications or drivers, no plugins to existing applications. None of the applications, which I hoped to develop for iPhone appears to be possible. So, I am stuck with WM,Rim and Symbian for now

Posted by: John at March 12, 2008 11:52 AM

There isn't currently a JVM for iPhone, but right after the SDK announcement SUN announced that it would write a JVM for the iPhone with the new SDK.

gary

Posted by: gary at March 12, 2008 11:52 AM

To John: What do you mean by no bluetooth? The iPhone has bluetooth. Is it not accessible in the SDK?

Posted by: John Heaney at March 12, 2008 12:27 PM

At least no documented Bluetooth Api. And use of indocumented Apis is banned by license agreement. So gone a my hopes for a third party BT keyboard, speech synthesis in web browser and many other cool tools

Posted by: john at March 12, 2008 12:47 PM

Excellent article. I have waxed poetic on the potential of this platform but your article puts some decent meat on the bones from a developer perspective.

Keeping things balanced, I recently posted on some of the reasons would-be developers are wise to exercise some caution before fully drinking the kool-ade.

Check out ‘The Scorpion, the Frog and the iPhone SDK’ if interested in that topic:

http://thenetworkgarden.com/weblog/2008/03/the-scorpion-th.html

Cheers,

Mark

Posted by: Mark Sigal at March 12, 2008 02:42 PM

The phone does do background. For example, eMails come in as they are sent in the Entourage program demonstration.

Posted by: Steve at March 12, 2008 02:49 PM

john, get rid of the attitude and send feedback to apple and the ifund on what you want to do (in a business fashion and with some detail). they may surprise you and begin to deal with these things on a case-by-case basis.

Posted by: jones at March 12, 2008 03:15 PM

I'll bet the time and project tracking apps out there (like for lawyers and other by-the-hour professionals) will get iPhone apps where you enter a client code, hit "go", add a text note, and later hit "stop", synch up with the mother ship every so often, and there you have a rough time sheet waiting for you.

It doesn't entirely remove the time sheet pain, but can reduce it some.

Posted by: yowsers at March 12, 2008 04:37 PM

The interest from companies in developing native iPhone apps is staggering. I am fielding several inquiries per day from companies who want real apps built today. To help developers and projects find each other I have created a community called iPhoneIncubator.com. Post your resume or project.

Nick Dalton
Author of 101 iPhone Tips & Tricks

Posted by: Nick Dalton at March 12, 2008 09:34 PM

Did Tom Yager really write a piece that didn't laud AMD?

Tom, did you stop taking your meds or what?

Posted by: hugochavez at March 12, 2008 09:44 PM


Almost all of the complaints about the SDK will be remedied- for instance, the background app thing will be solved by a service that apps can register with which will launch them based on events. I'm predicting this, anyway, as Apple would want to allow the functionality but would want to do it in a secure way-- it just is something that won't be there initially.

Apple produces great products because they know to focus on what's most important and deliver a quality version of a limited feature set right off the bat, and then over time, add all the extra features that people want.

So, lots of times people complain that Apple didn't do what they want (like provide an SDK at launch of the phone) but actually the qualtiy of the phone is better because of this... and when the time is right, Apple generally delivers above expectations.

This SDK is going to be the same way. The next release of it will probably take care of most of people's wishes.

This one just has to be solid- and they deliver a lot in this initial version, its quite amazing.

Posted by: Jay at March 13, 2008 12:12 PM

Not really, by limited a small number of "accepted iPhone SDK developers" Apple has already "destroyed" the enthusiasm and the passion for developing iPhone apps!!!

That's not a smart move!

Posted by: Sydney at March 15, 2008 03:19 PM

its clour very attractive

Posted by: rahul p nikalje at March 24, 2008 10:55 AM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links