Google Cast is a technology that allows Android, iOS apps and Chrome web apps to cast video, audio, and screen sharing to Cast-ready devices, like the Chromecast or the ones running Android TV.

An obvious use case for such a technology is to allow the user to cast films from a streaming service, watching them directly on the big screen of a TV instead of the small one of a phone. Here at Novoda we’ve been working on the MUBI Android app for quite some time, and the last weeks have been focused especially about improving the Google Cast experience. This culminated in the new update we published last week to Google Play and we are really satisfied about the end result.

We greatly improved the whole Cast experience, a really important feature for an app like MUBI, being it so focused on providing great films to the user.

In this post I want to describe some of the enhancements we applied and the reasons behind the decisions we made.

Cast button availability

The user will have the first impact with Cast functions in your app through the cast button. This button usually sits in the Action Bar of your app and has the double function to notify the use about the presence of Cast receivers and to invoke a menu to connect, control and disconnect from Cast receivers.

The cast button

The cast button displayed on the app Action Bar

First of all, the user must be aware of the Cast receivers availability. In order to do so, the Cast button status is updated accordingly:

  • Unavailable: while Cast receivers are not available, the cast button is not shown
  • Disconnected: while Cast receivers are available, the cast button is shown
  • Connecting: while the app is connecting to the Cast receiver the cast button animates the waves in the icon progressively
  • Connected: while the Cast receiver is connected, the cast button appears with a filled frame shape

Different cast button statuses: unavailable, disconnected, connecting, connected

Different cast button statuses: unavailable, disconnected, connecting, connected


As soon as the user selects a Cast device and the app connects to it, the MUBI logo is displayed on the receiver, as a confirmation that the the app is correctly connected. After that a slideshow of beautiful film posters is presented, while the receiver is in standby waiting for the user to select the film to cast. Every poster contains the MUBI logo, so that the user is always aware of which app is casting at the moment and the posters change every 15 seconds, in order to prevent any damage of the TV panel due to burn-in.

Connection sequence

During a connection, nice posters are more interesting than a black screen

Start playing

When the user selects the film to watch, the slideshow stops and the loading screen is displayed. This contains an indeterminate loading bar, along with some information about the current film, such as the poster, title and country.

Loading before playing

Loading feedback plus a poster tell the user a film is loading


As soon as the user pauses playback the app provides the expected feedback, showing the current (paused) status and time of play. The same information shown during buffering is displayed for a limited amount of time, before disappearing while still on pause. This allow the user to see as much content as possible, while keeping the essential UI elements visible.

When the user pauses

Pausing a film should also show feedback


From the mobile app, the user is able to seek to an arbitrary position of the film. In that case the change of position is displayed through Google Cast showing the updated seek progress bar with the new playing position.

Seeking shows the seek state on screen

Seeking shows the seek state on screen

Ad-hoc controls

As already mentioned, the user can control casting from the mobile app by pausing and resuming the playback and seeking to different position in the film while playing. Furthermore we introduced a couple of quick actions directly available from the Cast notification or the lock screen, in order to cover another use case likely to happen while watching a film: external distractions. Thanks to these new quick actions, it is possible to pause the playback, rewind the last 30 seconds of the film or seek forward by 30 seconds without even unlock the phone.

Quick access to controls directly from the lock screen

Quick access to controls directly from the lock screen

As we saw, the main important thing is to provide the right feedbacks to the user, during the whole cast experience.

For more information about what to consider in order to provide the best Google Cast integration in your app, have a look at the official Google Cast Design Checklist.