[cgiapp] Dancer, URIs, and Web Apps

Bill Stephenson bills at ezinvoice.com
Fri Mar 5 13:54:38 EST 2010


On Mar 4, 2010, at 9:36 PM, P Kishor wrote:

> 5. clean URIs (routes) without screwing around with bazillion settings

To me, this seems to be more of a current programming fad than a real  
user issue. I've never had a single user complain that long or ugly  
URIs bothered them.

If hiding URLs from users is a design goal it also seems like it is  
easily solved by using AJAX to update content.

Web Apps

I've been reading Apple's guidelines for "Web Apps". They describe how  
HTML5 has added client side features for web apps and Apple's support  
for them in their Safari web browser running on both Mac and Windows,  
and their "iDevices".

When a user starts a web app from their "Home" screen on an iPhone the  
app controls the entire screen, just like a native app, so no URLs are  
displayed to the user at all, ever.

I think this is relevant to all of us because all content updating must  
be done with AJAX on web apps optimized for Apple's iDevices. If the  
user clicks a standard web link it opens the URL in a new Safari  
browser window and leaves your application. This is a feature.

This is important to us all because because almost all the mobile  
device makers announced last week that they will be creating a common  
standard for developers to create platform independent apps to run on  
these devices. It seems likely that they will adapt the same open  
standards that Apple is supporting on the iPhone platform.

All web app developers would do well to start implementing the  
techniques needed to take advantage of the features and accommodate the  
requirements of these devices and optimize their content for display on  
them.

Personally, I think the CGI Application Framework project goals might  
do well to include how the framework can integrate tighter with the  
client side features available now and those coming in HTML5. This  
would obviously require making the inclusion of javascript in output  
something that is easier to do.

HTML::Prototype is a good example of what I mean. Helper tags for  
JavaScript are needed to really take advantage of all the upcoming  
potential for web app developers. The client side data storage features  
in HTML5 go a long way past cookies. Among other things, this will add  
some offline feature capabilities to our repertoire.

Here's some info from Apple on client side data storage, but this info  
is not necessarily Apple specific:

http://developer.apple.com/safari/library/documentation/iPhone/ 
Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.html

It won't be long before we can't ignore these mobile devices. Google  
boldly stated this week that "In three years desktops will be  
irrelevant". That's because everyone will be using web apps. Apple is  
certainly moving that direction with the MacBook Air, iPhone/iTouch,  
and now the iPad, and of course there are "Netbooks".

The great thing is, CGI-App developers are likely doing 95% of  
everything they need to do to create an iPhone web app now and those  
apps should run in most all other mobile devices soon.

Right now, if you incorporate the Apple guidelines for web apps when  
you start a new project, and that doesn't take much, all you have to do  
is create a new set of "Views" for your MVC app and your done, your web  
app runs native on an iPhone/iTouch/iPad.

Here's a link to those guidelines:

http://developer.apple.com/safari/library/referencelibrary/ 
GettingStarted/GS_iPhoneWebApp/

That's more than I've said here than in the past five years. I do hope  
some of you find it useful.

Kindest Regards,

--
Bill Stephenson



More information about the cgiapp mailing list