The Mood Controller Application allows setting up your ProFusion iO or iS media player as simple as possible. The Mood Controller application is an advanced application for helping user to control ProFusion devices. Through this application, user can manage the ProFusion device playback and controls (Play, Pause, Volume etc). Currently, this app supports Mood Mix and Pandora for Business service powered by Mood Media.
What You’ll Need:
- Pandora for Business or Mood mix subscription
- ProFusion iO or ProFusion iS Device
- USB WiFi Adaptor
- ProFusion iO or iS Remote Control
Testing Profusion Controller have been our most challenging Testing project so far. It’s due to of its dependency over external devices and uncertain network behaviour while setting up the app.
- Software and hardware compatibility.
- Multiple platform support.
- iOS restrictions during interaction with hardware device.
- Pandora activation in non-supported countries.
- VPN setup
- Jumping back from DNS local network to wifi network.
- Search existing ProFusion device on the network.
- ProFusion device webview cast in the application.
iOS versions compatibility
The challenge with this application was to control the physical device using the network (WiFI / LAN) classes. Application runs into various issues whenever the OS versions (iOS / Android) are updated with changes to the network classes.
To support this, let us discuss an issue (in gist) we ran into post an iOS OS update. The Mood Controller app was working perfectly fine on iOS 10.1 until iOS pushed an update for its operating system. Post the update, the application started facing crash issues. To fix the issues, we needed to update the Swift (programming language) as well as Xcode. As soon as Swift as well as the Xcode were updated, we were able to debug and fix the various issues.
The DNS broadcasting is one of the main features of the application. The user will see a network with the ProFusion device name when it starts broadcasting itself via the DNS.
The user needs to connect to the network created by the ProFusion device (post-broadcasting itself via the DNS) to allow one-to-one communication between the ProFusion device and the application. Post selecting the Wi-Fi network (the one broadcasted by the ProFusion Device), the user will need to select the ProFusion device from the application which will ask the user to set a name to their ProFusion device. This will initiate the one to one communication between the ProFusion device and the application. The purpose is to set the network online, for this the application allows the user to choose the type of connection – Wifi or Ethernet. Post this, in the case of Wi-Fi, the available SSIDs (Wi-Fi Names) will be shown. The user can select any of the available SSIDs and the application will prompt the user for the password. The purpose of this step is to feed the provided information in the device. Now, the device can be setup on the same network which was selected from the application.
A Virtual Private Network (VPN) is a network technology that creates a secure network connection over a public network such as the Internet or a private network owned by a service provider.
Challenges and need of a VPN setup:
In controller application, we needed a network through which we can connect multiple devices to ProFusion devices. Initially, we were facing a problem that we were having a ProFusion device whose backend is Pandora which needs a US IP and the device physical location is India. For a user sitting in India and needs to access a US IP, we created a VPN setup, in which we created a secure network connection over a public network (Internet).
VPN Setup sharing:
We first setup a VPN in a Windows system and connected a Mac through a Lan wire. Then we use this VPN setup to create our Mac device to behave as a router to broadcast network/internet to multiple devices. For this we need to allow internet sharing in Mac in following steps
WiFi (Header)/setting -> Open Sharing Preference -> Internet Sharing -> Select “Ethernet” in Share your connection from -> Select “Wi-Fi” into Computer using.
- Android (4.4 and above)
- iOS (9.3 and above) (10.3.swift)
Proposition and Solutions
- Developing an application to interact hardware devices.
- Displaying all available device on same network.
- On the player screen display metadata of the songs and all available controls.
- Control the overhead music without physical remote of access the website.
- Search for all available devices on existing network through IP (1>>>255).
Results and Benefits
- Delivered a scalable solution to the client.
- User can easily control playback by himself without support help.
- Fast access to ProFusion devices.
- You can control the system from multiple devices. So, you could turn the volume up from your iPhone and change the tracks from an iPad or android device.
- You don’t need to re-setup a device on the router that was already set up. You can directly access the existing ProFusion devices even with a new mobile device you just need to connect to the same network.
– Abhinav Teotia
QA Lead, SubcoDevs