A webservice to let people find out what’s in the sky that night… oh, and it has to work on mobile too! How do you fit Space onto a mobile phone? And we want to open source it at the end of the project.
How do you orientate people? How do you display constellations on a small screen?
- put stuff on paper first — it’s easy to change
- iterate with real people
- get it on a handset as soon as possible
- initially simple PNG files (look like a simple web page) to check expectations on single pages
- then some simple HTML to check out navigation, with SVG images showing constellations and context
- went through at least 3 iterations of the database schema
- avoid database-driven design
- needed to present images in a house style, easy for creation and working at different scales
- technologies: Symfony PHP, WURLF+WALL4PHP, ImageMagick all on a LAMP stack
- subjective scaling: manipulating SVG files to keep captions and stars large but overall image small
- rendering SVG to appropriate format for mobile using ImageMagick
- then cache pre-created images for a while
- added in microformats:
- events for days — every page on the site has a little API in it
- transformed to vCal on mobile devices — allows you to bring something direct into your phone calendar
- also provide JSON, YAML, XML, serialized PHP feeds by just adding ?api=xxx on the end of the RESTful URLs (search API is also exposed)
Development took about 7 weeks for one developer.
conclusions and questions
- look for design solutions first (over and above technical solutions)
- e.g. orientation
- you don’t get a choice of which version you want — it’s always the one for your device
- e.g. iPhone gets a widescreen mobile version, not a zoomable full web page
- Tom: “the iPhone has a kind of split personality — it’s billed as full web on a phone, but the big sites all have iPhone-specific versions”
There’s also an SMS and email alerting service for interesting events.
Launch date: soon...