Music App Development for a U.S. Audio Streaming Service Provider

  • Personalized music channels with pre-selected tracks
  • In-app track recording and editing
  • Full-featured mobile music apps for Android and iOS
Expertise
Media Content Distribution
Verticals
Media & Entertainment

Developing, testing and supporting a music streaming app with DJ, track creation and recording features.

  • Android
  • iOS
  • php
  • MySQL
  • XML
  • Java
  • JavaScript
  • HTML
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 30+ million tracks by 1.5+ million artists and the ability to both listen to existing channels and build new ones.

After changing a few software development providers, the Customer started collaborating with Iflexion. The project goal was to continue the music streaming app development, add new features, and stabilize the app’s existing functionality.

Solution

BYO Channel allows users to personalize the music listening process on the go by building channels, skinning them, and adding more songs.

The core functionality of the BYO Channel includes:

  1. Search – allows users to search by musical tracks, artists, albums, lyrics, and app users. Within the search, users can sort and filter tracks, build new channels, add tracks to favorites and to existing channels. The app allows for listening to a short sample of a track found through the search. Users see the search results in the form of a list that they can use to access the artist’s page, album page, or user profile page. App subscribers can visit each other’s pages and view the channels created by different users.
  2. Building a channel. Users can add tracks to the channel playlist, name channels, add descriptions, tags, and set images for the channel. Also, the channel can be made public or private.
  3. Channel player. One of several algorithms can be set up for a channel. The algorithm takes into account the tracks added to the channel playlist. Based on the added tracks, the algorithm provides track playback based on the parameters specified in the algorithm. The player’s UI enables users to manage the channel, as well as play it in Chromecast and share it in social networks.
  4. DJ. The function allows users to record and edit tracks. Tracks can be added to existing or new channels. The access function is available after purchasing a subscription. The 3-level subscriptions allow users to select the necessary rate for recording tracks.
  5. Ads:
    • Banner ads are displayed on different screens and can be disabled by purchasing a subscription.
    • Music ads feature short tracks designed to provide advertising content. Music ads are set for different channels and are integrated into the playback queue.
    • Channel image ads allow users to change the channel image given by the user to the ad image in accordance with the available settings. 

Development Process

Team

Provided with a broad experience in mobile app development, Iflexion formed a mobile team flexible enough to respond to the changing task workflow and project priorities. Today, the team consists of iOS and Android developers, backend PHP developers, business analysists, administrators, a project manager, and a QA specialist.

The team analyzed the system and decided which elements can be reused, and which one have to be rewritten from scratch. After that, active development began. After a year, the service was released and the stabilization stage started. Timelines and budgets were expanding all the time together with new improvements. It was easy to process new requirements for the music app development since the Customer always respected the opinion of the team and was very receptive to Iflexion’s input and initiative.

The most challenging aspects of the project were:

  • Integration (enabling ads and updating content from third-party media bases)
  • Stabilization of the app functionality developed during the previous phases (lack of specification documents, lack of serious analysis and architecture, certain parts of the app required a global rework)
  • Lack of scalability features

Originally, the service did not suppose horizontal scaling, which is very important in case of heavy user load, though. Iflexion fixed this issue.

Integration

Within the framework of music streaming app development and implementation, the team integrated the solution with the following automated systems:

  • MediaNet radio feed for receiving tracks and metadata for tracks, artists, albums
  • Lyric tool for obtaining lyrics
  • AdTech and Admob API for displaying ads (banner, skin and audio ads)
  • Facebook API for sharing information about the played track or channel on Facebook
  • Twitter API for sharing information about the played track or channel on Twitter
  • Crashlytics for collecting information about app errors

Infrastructure Components

Server

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

  • Track search algorithms (for channels)
  • Track finding algorithms (of songs, albums, musicians)
  • Statistics (reports)
  • Media processing with silence cutting
  • Admin (based on Sonata Admin).

iOS App

Iflexion designed and implemented various iOS-centric components:

  • Playing music, based on the native AVFoundation framework
  • Displaying and editing the audio track, using a heavily modified third-party solution, FDWaveformView.

The team used the following libraries:

  • Chrome Cast – broadcasting the played tracks on the TV screen
  • Reachability – checking internet connection
  • MagicalRecord – working with the database
  • XLPagerTabStrip – Android-like swipe page navigation
  • DraggableCollectionView – ability to move list items
  • SDWebImage – downloading images from the network
  • XLForm – input fields and their validation
  • MarqueeLabel – running text

Android App

The developers also delivered custom components for the Android app:

  • Local track playback, developed with native Android SDK tools.

During the music app development, the team used the following libraries:

  • GraphView – displaying the volume level of a single track in the form of columns
  • FFmpeg – track analysis and conversion of tracks
  • Chromecast – broadcasting the played tracks on the TV screen
  • Robospice, Robospice-spring-android – integration with the REST server
  • Drag-sort-listview – ability to move list items
  • Universal image loader – downloading images from the network
  • Roundedimageview – displaying round images

Technologies

Presentation layer:

  • Android SDK
  • iOS SDK

Business logic layer:

  • Symfony2
  • Android SDK
  • iOS SDK

Connectivity layer:

  • REST API
  • REST (Robospice, Robospice-spring-android)
  • AFNetworking

Persistence (database) layer:

  • Doctrine
  • MagicalRecord

Results

The last update included new social sharing options, streaming improvements, various bug fixes and performance enhancements for a better BYO experience. Dedicated testing engineers joined the music app development to test new features.

Additionally, Iflexion’s QA team conducted two rounds of security testing in order to reveal vulnerabilities that could cause data leakage.

At the moment, Iflexion provides maintenance and support activities aimed at monitoring server and environment health, responds promptly to requests, as well as delivers regular detailed reports on the app updates. The development team solves all code-level issues.

Screenshots

WANT TO START A PROJECT?

It’s simple!

Please wait...