iPad after a few weeks

Now that I've been working with the iPad for a few weeks, I really like what Apple has done with the development process. 

Making Hybrid iPhone/iPad applications is very easy for existing iPhone apps. You simply open up the xib in IB and select the File -> Create iPad version menu option. That combined with UI_USER_INTERFACE_IDIOM() and you can reuse all your existing view controllers while having full control over how you handle specific devices. 

I think there merit in making hybrid apps from existing iPhone apps in many cases. Nibipedia for instance is a perfect candidate for this. It is a small lightweight app that is mostly UIWebView driven. There isn't a lot of UI code for animations or dynamic view creation. It makes sense to just create a hybrid app.

Hansel on the other hand is more complicated. My initial attempt to make a hybrid app has failed miserably. The main problem is that I have lots of UI code that moves views around and makes assumptions about the device, that it is indeed an iPhone. While I could have written it in a more generic fashion, I never felt the need to do so. It didn't seem like there was enough benefit for spending the extra time on a free app. 

The thing with UI animation code is that it tends to not be as reusable. Some of the code I am able to reuse via clipboard inheritance. However, I created those effects specifically for Hansel and not with the intention of reusing them or for that matter with the intent of supporting the iPad or any other device. I will end up creating separate iPad view controllers for Hansel, if and when I get around to porting it. There really isn't a big need for me to do so. I created Hansel as a free app so I could easily show my iPhone app development skills. It was created to be a simple application and it will probably stay that way on the iPhone only. 

Back to the topic at hand. Creating Contacts Map was a great experience. It is meant to be an iPad only app. While it could be done on the iPhone pretty easily, the iPad is perfect for this app (or maybe this app is perfect for the iPad...). Again, I am doing this work to show that I can do iPad development and that I am capable with both the SDK and web service consumption. It will be up in the app store soon, I just have to find an icon for it and I'll be good to go.

I have a good concept for my next application involving the iPad, which will also have a Mac component. It centers around remote control of the Mac for machines setup as media centers. More on that next time.

Even your worst day has a lesson to learn.