560 blogs tracked4,950 posts indexed

#mobile

5 posts · 2 companies · newest first

Curated view of this subject:Topic: Mobile28
1

How We Moved 1,500 Android Screenshot Tests to Roborazzi (opens on the source site)

How we moved 1,500 Android screenshot tests to Roborazzi.IntroductionIf you’re a mobile developer you’re probably no stranger to screenshot tests. Making sure that layouts remain consistent as time goes on and code changes is important for ensuring functionality and accessibility. Since Thumbtack uses Kotlin and Jetpack Compose for its Android apps, we had historically been using Firebase Test Lab to capture and compare layouts. However, using Firebase can be slow, tedious, and error-prone, so we decided it was time for a change. Instead of Firebase, we decided to migrate to using Roborazzi,…

technologyroborazziexcerpt only · body stays at the source
From the web
2

Leveraging AI to build a faster iOS CI system (opens on the source site)

Every iOS pull request at Thumbtack used to wait 30 to 40 minutes for Continuous Integration (CI) — sometimes over an hour on Fridays. We built Smart Test Selection (STS) to cut that in half. Here’s how.I’m a Senior Software Engineer on the iOS Infrastructure team. We own the CI/CD pipelines, build tooling, and shared frameworks that keep Thumbtack’s apps shipping reliably. We also build AI-powered developer tooling — 35+ AI Agent Skills, MCP integrations for Jenkins, Figma, Firebase, and Xcode — that help the broader iOS team ship faster.Over the past few quarters, we built Smart Test…

developer-productivitymobileexcerpt only · body stays at the source
From the web
3

Headless Screenshot Testing in Thumbtack’s Android Apps (opens on the source site)

How we chose Roborazzi for fast, easy, and high-fidelity screenshot tests of our Android apps, without needing to run them on an emulator.As mentioned in our earlier blog post, screenshot tests are a fundamental part of our testing pyramid at Thumbtack. They validate that our UI code renders correctly. They catch UI regressions as our code evolves. They make it easy to share incremental progress with designers. In code reviews, they provide a great way for reviewers to “see” what the UI code is doing. Finally, they are very easy to write!But they were not always easy to run. Because they…

robolectricandroid-app-developmentexcerpt only · body stays at the source
From the web
4

Creating a Custom Mobile Integration for a Board Game Using Ruby on Rails (opens on the source site)

Picture this: you find a charming old board game at a garage sale, bring it home, gather some friends—and snap. The 50-year-old plastic components break instantly. You search the web for help to replace this fun and unique game mechanic but there’s nothing to be found. So naturally, you roll up your sleeves and build your own mobile version. No one else does this? Just me? Well, in case you ever find yourself in a similar boat, I figured I would walk you through what I did when building my own mobile integration to the 1973 Parker Brothers classic Billionare. As I said, right when I went to…

rubymobileexcerpt only · body stays at the source
From the web
5

Nativewind: Speeding up Styling in React Native (opens on the source site)

How Nativewind can speed up your React Native Development If you're anything like me, after working on a few web projects with Tailwind, it can feel like a drag to return to stacks that use other styling libraries. Tailwind has become, for myself, and many other developers, a standard styling paradigm. When starting my most recent React Native project, I was relieved to find out that NativeWind exists. NativeWind is exactly what is sounds like: Tailwind Classes in React Native. I can attest to the breeziness of writing an entire native app without a single call to StyleSheet.create. It's…

mobilereact-nativeexcerpt only · body stays at the source
From the web
5 shown

Privacy choices

Reading never requires analytics. These choices last 90 days on this browser.

Essential sign-in and security storage always stays on. Read the privacy notice.