We are a user experience design and software development firm
Hire us to design your site, build your application, serve billions of users and solve real problems.

I've been doing some web development for iPhone and Mobile Safari lately, not least because of a series of articles that will be showing up in IBM DeveloperWorks soon.
I was using the iUI toolkit, which contains a number of CSS styles and JavaScript event handlers to make iPhone Web apps look and feel somewhat like native iPhone applications. As I was working with iUI, I realized I was building up a library, so I converted everything to a Rails plugin: rails_iui.
Get the plugin from github: git://github.com/noelrappin/rails-iui.git
Right now the plugin is primarily interested in doing a few things:
It contains a rake task to download iUI, move it's files to the Rails public directories, and change the CSS image URL's accordingly.
There's a controller class method acts_as_iphone_controller, calling that sets up a before filter that captures the Mobile Safari user agent string and sets the request format to iphone for use in respond_to blocks. For testing purposes you can call the method as acts_as_iphone_controller(true), and all calls will be treated as iPhone requests.
There is a module of helper methods that are wrapper methods or combinations of iUI CSS classes. Included are:
The short term goals for the project are to tighten the code a bit and improve documentation and testing. Longer term goals are to augment iUI's JavaScript handlers with something a bit friendlier with Rails, particularly in handling history and back behavior.
So take it for a spin, let me know what you think. Hope you find it useful.
Topics: iPhone, Ruby on Rails
Hire us to design your site, build your application, serve billions of users and solve real problems.
This looks awesome! Thanks for putting it together
One problem though: When I run the iui:install rake task, I get this error:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
All of the files looks like they down load properly, but it doesn’t move them to the ‘public’ folder and re-link the CSS. Any advice? I used Git to clone the rails-iui directory into my vendor/plugins dir in my Rails app. Should it go somewhere else?
Thanks
Comment by Eric, Tuesday, May 6, 2008 @ 2:00 pm
I get an error like this (which I think might be a problem in how I’m managing the gzip), but I do get all the files moved to the public folder.
Try this: download the file to vendor, if the tar didn’t work, manually untar it, which should create the directory vendor/iui.
Then the following two rake tasks will do the other parts of the install
rake iui:copy
rake iui:change_root
Noel
Comment by Noel Rappin, Tuesday, May 6, 2008 @ 2:13 pm
The extra rake tasks did the trick, Noel. Thanks a million
Comment by Eric, Wednesday, May 7, 2008 @ 7:52 am
This definitely looks interesting!
I made a small change to the rake tasks so that only the iui directory is extracted (as opposed to the whole archive including examples) into the vendor directory. I also delete the tar.gz after extraction.
These changes are available at my clone of your repo on github:
http://github.com/ciaranlee/rails-iui/tree/master
I can’t figure out how to stop the tar error from happening though, but it’s working fine for me anyway…
Ciaran
Comment by Ciaran Lee, Wednesday, May 7, 2008 @ 9:15 am
Ciaran — Great, could you submit that as a pull request on github?
Comment by Noel Rappin, Wednesday, May 7, 2008 @ 9:46 am
hey could any one help me out in the detail install of iui plugin for rails.I am trying it big time but not able to .
thanks
Comment by sparrow, Wednesday, July 30, 2008 @ 8:02 am
hey problem solved !!!!
Comment by sparrow, Wednesday, July 30, 2008 @ 8:35 am
[...] I know, I’ve done this already, so why a brand-new version of the plugin with a new [...]
Pingback by Pathfinder Development » TankEngine: New plugin for Rails iPhone Development, Friday, September 26, 2008 @ 1:24 pm