Music Application Development for a US Audio Streaming Service

  • Full-featured music streaming on iOS and Android
  • Personal music channels and user networking
  • In-app track recording and editing
  • App monetization via ads and subscriptions

 

 

 

Expertise
Media Content Distribution
Verticals
Media & Entertainment

Mobile and backend development, testing and support for Build Your Own Channel, a music streaming app for users to create and share their personal music channels.

  • Android
  • iOS
  • php
  • MySQL
  • XML
  • Java
  • JavaScript
  • HTML
  • Amazon RDS
  • Objective-C
  • Amazon Web Services
Calendar
18
Months
Gears
180
Person-months

Context

Our Customer, BYO Network, is the owner of the audio streaming service Build Your Own Channel (BYO Channel) with 40+ million tracks by 4+ million artists, enabling users to listen to others’ music channels as well as build their own.

Four years into developing the service, the company had to continuously switch software development vendors until they onboarded Iflexion’s team of mobile developers. Our goal for this project was to take up the music streaming app development, add new features, and stabilize the existing functionality of the iOS and Android apps.

Solution

During this year-and-a-half engagement, Iflexion’s team revisited the iOS and Android applications in the BYO Channel suite, to provide their users with an improved experience of collecting and sharing their favorite tracks on the go, with the ability to create channels, personalize their design, and add new songs.

BYO Channel Apps: Core Features

Search

Users can search BYO’s vast collection by tracks, artists, albums, lyrics, and other users. They can also sort and filter tracks, listen to a short track sample right on the search results page, add tracks to their new and existing channels, and add tracks to favorites. 

Search results are shown as a list from where users can access the artist’s page, album page, or a user’s profile page. Users can visit each other’s pages and view the channels created by them. 

Building a channel 

Users can add tracks to their channels, name channels, add descriptions and tags, as well as set cover images. Each channel can be published as public or private.

Channel player 

The channel player suggests several algorithms that can be set up for a channel, with the chosen algorithm adjusting to the tracks added. Depending on the tracks, the algorithm sets up playback according to its specified parameters. In the channel player interface, users can manage the channel, play it in Chromecast, and share it on social networks.

DiJi®

This trademark feature allows users to record and edit their own voice tracks, which can be then added to existing or new channels. The feature is available by subscription only and comes in three editions−basic, premium, and X. 

In-app advertising

There are three types of in-app ads, shown or played to users unless disabled through a commercial-free subscription:

  • Banner ads, displayed on the app screens 
  • Music ads, short tracks integrated into the playback queue
  • Channel image ads, which can be placed by users as sponsored cover images for their channels 

Development Process

Well-versed in mobile app development, Iflexion ramped up a team flexible enough to respond to continuously changing tasks and project priorities. In total, the team consisted of iOS and Android developers, backend PHP developers, business analysts, administrators, a project manager, as well as QA and security testing experts to ensure the apps were well-protected and had no vulnerabilities.

As our team inherited the project from past vendors, we revisited the scope of the music app development, analyzed the underlying code, and decided on the elements that could still be reused as well as the ones that had to be rewritten from scratch. This stage was followed by fast-paced Agile development, which lasted for a year before we released the apps to production and started the stabilization stage.

In the course of this music app development, Iflexion’s team addressed a few non-trivial challenges rooted in the nature of this project:

  • Integration of third-party media databases to enable ads and add new licensed music tracks to BYO Channel.
  • Stabilization of the app functionality developed before we took over the project, which was hindered by the lack of technical specifications, poor legacy solution architecture, and certain parts of the app requiring a complete overhaul.
  • Lack of horizontal scalability features, which were critical for the apps’ resilient performance under heavy load.

Technologies

Integration

Within the framework of music streaming app development and implementation, our team integrated the solution with the following third-party tools:

  • AdTech and Admob API for displaying ads
  • Facebook API for sharing tracks or channels on Facebook
  • Twitter API for sharing tracks or channels on Twitter
  • Crashlytics for collecting information about app errors

Infrastructure Components

The server

Iflexion’s team developed the following server-based components from scratch:

  • Track search algorithms (for channels)
  • Track finding algorithms (for songs, albums, musicians)
  • Reports
  • Media processing with silence cutting-out
  • Admin area (based on Sonata Admin)

The iOS app

Iflexion designed and implemented multiple iOS-centric components:

  • Audio streaming, based on the native AVFoundation framework
  • Display and editing of audio tracks, using a heavily modified third-party solution, FDWaveformView

Our team used the following libraries:

  • Chromecast for playing tracks via a TV set
  • Reachability for checking internet connection
  • MagicalRecord for database management
  • XLPagerTabStrip for Android-like page swiping
  • DraggableCollectionView for rearranging items in lists
  • SDWebImage for downloading images from the network
  • XLForm for filling in and validating fields
  • MarqueeLabel for running text

The Android app

Our developers built the local track playback as a custom component, using the native Android SDK tools. For the Android music app development specifically, we used the following libraries:

  • GraphView for displaying the volume level as a column
  • FFmpeg for track analysis and conversion
  • Chromecast for playing tracks via a TV set
  • Robospice, robospice-spring-android for integrating the app with the REST server
  • Drag-sort-listview for rearranging items in lists
  • Universal image loader for downloading images from the network
  • Roundedimageview for displaying round images

Migration to AWS

The pinnacle of the project was the migration of the solution backend from BYO Network’s servers to Amazon Web Services (AWS). In the course of the migration, we utilized the following technologies:

  • AWS CloudFormation to create the basic architecture (Virtual Private Cloud)
  • Amazon Elastic Compute Cloud (EC2) to deploy the staging and production environments, as well as to host Byochannel.com containing download links and supporting information
  • AWS Elastic Load Balancing to distribute traffic between the servers
  • AWS CodeDeploy to deliver the solution’s new versions
  • Amazon Relational Database Service (RDS) as a database
  • Amazon Simple Email Service (SES) as an email server
  • Amazon Route 53 as a DNS service
  • Amazon Simple Storage Service (S3) as a storage for media files

Results

Iflexion’s mobile developers were instrumental in bringing BYO Channel apps to the market, stabilizing the features developed before us and adding new ones. The resulting suite of mobile music streaming apps is now available to users to create and manage their channels with flexible subscription options.

The latest update included new social sharing options, streaming improvements, bug fixes and performance enhancements for a better experience. Our dedicated QA and testing engineers also delivered their share of functional, performance and security tests.

Iflexion continuously provides maintenance and support on this project, monitoring the server and the environment, responding promptly to requests, and delivering regular detailed reports on the app updates.

Screenshots

WANT TO START A PROJECT?

It’s simple!

Attach file
Up to 5 attachments. File must be less than 5 MB.
By submitting this form I give my consent for Iflexion to process my personal data pursuant to Iflexion Privacy and Cookies Policy.