Provided with a broad experience in mobile app development, Rishi Software Services(RSS) 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 RSS’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. Rishi Software Services(RSS) fixed this issue.
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
Rishi Software Services(RSS) 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