It was this past January when Steve Jobs introduced the iPad for first time and gave us some clues about the new space in the platform ecosystem the iPad will be used for.
With the iPad in my hands, I can say, without a doubt, that the iPad will be a success. Not only because iPads were out of stock during it’s pre-sale, but because developers believe in the platform, as evidenced by the fact that thousand of applications were approved for the iPad the first day of sale (http://images.apple.com/ipad/apps-for-ipad/). Developer Omar Gomez described this phenomenon in a single quote “The iPad (and like the iPod before it) is going to be a success for one simple reason: is designed for users, not engineers.”
A lot of people see the iPad simply as an iPhone with a bigger screen. As a developer and user, I found a big difference from one device to the other. Even though the hardware is similar, the iPad is designed for an all new set of applications that can drastically change the way the user does simple tasks like read the news, check emails, surf the web, play games, and so on. So the iPad is more like a tablet PC, but as we will see soon, with a lot of differences from other tablets PC currently on the market.
Technically speaking, the iPad core architecture is the same as it is for the iPhone. For instance:
- Only one application runs at a time.
- Each application executes inside a sandbox environment.
- Memory is not paged to and from the disk.
- Custom plug-ins and frameworks are not supported.
There are also some new things. The iPad has more screen real estate, with a screen measuring 1024 by 768 pixels. There are also new UI elements like split views (a way to present two custom views side-by-side) and popovers (layer content temporarily on top of your existing views). Additionally the iPad can now be connected to an external display or projector.
Starting a project for iPad
As a developer there is an opportunity to reuse a lot of code that I have been writing for two years for the iPhone, and rethink the appropriate way to implement these applications for the iPad. For instance, I successfully ported two applications (Laker Mobile and Quick Graph) to the iPad using different techniques.
If you would like to write a project from scratch, then Apple strongly recommends writing it as a universal application. A universal application is a single application that runs optimized for iPhone, iPod touch, and iPad devices. But, what about if you have a project for the iPhone and you want to make a new version for the iPad? In this case you have three options:
- Create a universal application.
- Use a single project to create two separate applications.
- Use separate projects to create applications.
Personally, I don’t think the third option is very useful. It may be easier to start two different projects, but maintaining a single project for both iPhone and iPad development simplifies the development process tremendously by allowing you to share code between two separate applications.
For Laker Mobile, I used a single project to create two separate applications (option 2), and for Quick Graph I opted for a universal application (option 1). Both solutions are similar; there is only one set of code for both platforms Runtime conditionals define which code/features are to be used depending on the underlying platform, which yields a single binary file for all target platforms. Apple recommends option 1, but this option is harder to test, because one change could solve a problem in one platform and affect the other one. Using a single project to create two separate applications is a simple approach. You can link different files (source, media, arts, etc) to each platform, but then you end up with two different binaries in the App Store. That is the case of the GVSU application; we have Laker Mobile for the iPhone/iPod users and Laker Mobile HD for the iPad users.
As a final note, in the case of the iPad, the combination of beautiful hardware and elegant software is undeniable, and Apple has given us iPhone developers another opportunity to create amazing and useful applications. I am very optimistic about the opportunities I have with regard to the iPad, and I intend to take full advantage of them.
Quick Graph URL:http://itunes.com/apps/quickgraph
Laker Mobile URL:http://itunes.apple.com/us/app/gvsu-laker-mobile/id357181244?mt=8
Laker Mobile HD URL: http://bit.ly/bVy5gD