As any product developer knows, turning an idea from concept into reality can prove challenging. When that product is a digital app for mobile devices, the testing phase, in particular, is often among the most complex stages of development. This is due in no small part to the vast number of mobile device systems and configurations that exist in the public sphere; the combinations of physical hardware, memory configuration, operating system and version, screen size, CPU speed, and system settings are widely varied and hard to contemplate. Under most circumstances, a development shop must constantly keep a sizeable selection of mobile devices available in order to properly test how the app they’ve developed operates in each of these environments.
There is one AWS tool that alleviates this time-consuming task: AWS Device Farm. ClearScale, an AWS Premier Consulting Partner, recently helped a Silicon Valley firm prove the value of this dynamic AWS feature and create a solution that exceeded their expectations.
The Problem: Aggregating Video Feeds
After initial discussions, ClearScale began gathering resources for the client based on what they deemed key to the success of their product. The app would aggregate video feeds from a variety of well-known streaming services and deliver them through a cohesive user interface.
The value proposition was centered around app usability and a smooth viewing experience for end-users with minimal disruptions. By serving the video feeds through a centralized viewing interface, it reduced the need to switch between native apps that were specific to each viewing platform and allowed the user to curate the type of viewing experience they wanted.
Since the video content was not stored on our client’s servers, but rather served up through partner-specific APIs, it was clear from the beginning that an integrated API layer would be necessary in the mobile app in order to manage the diversity of APIs used. The content would then be delivered through a standardized protocol that the app could leverage.
The API layer needed to interface directly with a data layer in the app and feed standardized information into data models that could then be utilized by the UI layer. The end-user would see the UI itself, so it required the creation of navigational elements to allow management of the user’s preferences, as well as the controls necessary to browse, search, or playback, specified video content from one of the identified streaming service partners.
Along with the integration of Amazon Elasticsearch Service in order to provide a full, robust search and indexing experience in a scalable, fault-tolerant manner, the success of the app required the delivery of a seamless user experience regardless of the mobile device on which it was deployed. Once the app was developed in both a native app format (specifically Android and iOS), as well as in a Web application, it required deployment to the client’s Amazon S3 buckets — but not before integration into AmazonElastiCache to manage the caching of Amazon Elasticsearch, the Web tier, and the API tiers. The entire implementation was load-balanced using Amazon Elastic Load Balancing (ELB) and distributed to several Availability Zones (AZ) to minimize impact to users when accessing the app’s Web interface.
The Implementation Using AWS Device Farm
Creating an application from scratch and implementing it utilizing the robust AWS platform is nothing new for ClearScale — we’ve been executing this approach for years with numerous clients no matter the complexity or requirements of their project. However, this effort could not have succeeded without a vital tool that Amazon provides as part of their AWS suite of services: Device Farm.
With AWS Device Farm, ClearScale was able to establish and integrate the newly created app onto dedicated hardware devices readily available in the AWS Cloud. Unlike emulators which only test the base properties of an ideal model or device type, a Device Farm actually allowed our developers to deploy the final product onto numerous hard-wired devices, a few years old to the latest models, and across a wide range of Android and iOS operating systems and versions including Apple, Samsung, Amazon Fire, HTC, LG, and Motorola.
Once deployed to the numerous devices, both manual and automated test routines ran the app on each individual device to determine if key functionality remained intact and that performance did not suffer. Throughout this process, video of the experience along with device metrics was captured and returned to us for analysis. This allowed us to quickly identify areas of concern in the codebase, find solutions, and rapidly turn the new build around for further application testing within the Device Farm. This was all completed before the first app hit the consumer market.
By utilizing the Amazon Device Farm, we were able to provide value to our client by demonstrating beyond a doubt that the mobile application we delivered to them was fully operational in all the numerous mobile device systems and configurations with minimal issues. With the plethora of AWS services that are available, ClearScale can find the best solution for your most complex business requirements.