Thursday, September 26, 2013


Announcing EasyRes, a Mac OS X fast screen resolution switcher with live animated previews.

EasyRes is my new Mac app, a little utility I developed for myself, before polishing it up and releasing it in the Mac App Store. I found that I was switching resolutions a lot more frequently on the Retina MacBook Pro, which has more usable resolutions due to the high pixel density. Not impressed with the quality of the existing apps out there, I wrote my own.

Although a relatively simple app, which aims to do one thing right, it does include a bunch of useful features:
  • Live animated previews of how windows will be sized for each screen resolution by simply mousing over the menu.
  • Quick access to screen resolutions from the menu bar.
  • Resolutions and previews are shown for all active screens.
  • Retina smart: Resolutions are grouped by Retina and non-Retina modes.
  • HDTV smart: TV resolutions such as 1080p, 1080i, 720p are all listed when available, including refresh rates such as 50Hz/60Hz, making it easy to find the right HDTV resolution.
  • Recently selected resolutions are remembered for each screen.
  • User-friendly labels are displayed beside resolutions, such as "Best for Retina Display", "Native", "1080p NTSC".
  • Labels can be added and customised for any resolution on any screen, making it easy to find your favourite resolutions.
  • Option to automatically launch at login.

You can see EasyRes in action in a YouTube video demo.

Friday, June 7, 2013

Reveal Public Beta

My friends at Itty Bitty Apps have released an awesome new tool for iOS developers. Reveal is a Mac OS X application for introspecting iOS apps at runtime. It allows you to visualise and modify view hierarchies in real-time. The view structure can be "exploded" in 3D, with powerful tools for drilling down and isolating the parts of the hierarchy that need attention.

I have been helping the Itty Bitty Apps team develop Reveal for the past 6 months or so. My focus has been on the 3D view hierarchy explosion visualisation, using Scene Kit & OpenGL. We are working hard on getting it all polished and looking awesome for the 1.0 release.

Reveal is currently free during the public beta phase. Take a look at

Wednesday, March 20, 2013

Bluetooth LE with CoreBluetooth Presentation

At February's Melbourne Cocoaheads I gave a presentation about integrating Bluetooth LE peripherals with iOS devices using Apple's Core Bluetooth framework.

Bluetooth LE is the new Bluetooth Low Energy (aka Bluetooth Smart) protocol introduced as part of Bluetooth 4.0. Apple embraced Bluetooth LE early on, adding support for it in the iPhone 4S and almost every Apple device since then, including iPads and Macs.

In the presentation I demonstrated an example iPhone app that connected to two Bluetooth LE peripherals simultaneously. It connected to a Wahoo Fitness Blue HR heart rate strap, measuring my heart rate live as I gave the talk. It also connected to a TI SensorTag, measuring both temperature and acceleration of the device. You'll see why when you watch the presentation.

The TI SensorTag is a great little Bluetooth LE device, containing a bunch of sensors that can all be read over a Bluetooth LE connection. It is handy for development and only costs US$25 direct from Texas Instruments. The sensors include:

  • Temperature (IR and ambient)
  • Humidity
  • Pressure
  • Accelerometer
  • Gyroscope
  • Magnetometer
  • plus 2 digital buttons

By the way, the technical issue I had with the SensorTag during the presentation was fixed by TI in a firmware update (released the morning after my presentation...).

I haven't released the source code to the Coffee Addict demo app I used in the talk yet. I hope to do so in the near future, when I tidy up a few things.

You can watch my presentation on Vimeo:
Bluetooth LE with CoreBluetooth.

You can view the presentation slides on Speaker Deck.