Development:
How different is developing for Chromecast?
If you normally use Chrome and use its devtools you're in luck! The Chromecast has its own devtools you can get to by visiting it's ip address at port 9222
. Along with this comes its own console where you can run Javascript just like you're used to. And window
is still the global object.
Theres no refresh button! Do I really have to kill and reload the receiver everytime?
Nope. In the console you can run location.reload(true);
. The true
parameter performs a forced reload that flushes the cache of the receiver application.
Is there anything different about working with a TV?
Yea, keep in mind most TV's will experience screen burn if non-moving content is displayed for pro-longed periods of time. This can be avoided by just moving things around or having them appear in different areas.
Supported:
swassr's answer has a pretty detailed list using http://html5test.com/, although, it looks like there are a few things that the tester gets wrong:
WebRTC
After some testing, it doesn't look like WebRTC is supported even though html5test.com says it is. The only reference to this I've been able to fine is a mention on this thread
Web Audio API (partial)
Using the Web Audio API to get spectrum and waveform data isn't supported either. There is a bug filed for this here
Weird Quirks:
No hardware acceleration.
Don't expect anything to have perceivable hardware acceleration or advance rendering applied to it. Meaning CSS Transitions, canvas, etc. don't have that smoothness we've become used to. At times, even animating with Javascript causes less jank than CSS Animations.
That doesn't mean all performance optimizations are thrown out the door though. Tricks like transform: translateZ(0);
still work to drop elements on their own drawing context and separate out repaint concerns.