We built The Three D Radio app to gain experience and better evaluate React Native. Three D Radio is a volunteer run community radio station broadcasting the best in alternative, South Australian and Australian music across the Adelaide metropolitan area on FM and DAB+, along with a web stream. The goals for the app were as follows:
As an internal project, we also had our own requirements:
NextFaze worked in collaboration with the Three D Radio board to develop and launch the app. The app has seen a large uptake since launch and has received overwhelmingly positive feedback from listeners.
Several components needed to be built to complete the app.
In order to allow on-demand streaming we needed to make sure audio files of each show were available to the app.
Regulatory requirements meant Three D Radio was already logging their broadcast as audio files. The logging software was modified to upload a copy of each file to an Amazon Web Services S3 bucket. Lifecycle rules are used to ensure old files are discarded when nolonger needed as a means of keeping storage costs manageable.
We used Serverless technology to process each file as it was uploaded to S3. A Lambda function extracts metadata from the file and places this into DynamoDB tables.
Additional Lambda functions are used through API Gateway to make show information available to the app.
The app pulls in data from a variety of sources:
Using the Wordpress API to fetch the broadcast schedule. The schedule is represented in Wordpress using Custom Post Types for shows and daily schedules. This data is refreshed on each app launch to ensure the correct schedule is shown.
The data from Wordpress is merged with on-demand show information using the Wordpress slug as a common identifier. This allows the app to display show profile information for on demand streaming
Using these datasources the app allows users to browse for their favourite shows and listen back to shows whenever they like, wherever they are in the world.