Category Archives: Web

It’s a Good Time to be a Web Developer.

I think this graph from Google I/O says it all:

Webs Up!

With all the FUD around Flash and the iPad its easy to forget that we are living in a golden age of web development. The web is fulfilling all but the most outlandish predictions of its success from back in the 90s. Things are just starting to get interesting.

The other take-away I got from the I/O keynote is how a lot of HTML5 is basically HTML playing catchup with Flash. Many of the coolest new features have been available in Flash for years. This means all the skills you honed as a Flash developer are directly applicable to the newly emerging platforms of HTML5, Unity, Android and even iApps:

  • Creating animations and transitions that enhance static content.
  • Optimizing for performance and fast page loads (including preloading).
  • Handling rich media: video, audio and images.
  • Custom text layouts and font handling.
  • Asynchronously querying the backend.

Only the syntax has changed – the end result remains the same.

Which Way Now? Web Development in the iPad Era.

Flash? No Thanks!

So it turns out Steve Jobs does not like Flash, and won’t be allowing it onto the iPad in the foreseeable future. This creates the first dent in the Flash player’s ubiquity for many years and leaves a more complex set of web development choices ahead of us.

Rather than get into the debate over whether Flash is good or evil, I would like to discuss what options are available for delivering rich interactive experiences on the web today. Most developers don’t have a philosophical preference over which tools they use, they simply want the technology that can provide the best experience while reaching the most users. With that in mind, let’s look at some numbers.

How Big is the iPad?

The iPad is selling phenomenally well and may be the herald of a new era in computing. That said, if we look at the web usage numbers for the iPad’s progenitors, we see that the usage numbers do not equate to the amount of media buzz these devices get.

In the last 12 months, mobile web usage accounted for 1.48% of total web usage, versus desktop usage at 98.52%.

Of that number 32% came from iDevices (iPhone + iPod Touch). That gives iDevices a whopping 0.45% of total web usage. Lets be generous and say the iPad doubles this usage in the coming year. That will give iDevices around 1% of total web usage in the coming year. Admittedly, mobile usage is about to explode and iDevices will be part of that, but I think it’s important to keep some perspective on the current state of the market.

What About HTML5?

Steve Jobs has suggested that we should drop Flash for HTML5. HTML5 holds a great deal of promise, however it is currently unsupported on the great majority of web browsers.

For example, based on current browser usage, 71% of web users cannot view the HTML5 video tag. This means that that building a website solely in HTML5 is not currently an option. Since IE9 will support HTML5, the IE9 adoption rates will be the deciding factor as to when we can start targeting HTML5

Where Does this Leave Web Developers Now?

So what should we recommend to our clients who want a brand experience or RIA today? It depends :)

  • If you can simplify the requirements enough, build it in plain HTML with a few jQuery animations thrown in. This will work in many situations. The truth is that many sites that are currently in Flash do not need to be. Most sites can get by with plain HTML, images and simple javascript animations.
  • If you need complex animations, interactivity, games, video, audio, web cam support, etc – build it in Flash. Your content will be viewable by the vast majority of web users. In addition, build a simplified HTML version for non-Flash devices. This is typically what we have been doing since the first web accessible mobile devices came around.

Looking Forward

Personally I find it hard to believe that Apple can single-handedly kill Flash when it is so ubiquitous on the web and has such a huge and loyal developer community. I still hold out hope that Flash will eventually come to the iPad in the same way that multitasking came to the iPhone. In the short-term, iPad users will be locked out from a lot of great content. Only when HTML5 browser support and tooling is broadly available can we start looking at developing RIAs with it.

[Credit to Noel Billing for pointing me to the StatCounter global data.]

PercentMobile – Free Mobile Analytics

My buddy Stan Wiechers just launched a supercool new service that provides Free Mobile Analytics – PercentMobile. Check it out if you want to see how many of your users are viewing your site on a mobile device and what kind of device they are using. To sign up you can use the invite code “airtight” (good for 100 invites).

New Photoshop Scripts for Airtight Viewers

script ui

Jeff Tranberry over at Adobe just built a new set of Photoshop scripts for SimpleViewer, TiltViewer, AutoViewer and PostcardViewer. These scripts allow you to easily create Airtight galleries with Photoshop CS3 and up. Just select your image folder and gallery options to instantly create a gallery.

Building 3D Flash Sites that Work

It seems like every other site on FWA is using 3D Flash these days. 3D effects are great for adding an element of surprise to a website, since it’s still a relatively new technique. I’ve been building 3D engines since the Director 5 days, so it’s great to see 3D finally hitting the mainstream.

In this post I will describe some of the technical constraints to be aware of when building 3D Flash sites, then I will give examples of recent sites that are doing 3D right.

I’m a big believer in designing within technical constraints. Working with the technology rather than fighting it. Some of the most beautiful design is done in static black and white. Embracing constraints can actually inspire designers and lead to innovative solutions.

3D FLASH CONSTRAINTS

Responsiveness

With 3D sites its important to keep the frame rate up (at least 20 fps). Otherwise your animations are going to be jittery and responsiveness is going to suffer. The simplest way to increase frame rate is to make the active 3D area smaller (in pixel size). Other options to increase performance are:

  • Reduce the number of 3D objects
  • Use 3D panels with bitmap textures over 3D models
  • Use 2D sprites over 3D objects
  • Use flat color textures over bitmap textures
  • Use non-precise bitmap textures over precise bitmap textures

Interaction

If you go to the trouble of using a 3D engine you need to make it interactive. Playing canned animations on button click does not provide any advantage over a pre-rendered video animation that may be cheaper to produce and may look better (see an example here). One way to provide a nice immersive 3D experience is to move the camera slightly on mouse move (sometimes called ‘mouselook’). This approximates how the world looks when we move our head around. It’s also important to keep motion and camera movement simple. Too much flying around can cause confusion and even nausea :)

Simplicity

Complex, realistic 3D environments are beyond the ability of the current generation of Flash 3D engines. It is often better to add a few simple 3D elements to an otherwise 2D site. For example the 3D page flip (click the ‘Flash94 CMS’ button here for an example ). A great source of inspiration for this type of design is TV motion design. TV ads often use subtle 3D animations on otherwise flat layouts.

Load Time

The 3D engine itself is typically ~100k. Then you have the 3D models and textures which can be large. To avoid file bloat, use simple or programatically generated shapes and simple textures. One trick is to display some simple 3D geometry after the engine has loaded and before the rest of the models and textures are loaded.

Development Time

Building a 3D site typically takes at least twice as long as building the equivalent 2D site, depending on the complexity of the 3D elements. When building a 3D Flash site it’s important to iterate early and often. Often 3D sites can be unusable due to bad camera placement or unintuitive controls. It’s critical to get an early ‘hands on’ with the prototype in order to refine the interaction.

EXAMPLE 3D FLASH SITES THAT WORK

Eco Zoo

eco zoo

This is probably the slickest 3D flash work on the web (check out the pop-up books). Incredible attention to detail including depth-of-field blurring. Uses a fixed-size 3D area and Paper Mario style planes over true 3D models. One gripe is that since the camera movement happens on mouse drag you don’t get the 3D feeling until you start dragging around. Using a custom engine built by Roxik who is doing some incredible 3D work out of Japan.

Fifa Street 3

fifa

Combines simple 3D planes with pre-rendered 2D sprites. Uses a 2D overlay menu. Fixed size, centered 3D area. Subtle mouselook gives 3D feel without sacrificing usability. Built by B-Reel using Away3D.

Lumina Live

lumina

Simple but effective. Features a number of randomly positioned planes that form the pixels on a plane. This is reminiscent of one of the first papervision demos. By Kilo Studio.

Karim CZ

karim

Uses simple 3D transitions and flat textured planes. A nice twist on the classic portfolio site. By Phillipe Roy, using Papervision.

If you know any other examples of great usable 3D Flash sites please share in the comments.

New Site – Angeleno

Angeleno

I just finished up a new site for the Los Angeles lifestyle magazine ‘Angeleno’, working with talented guys at Faction7. I did the Flash front-end for the Features and Scene sections.

The idea was to create a ‘HTML style’ site with simple navigation and a focus on the content. This gives a familiar + intuitive user experience while still allowing some nice Flash flourishes. To allow deep linking and back button support we used SWFAddress. SWFaddress has the benefit of working with Google Analytics, to provide per-page tracking. One issue I found with SWFAddress is that it seems to give a noticeable lag when navigating between pages on Vista/IE7.

The features section includes a full-screen option which really shows off the large format photography. The scene section also includes a user-submitted commenting system which is quite cool (registration required). All content is completely dynamic, powered by a custom PHP CMS. The Flash XML content is written into the HTML pages, to allow for SEO.

One snag we hit was integrating DoubleClick ads. Since DoubleClick still does not support AS3 (!), we had to do some CSS/JS hacking to overlay ads in a HTML div. Hopefully DoubleClick will get this working soon.