Radio Bruno is a popular Italian radio station, which cheers the days of milions of people in north-central Italy. Their requirement was to create an app which would permit to listen to the web radio with multiple streaming channels, publish news about music world, consult the radio palimpsest and social media and entertain audience with polls and simple games. MBurger headless CMS system simplified development significatively and helped Radio Bruno content creators to publish their content with ease.
 

Amplify MBurger

This app should have been pretty much a simple way to enjoy Radio Bruno while using the smartphone, so it had to have a lot of features like live streaming, newsfeed, an image gallery, a music chart and various links to specific parts of the website like the concerts and frequencies sections, also it would need to have a “highlighted content” feature, which would link from the home screen to specific parts of the app dynamically and a “live message” feature, which radio speakers would read while doing their program.
First thing needed was to create a new MBurger project from the dashboardand start creating the blocks:

The main parts of the app are without any doubt the live streaming, song chart, games and the plugins for “highlighted content” and live messages.
 

Live streaming

For live streaming the block has been configured that any section would have a title, image, straming url and a type. Radio Bruno has a primary streaming which is the one anyone can listen on a traditional radio and other minor streams, accessible only online, the primary one also has metadata which must be read by the app to show currenty playing artist, song and album art or the current program. So any streaming section was treated as a single stream, with “other stream” type and only one has the “primary” stream type, also the secondary streams can be ordered any way possible to put more emphasys on a particular element.

Android

ArrayList<Object> filters = new ArrayList<>();
filters.add(new MBSortParameter("order", false));
MBurgerTasks.askForSections(getApplicationContext(), STREAMING_BLOCK_ID, filters, true, this);

iOS

let sortOrder = MBSortParameter(field: "order", ascending: true)
MBClient.getSectionsWithBlockId(Constants.streamingsBlockId, parameters: [sortOrder], includeElements: true, success: { (sections, _) in
    // Sections handling
}, failure: { (error) in
    // Error handling
})

Once the app has obtained the list of elements, it differentiates the principal from the others and reproduces the live streaming over the internet using ExoPlayer on Android and AVPlayer on iOS.


 

Song chart

The song chart is a simple block of songs with title, artist, album art and a streaming link which is used to listen to a part of the song. Here the “order” tag on the decides the chart position:

In-App it must be defined that the way the sections are needed is sorted by the “order” value, so we can easily achieve it using a filter:

Android

ArrayList<Object> filters = new ArrayList<>();
filters.add(new MBSortParameter("order", false));
MBurgerTasks.askForSections(getActivity(), CHART_BLOCK_ID, filters, true, listener);

iOS

let sort = MBSortParameter(field: "order", ascending: true)
MBClient.getSectionsWithBlockId(Constants.chartBlockId, parameters: [sort], includeElements: true, success: { (sections, _) in
    // Sections handling
}, failure: { (error) in
    // Error handling
})

 

Games & Polls

Games sections is made of links to interactive webpages and a special link to the polls screen in the app, which is a different block.
The surveys are entirely managed by MBurger to obtain the result and the vote the user did identifying him with the device_id which identifies univocally the user if a sign in/sign up method is not requested. To vote for a specific answer the SDK API is:

MBurgerTasks.voteForPoll(getApplicationContext(), poll.getId(), 
        selected_answer_index, old_array_of_answers, listener);

By calling this method the system will add the answer to the others and the other time the polls block is called we will also get the user answer to know if that particular poll has already been voted or not.
 

Highlighted content

Highlighted content is a special property of a section for specific blocks (in Radio Bruno case games and news) which must be shown on the home screen and link to the specific linked content. In MBurger to obtain this information we must obtain the project with the SDK method:

MBurgerTasks.askForProject(getApplicationContext(), this, false);

Which has the id of the evidence content, the block_id of the linked sections, plus a text content and an image:

@Override
public void onProjectApiResult(MBProject project) {
        evidenceObject = new EvidenceObject(project.getEvidence_block_id(), project.getEvidence_section_id(),
        project.getEvidence_title(), project.getEvidence_image());
}

By knowing the block_id and the section_id we can easily then obtain the highlighted object and map it to the specific custom class:

if (evidenceObject.getBlock_id() == NEWS_BLOCK_ID) {
        MBurgerTasks.askForSection(getApplicationContext(), section_id, true, news_section_listener);
        } else {
            if (evidenceObject.getBlock_id() == GAMES_BLOCK_ID) {
                MBurgerTasks.askForSection(getApplicationContext(), section_id, true, games_section_listener);
            } else {
                if (evidenceObject.getBlock_id() == CHART_BLOCK_ID) {
                    setChartFragment();
          }
    }
}

 

Live Messages

MBurger permits to send messages to to a specific part of the dashboard and see them updated in real-time my simply using the API:

String name = "Mario Rossi";
String text = "Siete grandi!!" 
MBurgerTasks.sendLiveMessage(getApplicationContext(), name, text, this);

Immediately the dashboard will show the new message on top of any other element, so the radio speakers can read in real-time while doing their program.
 

So… how does it sound?

Developing with MBurger simplifies app development and makes easier for developers to create complex contentful apps without knowing anything about server configuration or development. Its powerful SDK, easy-to-implement API and powerful plug-ins really speeds up development and content management, making MBurger system a great way to make rich and beautiful Android and iOS applications.
If you wish to make your first MBurger app please refer to the official documentation for Android and iOS or come in contact with us partecipating to our developers community.