Forum Discussion

stevelaw18's avatar
stevelaw18
Visitor
13 years ago

Custom Interface

We are in the R&D stage of developing an application on Roku. Our main goal is to keep a consistent look-and-feel with other platforms we've already developed on.

It seems like there are several options in creating a custom interface.

One is using the roScreen with the 2D API. This sounds a bit more labor intensive, and will require many components, view stacks, etc to be built from scratch.

It also seems we can use an roImageCanvas.

There's also the NDK, but we'd rather not go there, since our UI should not require being written in that low of a layer.

Are there any suggestions on which approach would be the best? Best practices? etc?

Our app consists of several buttons in the header section, one carousel, a menu strip, then another carousel. Here is some poor ascii art demonstrating our layout. When the top buttons are pressed the main screen is overlaid with a transparent black image, and a list is displayed where the user can make selection, which may load another list, or potentially play a video.


-----------------------------------------------------------------------------------------
| [LOGO] [SEARCH BTN] [BTN] [BTN] [BTN]
|----------------------------------------------------------------------------------------
|
| ------------------ -------------------------- -------------------
| | | | | | |
| | | | Selected | | |
| ------------------ | Item | --------------------
| --------------------------
|
| ----------------------------------------------------------------------------------
| | MENU BTN1 | MENU BTN 2 | MENU BTN 3 |
| -----------------------------------------------------------------------------------
|
| Another Carousel down here that populates in response to the menu item
| selections.
|
-------------------------------------------------------------------------------------------


12 Replies

  • Agreed with everything that has been said. When you develop your own interface, please remember the remote buttons available may be more limited than what you have on your just-purchased Roku box.

    In particular, many roku remotes do not have the "back" button, nor the "*" (info) button, and you don't have general programmatic access to the "Home" button as that interrupts your channel and takes you to the Roku home screen. The least common denominator buttons available to applications are: UP DOWN LEFT RIGHT SELECT REVERSE FORWARD PLAY.

    In particular "UP" is often used as "Back" on many screens. Having many "rows" of buttons where the user is at the bottom row of buttons occasionally makes navigating "back" to the previous screen more of a chore.

    Oh and definitely go with double buffering on an roScreen if at all possible. Otherwise your screen will tear.
  • One more suggestion in regard to creating user interfaces:

    Robert Penner's easing functions:

    http://www.robertpenner.com/easing/

    allow you to create the effects that give objects a feeling of mechanistic weight on the screen and "snap back" effects. Many developers when they use roScreen to implement a UI leave out smooth motion, and everything just jumps in a stiff way when you move from one point item to another, as opposed to the kind of smooth slide you see in the roGridScreen (netflix, amazon etc).

    - Joel