Saturday, October 16, 2010

Apple TV seen through the eyes of an iOS developer

I preordered the new Apple TV the very day it was announced.

The attractive $99 price point certainly helped but really the truth was I couldn’t wait to start writing apps for the Apple TV.

Apple’s engineers have done a phenomenal job with the iOS SDK, especially with UIKit, the API framework and visual language that gives all iPhone/iPad apps a consistent look and feel, and makes it so easy for developers to build sophisticated yet intuitive user interfaces.

I played with my Apple TV over the weekend, checked out the various apps, and jotted down my thoughts on what the UIKit equivalent for Apple TV might look like. It didn't take more than a few seconds playing with the Apple TV to realize that there is a common visual language that is applied consistently across all the apps on the device. It is a big part of what makes the Apple TV so easy to use, which is no small achievement given that it all works with a remote with just 7 buttons. (By contrast, my Comcast remote has 47.) TVKit would probably be the logical name for the framework responsible for the Apple TV's look and feel, but since all this is pure speculation, I'm going to call it ??Kit for now. Where I think there is a TV equivalent of a particular UIKit class, I am going to use the ?? prefix, e.g. ??Label for UILabel.


Friday, October 8, 2010

Javascript Injection using UIWebView

UIWebView is awesome

The UIWebView class and its companion UIWebViewDelegate protocol have just a handful of methods -- far fewer than most UIKit classes -- but don't let their basic appearance fool you.

The most potent of UIWebView's instance methods is without a doubt stringByEvaluatingJavaScriptFromString. You pass it some JavaScript code in an NSString and the UIWebView executes it. The injected JavaScript has full access to the DOM tree of any web page that you load in the web view and can wreak all kinds of havoc, like rearranging all the DOM elements, rewriting the text on the page, injecting webkit animations, and so on.

Tuesday, October 5, 2010

A Brief History of the Ultimate Poop App

In the early days of the iPhone app store, when fart apps ruled the charts, I set myself the goal of creating the one ultimate poop app to rule them all. It had to be much, much more than one of those sound boards for playing fart sounds. (It was no secret to anyone in the iPhone developer community that every one of those apps could have been written in 5 minutes by downloading Apple's sample iPhone code for playing sound files and swapping out the sound file with one of their finest flatulence.) No, my app had to use real technology, like OpenGL ES, fancy parametric 3D modeling and state-of-the-art (at least on a mobile phone anyway) bump mapped textures. I did not settle for anything less than "SoftServe Machine."

Monday, October 4, 2010

Hello Blogger, goodbye iWeb

I am officially done with iWeb.

I am done fighting it to get my website to render properly across multiple browsers. I am waving goodbye to getting all frustrated over not having any fine-grain control over the generated CSS and HTML to fix a visual glitch that I was pretty sure was iWeb's fault. I am done being forced to lay out my page using absolute positioning when a web 1.0-esque treatment of text and images would have been perfectly adequate.

So hello Blogger, goodbye iWeb.

I'm almost done migrating all the content from the old iWeb website over to Blogger and will soon point www.ziconic.com to this blog. And since this is now technically a blog and not some lame-o marketing website, I plan to start posting about my adventures in iOS dev land. Stay tuned.