Taking the FT web app to Windows 8: Jim Cresswell, FTLabs #AppsWorld

Ask people to name a successful web app and, maybe eight out of ten times, they’ll mention the FT’s HTML5 app.

Deployed in the summer of 2011, the app became the first from a major brand to shun the various app stores and offer their users a tailored brand experience through a browser, across a tablet, smartphone or PC, using a single log-in and a single subscription.

DeveloperTech caught up with Jim Cresswell, one of the top Web App Developers at FTLabs, the brains-department behind the firm’s HTML5 app and its various innovative uses of web technology, ahead of his appearance at Apps World in London next month.

A guy with more brains in his little finger than many people have in their entire head, Cresswell is also a big-data scientist with a background in statistical cosmology and astrophysics. Over the last few months, he’s been working on developing the technology that enables the FT brand to be pushed out across multiple platforms.

Jim Cresswell, web app developer, FTLabs

 “The main part of my Apps World talk will cover bringing the FT Web App to Windows 8, the pain-points, lessons learned, successes and a few unexpected easy parts,” he says.

He’ll be demoing the app on various platforms, emphasising that the exact same code is powering all of them. “I'll talk about how this prior work has made targeting potential new platforms relatively trivial,” he adds. “With a run-down of what might be needed should we decide to target e.g. Firefox.”

Currently the main platforms the FT targets are iOS and various flavours of Android. The Windows 8 app is under active development with Microsoft supporting HTML/CSS/JavaScript as an app development platform.

Because of that, the process hasn’t thrown up any huge surprises, but has required a large portion of good old fashioned slog. “We had a fair amount of WebKit prefixed CSS that needed a new prefixed copy, potentially in a different syntax,” he explains.

“We had to write a new local database layer using IndexedDB with an interface compatible with our existing WebSQL functionality.

“One of the subtlest issues was the differences in touch event behaviour between the Windows app environment and other platforms, but as a result our touch handling code is more robust and we've published our FTScroller library.”

Jim Cresswell’s tips – what to expect when you take your web app onto new platforms:

  • Expect to spend time learning, be it reading up on a new platform or building simplified test cases to figure out exactly why your app is doing something weird.
  • If a platform is brand new and documentation is scarce then simple experiments are your friend.
  • Prefixes and new technologies aside, slight differences in platform behaviour will mean you have to spend time making your code more robust, this is a good thing.

“Generalising your app to a new platform will always take time,” he says. “But less time than writing a new app and less time each time you do it.”

So how close are we to the ‘code once, deploy everywhere’, ideal? Not too far, he says, and we’re getting closer every day. “Browser implementations are largely converging, with new features being rolled out faster than ever before and basic hardware is getting more powerful,” he says.

“In a year I don't think it will be all that unusual to see the same HTML5 app running and being interacted with on mobile, desktop and television platforms. And of course if you steer clear of cutting edge web technologies you might say we're already there.”

Jim Cresswell will be appearing in the HTML5 track at Apps World in London on 2-3 October. “I'm looking forward to talking to people who are taking a wide variety of approaches to app creation, I'm sure we all have a lot we can learn from each other,” he says. “I think it will be great fun.”

Don't miss Microsoft's free-to-attend Windows 8 Dev Camps at Apps World.

Related Stories

Leave a comment

Alternatively

This will only be used to quickly provide signup information and will not allow us to post to your account or appear on your timeline.