iPhone SDK FTW

Comments (2)

I am a strong believer in the Apple way of doing business. I make no secret of that and after a spending a good deal of time researching it has become clear to me that the new additions to the Apple SDK to include support for rapid iPhone development is a death blow to the rest of the Smartphone industry, but it appears that it is not as obvious to my friends and colleagues why.

FTW is a common internet abbreviation of "For The Win" and it best describes what the iPhone SDK means for Apple.

Let's be fair and note that many of the existing Smartphone platforms have SDKs. Windows Mobile, Symbian, Palm OS and Linux all have been around for sometime and are well know for powering the core of all Smartphones. And all of them, except Linux, started life specifically designed for PDA / non-internet enabled devices. And this is the primary reason they all leave so much to be desired as a modern computing environment. At their core, these older OS's lack the functions modern Internet Devices require. And like Windows95™, everything is an afterthought. Any time a developer tries to extend beyond the core architecture or implement a new feature, the process is fraught with conflicts and frustration.

History's Lesson: A Smartphone is not an Internet Device

As I stated, all modern Smartphones owe their origins to a PDA somewhere in its history, except the iPhone, which began life as a modern, mature, full fledged internet enabled OS developed by Apple for the Macintosh line of computer. The iPhone is not a powerful PDA, it is a full fledged computer, and runs on one of the most sophisticated operating systems ever released for a personal computer, the Mac OS X.

Mac OS X is a distant cousin of UNIX similar to how Linux is UNIX's open source cousin. Almost any version of UNIX, properly scaled back and adapted to the less powerful processors used in small Internet Devices, such as the iPhone and Nokia 770/800, would make for an excellent and extensible development platform for a company looking to build an Internet Device. This is the exact reason Google's Android phone OS is based on Linux and also Nokia's non-phone Internet Device (the 770 and 800), However, Apple has gone the extra mile and built upon Unix's solid foundation (called a kernel) and custom written and coded a entire User Interface (UI) layer that is one of the pillars of Apple's rebirth as a company.

I think we all can agree Apple is the undisputed king of the user experience and that is because they did not relay on existing methods to create the user experience, but instead invested millions, dare I say hundreds of millions, in writing their own graphics classes, methods and libraries (called Cocoa) that give all Mac's their lovely and famously homogeneous user experience. It is Apple's near fanatical emphasis on consistent, stable and tightly integrated UI with the kernel that makes all Apple's products highly interactive while maintaining a small/lightweight code foot print which allows for Apple to quickly port the same user experience to a less powerful devices while losing none of the look or feel. Apple simply does more with the same resources than an older less streamlined OS's can. To his credit, Steven Jobs had the vision to invest not in bloat, but in optimization. Something Microsoft has not learned even to this day.

The level of integration and optimization that Apple has achieved has taken nearly a decade and probably another decade on top of that of mistakes with OS 7, 8 and 9 just to know what not to do. There is no single company currently out there with the intellectual property, culture, man power or OS experience to even hope to produce a competing platform as extensive and well thought out as the iPhone for at least several years. Even Google's Android is several years behind the iPhone and it is the single best hope out there. However, the lack of Androids HW integration leaves me to think it may be too late for them as well. Nokia certainly does not currently have the infrastructure and culture in place to write an entire OS from scratch in-house.

What about the SDK?

The Apple philosophy and approach to computing platform and software development is a critical component to understanding the how the iPhone has changed the game.

You may have noticed that when you buy a new Mac, you also get an entire suite of applications that would have to be purchased separately if you were on a PC. The basic/free ones include:
  • iPhoto - organize all your photos
  • iMovie - edit your home video
  • iWeb - make web pages
  • GarageBand - record and edit your own music
  • iDVD - create profession DVD's
  • Safari - web browser
  • iTunes - organize and purchase music directly from apple


Each one of these products is custom written from the ground up and very capable. So, you see, Apple is not just HW and OS and UI, but also software (SW), lots and lots of software. Now if you were writing a lot of software and it all has to work together and have a unified user experience you're going to need a powerful work environment that enables the thousands of Apple employed developers to create the consistency you expect and have built your brand on. Enter Xcode. Also know as the Apple SDK.

This is not a tutorial on Apple software development so I will spare you the details, but Xcode is the primary suite of developer tools used to build nearly all Mac applications and has been refined over many years. And, like most things Apple, it is highly respected as a tightly integrated and powerful development environment designed exactly like any other apple application, to get things done fast. And Apple just released it to the public with all the necessary classes and libraries that Apple used to build the iPhone's builtin apps. And it is free.

Apple has made an extraordinary amount of effort to allows any programmer with a foundation in Objective C, C or C++ to concentrate on their applications logic. It is this simplification of the development process that lowers the threshold and invites the average developer to join in on the process. Developing for the platforms such as Symbians (S60) or PalmOS is far more complicated and the steep learning curves on those platforms has always been the reason there are not many (if any) home grown applications for them.

I don't want to belabor the point, but developers are inherently what I call lazy-smart people. This is not exactly a bad thing in software development. You can always count on your developers to seeking the most efficient way to implement a solution and I have seen a coder spend twice as much time working on a shortcut rather than implement an unnecessarily complex method the way it was intended. My point is that developers will gravitate to the environment and platform that gives the most satisfaction and the iPhone SDK is engineered to deliver very high quality user experience in a short time.
 
Most people know that you can "Jailbrake" and hack an iPhone, but what is less know is the depth and breath of iPhone applications already developed by the underground community. The most popular of these home built applications are being "refreashed" with the new iPhone SDK and will be re-released on the Application Store when it goes live in June and available to the entire user base.

Here is just a taste of the wide variety of apps currently available in the underground community:

  • An iPhone app that tracks your music listening habits and posts it to your online profile.
  • A Doom like 3D game where you control your characters movements thru innovative use of the iPhones built-in accelerometers.
  • A Nintendo emulator.
  • A Skype client using the iPhone's earpiece and mic.
  • A mini version of Guitar Hero.
  • An app that downloads the lyrics to the song you're listening to and displays them synchronized with the playback.
  • A full recording studio with virtual instruments called "band".  See video.



The list of free apps goes on and on. Many of them incorporating GPS support, unlocking the potential for truly compelling location based, collaborative applications. Something pundits have dreamed about for years.

It is not everyday a platform comes along that is designed from the inside out for the community to support and develop for and share profits in and it is my belief we are on the brink of a new era in cooperative 3rd party development and the iPhone is leading the way while the rest are still trying to figure out how to make a touch screen keyboard work

In my next article I will look at Apples Application store and what it means to the everyday developer who is eager to build, release and possibly make money from their work on the iPhone thru the Apple distribution channel.

2 Comments

Great post. Software is indeed the key. However, does't the ease of programming good software for the os iphone also apply to bad software? I'm worried the app store will be flooded with crap as was the case with the Atari gaming platform.

Speaking of software, please provide a link or description when you embed Flash. If it is video from Youtube, the link will allow me to view the video on my iPod touch. If it isn't Youtube, than I can e-mail myself the link and whatch it later at my computer. Dailymotion includes a link automatically.

AVG,

Thanks for bringing up the point about "bad" software. The community, as with the underground apps, will vet the software and "squash" the worst of it. That is what Web2.0 is all about, self policing.

It should be noted that Apple has reserved the right to review and reject any app before they allow it in the store. So there is a bit of policing happening on the corp. level as well. A perfect example of this will be Apple not allowing any app to transmit VoIP traffic over the 3G network. Protecting AT&T's core business and also preserving the limited network capacity available over 3G. However, You will be able to do VoIP via WiFi.

I am sure there will be a hack for that too.

Leave a comment

Recent Entries