Register
Submit a solution
The challenge is finished.

Challenge Overview

Checkpoint phase

We added a checkpoint phase in this challenge, all submissions that submitted before Feb 7, 
2019 9:00 PM EST will be considered as checkpoint submissions. We will provide preliminary feedback to all checkpoint submissions, you can submit again after the checkpoint phase. We will choose 5 checkpoint winners, each winner will receive $100 (not included in the main prize $1400/$600/$300/$150/$100). So finally you will receive $1500/$700/$400/$250/$200 potentially.

Important deadline
- Checkpoint submission phase deadline: Feb 7, 
2019 
9:00 PM EST
- Final submission phase deadline: Feb 12, 
2019 
9:00 PM EST

  • Target environment: iOS Devices

  • Basic Requirements: Explore a way to control iOS devices remotely.

Project Background

 

STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches, and other gadgets remotely, from the comfort of your browser.

 

OpenSTF is a popular open-sourced STF application, its source code is hosted on https://github.com/openstf/stf

 

Currently, OpenSTF only supports Android device testing, our client wants to extend it to support iOS Device.

Technology Stack

  • iOS

Individual requirements

 

The key feature of STF is to control devices remotely. Android adb provides the features to remote control an Android device. For example

 
  • Send keyevent remotely: adb shell input keyevent 4

  • Touch remotely: adb shell input tap x y

  • Swipe remotely: adb shell input swipe 50 250 250 250 500

  • Input text remotely: adb shell input text abc

 

We want to achieve the same remote control for iOS devices (iPhone/iPad).

 

However, the remote controlling of iOS devices is much more difficult than Android, because iOS has more strict security and sandbox scheme. So we need to implement a feasible way to control iOS devices remotely.

 

In this challenge, we focused on

 

1. Full interaction of all screens

Specifically, it includes

  • Send key event remotely

  • Touch remotely

  • Swipe remotely

  • Input text remotely

 

For the demo, you can demo the following actions remotely

  • swipe the screen to find the Notes app

  • touch the screen to open the Notes app

  • input text on Notes

  • delete text on Notes

 

2. Select the Home button

Specifically, it’s to enable that we press the Home button any time remotely.

 

Back to the demo above, you can demo

  • pressing the Home button to go back to Home remotely.

 

Hints

 

We investigated a bit before launching this challenge, and we found AWS Device Farm supports all required features.

 

Here is an AWS Device Farm demo video about controlling an iOS device remotely. https://www.youtube.com/watch?v=CX-K9ZaX_50

 

So technically, it’s possible to control the iOS device remotely, but we need to investigate how to address it. Maybe we can investigate the way that AWS Device Farm uses as the starting point.

 

Notes

  • We should try to avoid jailbreaking iOS devices, this is not permitted by Apple officially and it might cause irreversible device damage.

  • In this challenge, the code is not mandatory. You just need to provide a document with repeatable steps to describe how to control an iOS device remotely. But if you think some code is helpful for the remote control, welcome to include the code in your submission.

  • You also need to provide a video to demonstrate the remote control worked on your side.

Review

 

This challenge will be reviewed by the copilot (and the PM/client) subjectively, so there is no appeal and appeal response phase.



Final Submission Guidelines

Please zip all the following content in a zip archive.

1. Well-Formatted documentation (in .md/.pdf/.docx) with repeatable steps to describe how to control an iOS device remotely. Please ensure the steps are detailed enough then even a novice can follow the steps to remote-control an iOS device easily.

2. A demo video to demonstrate the remote control worked on your side.

3. Any other contents that you think are required for augmenting the remote control.

Checkpoint phase

We added a checkpoint phase in this challenge, all submissions that submitted before Feb 7, 
2019 9:00 PM EST will be considered as checkpoint submissions. We will provide preliminary feedback to all checkpoint submissions, you can submit again after the checkpoint phase. We will choose 5 checkpoint winners, each winner will receive $100 (not included in the main prize $1400/$600/$300/$150/$100). So finally you will receive $1500/$700/$400/$250/$200 potentially.

Important deadline
- Checkpoint submission phase deadline: Feb 7, 
2019 
9:00 PM EST
- Final submission phase deadline: Feb 12, 
2019 
9:00 PM EST

 

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30082421