Prototyping yes+: writing a TV prototype generator with Framer Classic

Guy Haviv
Matters
Published in
4 min readMay 19, 2020

Earlier this year, our team unveiled an ambitious project we’ve been working on for 18 months with Israel’s leading satellite TV provider, yes. The resulting experience, yes+, reimagines the entire yes TV service for tvOS in an inspiring way.

To do all this, we had to reimagine yes’ digital experience and graphic language, design a bilingual typeface and run iterative, time-compressed design processes.

As part of this process, we looked for ways to test a variation of the yes+ experience for an existing yes TV set top box and the current yes remote. We looked at several methods of prototyping TV apps, but didn’t find an adequate tool.

After looking at different ways of building this large-scale prototype, we decided to build a prototype generator with Framer Classic and the Framer Joystick library that would allow our design team to continue designing screens in Sketch, import them into Framer Classic and have the generator create an interactive, TV-remote-enabled prototype:

Here’s how we made that happen:

Framer Joystick

Focus movements prototype using Framer Classic & Framer Joystick

The Framer Joystick library provided the main interactive component we needed: a way to have an up, down, left, right, back, and forward interactions and focus movements in a prototype that would mimic TV menu systems and screens.

Using layer names to indicate interaction

layer name c01->TargetMovieScreen in Sketch

First, we needed to provide a way for designers to describe the prototype’s interactivity in Sketch, in a way that would specify which thumbnails and buttons should lead to which screens. We were inspired by MacRabbit’s superb Slicy* tool, and chose to do this using layer names in Sketch. This way, each group of thumbnails named c## (lowercase c + number) became a side-scrolling collection in the Framer prototype, and each thumbnail or button which had a ->DestinationScreen in its name, became interactive and would transition to DestinationScreen when clicked.

Preparing to paste into Framer

Designers on the team created the actual prototype by designing all screens in Sketch, defined the interaction using layer names and copy and pasted everything into Framer Classic

To make transferring large numbers of art boards to Framer Classic easy, we flattened each symbol instance in Sketch and copy and pasted the entire set to Framer.

Generator

The prototype was generated automatically based on layer names, which could be adjusted on the fly

Our prototype generator in Framer was written in a straightforward way, iterated over all frames, built side-scrolling collections based on layer names, and connected all frames that have a ->DestinationScreen layer name to a function that transitions to a destination screen.

Supporting different TV remotes with Flirc

Interacting using the yes remote connected via Flirc

Our team tested several ways of connecting existing IR remotes to our Macs, but then discovered the wonderful Flirc (🥰). Using Flirc USB, we could easily connect the existing yes remote and bind its relevant keys to the keyboard keys recognized by the prototype. Seriously, the whole thing took five minutes from unboxing to fully running with our TV remote.

Reflections

Looking back at this experience, taking a prototype generator approach was highly beneficial for the project: A creative technologist could focus on writing the generation code while designers on the team focused on creating an elaborate series of screens and connecting them via art board and layer names, which in turn created the entire prototype.

Further reading

To learn more about yes+, check out our jam-packed case on designit.com

If you live in Israel, we highly recommend checking out yes+ on the App Store.

--

--

Guy Haviv
Matters
Writer for

Executive Design Director at Designit. Design educator at Shenkar College of Engineering & Design