23 October 2010

Invisible shield

I've had an ZAGG Invisible Shield on my iPhone 4 almost since I bought it, as I'd heard good things about them from a few people and from the hype around them, they seemed to be the best screen protector for any given device.

Initially I wasn't too sure about the feel of them, they made the glass almost feel sticky, which was strange at first, but I got used to it. The instructions supplied were the best of any screen protector I've bought, the application fluid was also a nice touch.

The problems started with the Invisible Shield after a few months when the top corners of the front shield started to come unstuck, possibly triggered by me taking the phone in and out of cases (more on this later), eventually the problem became worse, as the corners got dust under them and wouldn't stick back down. This came to a head last weekend when I was down in London, the front shield managed to stick itself to itself, rather than my iPhone. In the end I just took it off, and was instantly reminded of how nice the glass screen on the iPhone 4 felt, even though I was slightly paranoid about scratching it. It may have been superficial, but I'm sure that the screen seemed sharper/brighter too.

When I got home I decided to fit one of the cheap eBay screen protectors I'd bought in anticipation of the iPhone arriving, but them I remembered that I'd got a free screen protector with the Cygnett Molecule Silicon Case I'd bought at the same time as my ZAGG Invisible Shield, but not used due to the "superior screen protector", so I fitted this one. It wasn't as easy to fit as the Invisible Shield, there are still a few small bubbles, but wow - it feels almost like the naked screen and I couldn't see any difference in the image quality. I still have the Invisible Shield on the back of the iPhone and it doesn't feel quite as good, so when time comes to replace the screen protector I will look for one that comes with both sides and ditch the Invisible Shield for good.

Some may be wondering why I feel the need to use both an Invisible Shield and a case, but it all honesty I'd rather just use a case, as when I'm in my car, the iPhone is in the centre console, so it can be hooked up to my car stereo and with the nature of my car (MX-5 with race suspension) it gets chucked around a fair bit. I'm also a little bit clumsy and even the best film protector won't protect from me, but I can't use my alarm clock dock with my phone in a case and sometimes cases are too bulky with certain trousers.

04 October 2010

HelloWorld - Apple tutorial

After reading all the pre requisites for the "Your First iOS Application" guide on the Apple Developer Center, which was actually quite dry reading, I felt it was about time to crack on with the tutorial, on the basis that the theory may make a bit more sense after I've applied some of it.

The guide itself was a lot more complicated than the one I followed from the Stanford University course on iTunes U as it used a view controller for the GUI, rather than just adding the GUI elements to the background of the application. It is a lot more work on such a simple application, but I can see how it will benefit more complex applications.

One thing did continue to confuese me though with interface builder. I was using the handy blue dotted lines in interface builder to line up all my UI elements, the text field was showing as having a margin to the status bar at the top, however, when I ran the app in the iPhone emulator, the text field was butted right up against the status bar. This really confused me, as I double checked all the code, which was correct and couldn't imagine that Apple would show the status bar on the interface builder, then have it not accounted for when positioning the UI elements.

When I had convinced myself that I hadn't made some sort of school boy error, I consulted Google and came across a thread on the iPhone Dev SDK forum and saw that at least I wasn't the only person to have discovered this issue and that the following code needed to be added after the display has been drawn:
self.view.frame = [[UIScreen mainScreen] applicationFrame];