Dry Ark LLC

ControlFloor is an on-prem iOS device farm. It is closed-source and available to be licensed.

CF was first developed in 2020, and has been privately supported and sponsored by large software corporations for their own internal software testing.

Dry Ark does not run public device farms. We do not offer cloud iOS devices ourselves. If you wish to purchase cloud access to iOS devices as a service, you might consider LambdaTest.

CF can be used to setup your own device farm. You will need to purchase your own devices to do so. They can be placed in a data center of your choice or simply connected from anywhere you wish in the world.

CF consists of a few primary components:

CF uses go-ios under license, and Dry Ark cooperates with the open source community in research on iOS protocols and control.

Server Process

CF has a server process that runs a web server to provide access to and control of all interconnected iOS devices. Devices are not connected directly to the machine running this process. Instead iOS devices are connected to a machine running an iOS Provider. iOS providers in turn "provide" their devices to the server process to be accessed by users.

The server process can be run on any Linux machine, including in the public cloud. It could also be run on-prem for local company access only if one chooses.

iOS Provider

Anywhere there is an iOS device that you wish to connect to the CF system, an "iOS provider" should be run on the system which the iOS device is connected to. The provider communicates with, manages, and provides access to the iOS devices you connect through to the CF Server of your choice.

The iOS provider is written in a platform agnostic way. It can be run on Linux, and MacOS. Linux is recommended as the most efficient and reliable platform to do so.

Video streaming app

In order to provide visual web access to the screen contents of iOS devices, an on-device app containing an upload broadcast extension is used. Besides this app, video frames are also pulled in other ways, to ensure the screen can be seen in a variety of conditions.

The video app is optimized to keep latency and frame delivery as low as possible. It encodes and sends frames using jpeg. h264 or similar video codecs are not used, as they increase complexity and would prevent the system from flexibily and quickly responding to changing bandwidth conditions.

ControlFloorAgent

When first created, CF utilized WebDriverAgent for device automation and control. In order to provide a capable and low-latency control system, WDA was heavily customized. Those customizations are available in an open source version of WDA called ControlFloorAgent, which is available on GitHub freely.

WDA was found to be deficient in a variety of ways. In order to allow more accurate and faster automation and control of iOS devices, Dry Ark fully rewrote CFA from the ground up. The closed source CFA used by CF today is not a derivative work of WDA. The way it functions is conceptually similar. It wraps the Apple XCTest API. Beyond that similarity it is entirely different from the original WDA and also from the open source CFA we previously offered.