Develop Cross-Platform Apps for both iOS and OSX with Chameleon
Chameleon is a development framework for OSX that acts a drop-in replacement for the iOS framework UIKit. According to the project’s site, some application can be ported to OSX from iOS without changing any code. However, Chameleon is still able to provide a desktop OS experience instead of a multitouch experience. You can download it from Github here.
The framework was built by Sean Heber and Craig Hockenberry, two senior developers from the software company Iconfactory – makers of the Twitteriffic app for both iOS and OSX. The pair created Chameleon to aid their own port of Twitteriffic from iOS to OSX.
“Prior to the creation of Chameleon, we were looking at only being able to re-use about 25-30% of our code from iOS in the Mac version,” the site says. “By porting UIKit instead of the individual view and controller classes, we were able to re-use 90% of our iOS code.”
In order to translate the multitouch experience into a traditional desktop experience, Chameleon incorporates the standard OSX AppKit framework and transitions between UIKit and AppKit depending on the context. For example, Chameleon will use AppKit for text entry on OSX instead of bringing up an on-screen keyboard.
“Our approach with Chameleon was to use native AppKit constructs in the context of UIKit,” the site says. “The glue that holds these two frameworks together is Core Animation.”
To fund this open source project, the creators are selling Chameleon t-shirts for $250:
Many open source projects are funded by ancillary services or products. Since we don’t want to go into business porting your products, that model isn’t appropriate for Chameleon.
So we’re trying something new.
It’s no secret that a Chameleon T-shirt costs us much less than $250 to produce. It’s also no secret that this source code is potentially worth much more than $250 to your software development business. Support Chameleon and everyone benefits.
What do you think? Developers on Hacker News have expressed skepticism about the framework’s ability to provide a decent user experience on OSX. Is it possible to translate from one platform to another so easily?