Main content

Βι¶ΉΤΌΕΔ+ & the Mobile Application Framework

Phil Salt

Senior Product Manager

Today sees the launch of the Βι¶ΉΤΌΕΔ+ app for iOS and Android on the and stores. In this blog post Phil Salt, Senior Product Manager - Βι¶ΉΤΌΕΔ+, highlights a few of the challenges faced during the development of Βι¶ΉΤΌΕΔ+ from a technical viewpoint and how his team collaborated with the wider Βι¶ΉΤΌΕΔ to bring the most value back to the organisation and its audiences. 

You can also read a  outlining the editorial perspective on the Βι¶ΉΤΌΕΔ+ app’s proposition and  covers how Βι¶ΉΤΌΕΔ+, as part of the myΒι¶ΉΤΌΕΔ programme, aims to provide a more personalised Βι¶ΉΤΌΕΔ to our audiences.

Native apps have become an increasingly popular way of accessing the Βι¶ΉΤΌΕΔ’s content – the likes of the Βι¶ΉΤΌΕΔ News, Weather, Sport as well as Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔpage were already identifying highlights of a broad range of diverse content across the Βι¶ΉΤΌΕΔ, and with the recent and on-going work around personalising the Βι¶ΉΤΌΕΔpage using myΒι¶ΉΤΌΕΔ services, creating the Βι¶ΉΤΌΕΔ+ 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 Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔ+ is one of the very first apps to be built using this framework.

Mobile Application Framework

The Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔ + app and Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔ’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 Βι¶ΉΤΌΕΔ 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 Βι¶ΉΤΌΕΔ to work on and extend the various components.

Both the Βι¶ΉΤΌΕΔ+ 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-Βι¶ΉΤΌΕΔ collaboration has already proved fruitful, and promises to provide even greater efficiencies in the future.

What’s next for Βι¶ΉΤΌΕΔ+ ?

The Mobile Application Framework will continue to evolve and provide value back to all the products that use it, and while Βι¶ΉΤΌΕΔ+ 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 Βι¶ΉΤΌΕΔ+ app, and developing it further. We hope you enjoy it, and will let us know how best to improve it.

More Posts

Previous