One Application, Five Screens (Including the iPad)

This morning, I was able to validate a concept I’ve been working on for a couple of weeks now: running one application — completely unchanged — on five different screens:

  • iPad
  • iPhone/iPod touch
  • Motorola Droid
  • Desktop (Mac, Windows, and Linux)
  • Browser

The application is called iReverse, and it’s is a fully functional Reversi game (complete with a pretty decent AI). Although iReverse is fun to play, the most amazing thing about the project is the fact that it runs in all these different environments completely unchanged. In other words, the exact same code base is used to build versions for five different environments. There’s no other platform in the world that can boast this level of flexibility — not even close.

All of these versions are running on AIR technology except for the browser version, but since I didn’t use any AIR-specific APIs (game persistence is done through Local Shared Objects rather than files), it runs entirely unchanged in the browser, as well.

Check out the video and screenshots for more information. In the next couple of weeks, I plan to release all the code for iReverse, and an article describing everything I learned about writing a truly multi-screen application.

iPad in Landscape

iPad in Portrait

iPhone in Landscape

iPhone in Portrait

Android in Landscape

Android in Portrait

Desktop in Landscape

Desktop in Portrait

Browser in Landscape

Browser in Portrait

A glimpse into the project architecture I used for iReverse