"EnTerr" wrote:
"Rek" wrote:
ImageCanvas is likely too slow for a whole application. You'll probably want to use roScreen.
Is this based on experience or mostly word-of-mouth?
In my limited experience, roImageCanvas is noticeably slower than roScreen when any kind of
animation is involved (scrolling, moving doodads around the screen, etc.) However, for mainly static content it may well be appropriate (certainly a lot less work overall).
I just looked through all the channels I have installed to see which ones use roScreen. Retaliate is a game, which is perfectly suited to roScreen; CBS News uses roScreen in a limited way (their live stream uses it, but most of the channel seems to use built-in components); Roku Recommends was written using roScreen and is a perfect example of how bad a channel can look (at least on my SD TV) when you decide to move away from using the built-in components (text fonts that are too small to read in places, images that don't fit on the screen, lack of on-screen pause/play icons, etc. on the video screen, a completely black screen when the screen-saver kicks in, a non-standard navigation scheme, etc, etc); and Newsy, which also uses roScreen entirely and, unlike Roku Recommends, seems to have a sensible UI, color scheme, image layout, font size, etc., (but still doesn't implement a screen saver, and suffers from weird scrolling issues on my 2XS such as scrolling the images too fast to be of any use when the up/down keys are held).
For every one of the roScreen-based channels I have installed right now, in the past I've installed dozens of other roScreen channels, tried them out for a while then deleted them shortly thereafter as they seemed like utter garbage, sometimes from a content perspective, but often as a result of trying to implement a UI using roScreen and doing a very poor job. Sorry, 'Roku Recommends', you're gone too now.
So even if one were to surmount the technical hurdles involved in implementing UI components with roScreen (drawing everything manually, for example), there's still way more work involved in making it look good and work well. It's still possible to come up with a bad design with the built-in components, but Roku makes it a lot easier to do a decent job (fonts are big enough to read on all sizes of TVs, components respect the TV safe zones, screen-savers work, the 'Back' button works as expected, key-click sounds work the way you've configured them, scrolling works at a sensible speed no matter what Roku device you're using, image caching is handled automatically, etc, etc.)
Unfortunately, the options available to those who are not Roku's "partners" are limited. All we have are the built-in components (including roImageCanvas for some degree of non-standard customization), and the 2D API (roScreen). And there's no middle ground; i.e., you can't generally build a screen using the built-in components then place a custom-built roScreen-based widget on top of it. It's all or nothing for each screen.
I'm sure there are good examples of custom-built roScreen UIs out there, but they probably took a lot of hard work, time and expertise. TheEndless has been doing this since time began, NewManLiving sounds like he's spending every waking moment, or more, on his grid screen. So yes, I'd consider it a non-trivial exercise -- and it's not like any of that effort can be transferred to other platforms.