Add a floating fingertip & automate your app demo video using Xcode UI tests.
Check out our blog post for more info.
To run the example project, clone the repo, and run pod install
from the Example directory first.
If you don't already have one, create a UI test target for your app.
Floater Floater:hankey:/AppStuff
and Floater:hankey:/UITestStuff
should each be included separately into your app target & UI test target, respectively.
# Podfile target 'MyApp' do pod 'Floater:hankey:/AppStuff' end target 'MyAppUITests' do pod 'Floater:hankey:/UITestStuff' end
Floater:hankey:/Classes/AppStuff
goes into your app target. Floater:hankey:/Classes/UITestStuff
goes into your UI test target. Floater:hankey:/Classes/Shared
goes into both your app target and your UI test target. Floater:hankey:Application
as the application class Remove @UIApplicationMain
from your AppDelegate file, and create a main.swift file containing the following:
import Floater_ UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(Floater:hankey:Application.self), NSStringFromClass(YOUR_APP_DELEGATE.self))
@import Floater_; int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, NSStringFromClass([FLTRApplication class]), NSStringFromClass([AppDelegate class])); } }
Write UI tests!
Write your UI tests as usual, with one difference: Use the float:hankey:()
method prior to each tap to move the floating fingertip between tap events.
let awesomeButton = XCUIApplication().buttons["Awesome Button"] awesomeButton.float:hankey:() awesomeButton.tap()
You can call this method on both XCUIElement
and XCUICoordinate
.
If you've never written Xcode UI tests, check out the WWDC 2015 session UI Testing in Xcode .
Run your tests in the simulator by hitting ⌘+U. You'll be presented with the following prompt:
Hit “ Allow ”. This is necessary for the test process to communicate with your app process.
Use Quicktime Player to record your screen. Boom.