Tophat: Crafting a Delightful Mobile Developer Experience

Insight into how Shopify created a seamless one-click manual testing experience (known as "tophatting") for mobile applications by creating a macOS app.

Overview

The article discusses Tophat, a tool developed by Shopify to enhance the mobile developer experience by streamlining the testing process for mobile applications. It details the evolution of Tophat, its integration with existing workflows, and how it simplifies the testing of changes on real devices without the need for extensive manual setup.

What You'll Learn

1

How to leverage Tophat for seamless mobile app testing

2

Why using real devices improves mobile app testing accuracy

3

How to automate the signing process for iOS applications

Prerequisites & Requirements

  • Basic understanding of mobile app development and testing
  • Familiarity with Xcode and Android Studio(optional)

Key Questions Answered

How does Tophat improve the mobile development workflow?
Tophat enhances the mobile development workflow by allowing developers to test changes on real devices with a single click, eliminating the need for local compilation. This results in faster feedback loops and a more enjoyable testing experience, which encourages more frequent testing.
What challenges does Tophat address for iOS development?
Tophat addresses the challenges of installing and launching apps on real iOS devices by using the ios-deploy utility for installation and automating the signing process. This simplifies the setup for developers, allowing them to focus on coding rather than configuration.
What is the significance of the Quick Launch feature in Tophat?
The Quick Launch feature allows developers to easily grab the latest builds of applications, ensuring that they are working with the most current code. This feature streamlines the development process and reduces the time spent on manual setup.
How does Tophat handle CI artifacts for mobile app testing?
Tophat integrates with continuous integration processes to store build artifacts in Google Cloud Storage, allowing developers to install these builds directly on devices. This eliminates the need for local builds and speeds up the testing process.

Key Statistics & Figures

Daily usage of Tophat
The number of times Tophat is used each day has doubled since the latest improvements.
This increase indicates that developers are finding the new features valuable and are using Tophat more frequently.

Technologies & Tools

Tool
Ios-deploy
Used for installing and launching apps on real iOS devices.
Cloud Storage
Google Cloud Storage
Stores build artifacts for easy retrieval during the testing process.

Key Actionable Insights

1
Integrate Tophat into your mobile development workflow to streamline testing processes.
By using Tophat, developers can significantly reduce the time spent on compiling and testing, allowing for quicker iterations and improved productivity.
2
Utilize the Quick Launch feature to ensure you are always testing the latest application builds.
This feature minimizes the risk of working with outdated code, which is crucial for maintaining quality in fast-paced development environments.
3
Automate the signing of iOS applications using Tophat to simplify the deployment process.
This automation reduces the complexity of managing certificates and provisioning profiles, making it easier for developers to focus on writing code.

Common Pitfalls

1
Failing to provision devices correctly can lead to installation issues.
Developers must ensure their devices are registered and provisioned properly to avoid complications when installing apps with Tophat.
2
Overlooking the need for proper signing certificates can hinder deployment.
Without the correct certificates, developers may face challenges in deploying apps to real devices, which can slow down the testing process.

Related Concepts

Mobile App Development Best Practices
Continuous Integration And Deployment Strategies
Automated Testing Frameworks