Overview
The article discusses the implementation of a mobile tophatting process at Shopify, aimed at improving the testing of new features in their mobile applications. It details the challenges faced by developers and how the new system integrates with their continuous integration infrastructure to streamline the testing process.
What You'll Learn
1
How to streamline the mobile tophatting process using Shopify's CI infrastructure
2
Why skipping the compilation step can enhance developer productivity
3
When to use the dev command for tophatting mobile projects
Prerequisites & Requirements
- Basic understanding of mobile application development and CI/CD processes
- Familiarity with Git and GitHub for version control
Key Questions Answered
What is the tophatting process at Shopify?
The tophatting process at Shopify involves developers testing changes locally before merging them into the codebase. It requires saving current work, checking out a different git branch, setting up the local environment, and building the app, which can be time-consuming without the new streamlined process.
How does Shopify's CI infrastructure support mobile tophatting?
Shopify's CI infrastructure supports mobile tophatting by providing pre-built application binaries that developers can access without needing to compile the code themselves. This significantly reduces the time spent on testing changes, allowing developers to focus on their work.
What improvements are planned for the tophatting process?
Future improvements for the tophatting process include adding local caching to avoid repeated downloads of artifacts, enabling testing on real devices, and simplifying the input for tophatting by allowing developers to specify repository and branch/commit directly.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Version Control
Github
Used for managing code changes and facilitating the tophatting process.
CI/CD
Buildkite
Used for continuous integration and providing build artifacts for the tophatting process.
Development Environment
Xcode
Used for building iOS applications.
Development Environment
Android Studio
Used for building Android applications.
Key Actionable Insights
1Implementing a streamlined tophatting process can significantly reduce build times for mobile developers.By leveraging pre-built binaries from the CI infrastructure, developers can avoid lengthy compilation steps, allowing them to test changes more efficiently.
2Utilizing the dev command for tophatting can simplify the testing workflow for mobile projects.This command allows developers to easily specify which pull requests or branches to test, reducing the complexity of the testing process.
3Incorporating feedback from developers can lead to continuous improvement of the tophatting process.Shopify has received numerous suggestions from developers, indicating that an iterative approach to enhancements can lead to better tools and workflows.
Common Pitfalls
1
Failing to properly set up the local environment can lead to issues when tophatting.
Developers must ensure their local setup matches the requirements of the branch they are testing to avoid runtime errors.