Instil was hired by Tyco to develop victor Go, a mobile application used to control remote CCTV cameras and stream live footage over the internet. Go is the companion app for Tyco’s market leading victor product - a range of hardware and software components used to manage access control and surveillance devices across wide-area deployments.
Prior to Go, the core victor application server shipped with a browser-based solution to control and monitor multiple, simultaneous high-definition CCTV cameras. Designed purely for the desktop, the browser solution is able to rely upon the increased screen real-estate and processing power afforded by the desktop to enable its rich functionality.
The challenge was therefore to replicate this experience onto a mobile device whilst maintaining the functional richness and streaming capabilities of the desktop, including the ability to stream up to 9 high-definition CCTV camera feeds concurrently, without killing the device’s battery.
At the core of the Instil solution is a bespoke C++ streaming library designed (and tested) to reliably and efficiently stream video content over RTP/RTSP. The actual Android and iOS clients were developed using Xamarin, a highly productive, cross-platform development framework that essentially compiles C# into native code.
By combining these technologies we were able to:
Reduce the overall development effort (and cost) by reusing low-level protocol and application logic across Android and iOS.
Maximise video decoding efficiency by handing decoding over to the underlying hardware.
Simplify the code base by using one language for the app development (C#) and one language for handling the low-level streaming logic (C++).
As with all our projects, the development team employed the usual slew of developer tools, including Calabash for automated testing, Jenkins for continuous integration, and a device farm for testing functionality and performance across a range of devices.
For more information on our experiences with Xamarin, please see this blog post.
- Automation Testing (Calabash / Test Droid)