Delight.io is an iOS framework that, with one line of code, can record sessions of your application and annotate the recording with all touch gestures. It is a simple but powerful tool for gathering data about how your users are navigating and interacting with your app. Delight.io is simple and easy to use and recently added the ability to record the user’s emotions using the iPhone’s front camera, giving you even more insight into how your app is being used. If you want to create better experiences for your users by observing them in their natural habitats, this framework is a dream come true… and it works.
Delight.io also comes with advanced configuration settings. You can mark any view within your application as “private,” meaning that view will not be displayed in the screen recording. As an added bonus, any UITextField within your application that is marked as “secure” using UITextField’s secureTextEntry property is automatically omitted from the screen recording.
All of your recording sessions are (optionally) automatically uploaded to Delight.io and managed via a simple and solid web dashboard interface. From the dashboard you can view and filter through all of your recorded sessions for all of your applications. You can also pause recording for any application from the dashboard. Delight.io offers the ability to add arbitrary metadata to any application’s recording sessions. You could use the metadata feature to identify your session with your test user’s name, for example. Awesome! Below are a few screenshots of a session recording and the web dashboard.
The only downside to Delight.io I could find was that Delight.io is proprietary. You can’t see their source code, and you have to purchase credits for recording sessions (You get 100 sessions for free as soon as you sign up). While these limitations are a bit of a rain on the parade, they are worth it.
It is also worth noting that if you simply install the framework and put
[Delight startWithAppToken:@"Your App Token"]in your app delegate in the
application:didFinishLaunchingWithOptions:method, it’s really easy to forget that you will now start a new session recording every time your app is opened. You’ll blow through your precious recording sessions really quickly that way. I would recommend that you implement a control that will allow you to dictate from the app whether a session should be recorded after the app launches. A simple prompt such as, “Would you like this app session to be recorded?,” when the app launches will help you maintain the integrity of your recordings.
In conclusion, I would recommend this framework to anyone and everyone. Every little piece of data you can get about how your users are using your application is valuable and Delight.io will collect all of your screen interaction data for you!