The docs say you use something called "TVML" to lay out the UI, and inside the TVML you can have JS. I think.
If you're wanting to stream video you can build a full app with almost no Obj-C/Swift (there's still a small shell, though probably nothing custom needs to be here).
The XML templates are a little odd in that they're JS files (e.g. Index.xml.js) and contain the XML as the return value of a global function called Template.
It seems really straight forward though.