BBC+ & the Mobile Application Framework
Senior Product Manager
Today sees the launch of the BBC+ app for iOS and Android on the Apple and Google Play stores. In this blog post Phil Salt, Senior Product Manager - BBC+, highlights a few of the challenges faced during the development of BBC+ from a technical viewpoint and how his team collaborated with the wider BBC to bring the most value back to the organisation and its audiences.
You can also read a blog post from Clare Hudson outlining the editorial perspective on the BBC+ app’s proposition and another by Phil Fearnley covers how BBC+, as part of the myBBC programme, aims to provide a more personalised BBC to our audiences.
Native apps have become an increasingly popular way of accessing the BBC’s content – the likes of the BBC News, Weather, Sport as well as BBC iPlayer apps have proved to be loved and used widely by audiences. However, there is also a wide range of content from across the organisation that audiences were unlikely to know about or get the chance to see in an app format.
Our team of editorial staff working on the Homepage were already identifying highlights of a broad range of diverse content across the BBC, and with the recent and on-going work around personalising the Homepage using myBBC services, creating the BBC+ app fitted naturally into this existing workflow.
Of course, identifying a suitable workflow and actually integrating with it are two very different things and provoke many questions, but one of the key points we needed to address – which I will address in this blog – was what would be the most time-efficient and cost-effective means of developing an app for two mobile platforms at the same time.
It became apparent that many aspects of what we wanted to develop included features and functionality that had been developed at the BBC previously. Trying to unpick codebases of existing products might go some way to providing the functionality we required, but it was clear that a unified app development strategy would make it easier for all products to create apps in the future. This thinking led the Platform division of Design & Engineering devising the Mobile Application Framework (MAF), and BBC+ is one of the very first apps to be built using this framework.
Mobile Application Framework
The BBC has built its library of apps up over time. As we’ve developed more apps, we’ve realised that many of the core functions are the same or similar in each one. One complication is that the environment in which these apps are built and run changes much more quickly than most other technology ecosystems. Operating systems are updated frequently, new phones and tablets come out regularly, and new devices (watches, streaming dongles, etc.) appear which can all talk to these apps.
Because of this, we realised it was best to try to build our applications out of shared components where we could. For instance, we have standard libraries to talk to our backend ID services and our media services.
One challenge with this approach is that many of our apps have been built at different times by different teams. This means that some of these shared components need to be wired into the different apps in different ways.
The Mobile Application Framework (MAF) is intended to provide a standard way to build any new apps the BBC may decide to create. Colleagues such as Chris Yanda, Executive Product Manager for TV and Mobile, started work on it at about the same time that the BBC + app and BBC Bitesize app were commissioned. Both apps were built using this framework and the development of these apps contributed to its design.
In addition to providing the core backbone of an application, we also developed a number of user interface components to try to help our product teams implement agreed design patterns in accordance with the BBC’s Global Experience Language (GEL) to ensure consistent and easily understood usage of our apps.
To achieve its aims of being flexible and easy to use, MAF’s architecture is made up of several layers as shown in the accompanying diagram. There is a defined contract between each layer so that it is clear how one layer of the application communicates with another layer. In this way, the design of MAF emphasises composition and extensibility.
Composition is illustrated by services. These deliver a view-model for use in creating a page (which in-turn is comprised of view-models for the containers and components that make-up the page). Services are composed of a data-fetcher (that could, for example, fetch data from a URL on a BBC server) and a data-adaptor that converts the raw data from the server into the appropriate view-model.
Extensibility is demonstrated in the way new types of UI components (pages, containers and components) can be registered at run-time. A factory that implements the appropriate interface to create the UI component is added to a registry, which is managed by the application environment. The framework can then use the factory to create the component before using its registered binder to bind a view-model to it.
We will also use the Mobile Application Framework to develop new shared components in the future. MAF gives us a way to quickly spin up test apps to prove the functionality of new components and should result in more common integration points and patterns. This, in turn, should make it easier for different teams across the BBC to work on and extend the various components.
Both the BBC+ and Bitesize teams have already contributed multiple components back to the framework, so that other apps will benefit from this shared effort and knowledge. This cross-BBC collaboration has already proved fruitful, and promises to provide even greater efficiencies in the future.
What’s next for BBC+ ?
The Mobile Application Framework will continue to evolve and provide value back to all the products that use it, and while BBC+ will certainly benefit from this shared effort and collaboration, we also have a number of features we are considering that will be prioritised based on audience feedback.
The teams here are really excited to get people using the BBC+ app, and developing it further. We hope you enjoy it, and will let us know how best to improve it.