Revision 7 (Feb. 7, 2012, 5:24 p.m. by sethvincent)

start w/ a good web-based mobile interface, then maybe explore making custom apps (not worth initial effort, in all likelihood).

Look at  http://www.phonegap.com/

 http://shipordie.com/post/4662729644/mobile-social-local-pivot-well-one-of-those

 

Django-specific stuff:

(For the other Django project I've been immersed in lately, an assumption/requirement is that we use the same URLs for mobile and "normal" views, instead of doing the  http://m.example.com/ thing. I like this requirement.)

 

Consider designing the default theme to be responsive to browser size. Some resources:

http://www.alistapart.com/articles/responsive-web-design/

http://getskeleton.com/

http://lessframework.com/

 

Here's a first pass at making the sapling theme responsive using the skeleton css framework:

https://github.com/sethvincent/sapling-responsive

Things like images, tables, and the edit page still need significant work.

 

 

Working in my spare time on making theme responsive.  My notes below. --Mike

Responsive design reading

Apparently one of the first blog articles about this, written by Ethan Marcotte
http://www.alistapart.com/articles/responsive-web-design/

For background, the article references two articles about flexible layouts:
http://www.alistapart.com/articles/fluidgrids/ (using em to set text sizes and % to set margins and max-widths)
and
http://unstoppablerobotninja.com/entry/fluid-images (sizing images down instead of breaking layout, kinda hacky in IE)

Ethan has a book I just ordered http://www.abookapart.com/products/responsive-web-design

More recent article on MSDN (November 2011):
http://msdn.microsoft.com/en-us/magazine/hh653584.aspx

The main takeaways are:

  • Use a fluid layout, not absolute widths, margins, font size, etc
  • Media queries let you use different CSS based on things like viewport widths
  • Fully supported by everyone except IE 8 and older (doesn’t matter much, but can use JS to fix this if needed)
  • Use CSS to lay things out better for very small (or very large) screens, including typography
  • Some mobile browsers will fake the viewport size, so to reset this add:
    • <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  • In the near future, keep an eye on media query listeners, which let you load totally different assets based on these queries.