Essential Apps

I Built a China Travel App Before the Trip. Three Weeks Later, I Understood Why.

An account of three weeks in China field-testing a travel utility app I built, including what worked, what broke, and what's still rough.


The first menu I tried to photograph was hand-painted on a chalkboard, faded, in a style that even my Chinese co-builder admitted she’d need a moment with. The app’s OCR gave up immediately. So I pointed at what the table next to me was eating. The food was good. But it wasn’t exactly the field test result I’d been hoping for.

That’s probably the fairest summary of three weeks in China: things worked well, then unexpectedly didn’t, then worked again. Which is exactly what you want to find out before you ship something.

Before the trip I’d spent months doing pre-departure research and kept running into the same gap in existing tools. They either assumed you’d be fine with zero Chinese or treated China as a single blob of “exotic Asia.” So during that research phase I started building a travel utility app. My co-builder is a Chinese friend who built the dish name database, handles the allergen mapping and cultural context, and manages all the Chinese-language content. The app is published under her developer account. Without her, the food features wouldn’t work. The plan was always to test properly during the trip. Three weeks became the real-world phase.

Payment, and why week one was rough

Before leaving I’d read approximately forty articles about how China is “cashless.” What they leave out: “cashless” means WeChat Pay and Alipay specifically, not anything like the contactless payments you’re used to. Your Visa card exists in a different reality.

Foreign cards technically link to Alipay’s international version now. “Technically links” and “works smoothly” are not the same thing. My first afternoon involved a small convenience store, a tired cashier, and me repeatedly tapping my phone at a reader that had no interest in my transaction. I had cash as backup, which saved me. By week two Alipay was working and I barely touched paper money again, but week one was a lesson in assuming nothing.

The app doesn’t solve the payment setup problem. There’s a checklist that flags payment as a blocking item, which I’ll get to, but even a perfectly completed checklist doesn’t override a confusing fintech process. You still have to do the actual work.

Getting somewhere

Taxis were easier than expected. The app has bilingual address cards with large Chinese text. You pull up the card, show it to the driver, done. Driver mode flips the phone landscape with the text large enough to read without squinting. Used it probably twenty times across the trip, zero communication required.

What I hadn’t expected: one driver called to confirm the pickup location, which is apparently common. Neither of us could understand each other. We both hung up. He still arrived at the right place. Whether he figured it out from the app address or just knows the city, I genuinely don’t know.

For navigation, Amap (高德地图) was the answer. Google Maps exists in China the way I technically speak French: true in principle, not functional in practice. Amap has accurate transit directions, real-time bus tracking, and data that’s just correct in a way Google’s isn’t for Chinese cities. Downloading offline maps before leaving saved me multiple times when hotel WiFi was being whatever hotel WiFi is.

The menu situation

Chinese restaurant menus are not designed to be transparent about what’s in them. “Lion’s Head” is braised pork meatballs. “Husband and Wife Lung Slices” is cold beef salad. “Saliva Chicken” is poached chicken in chili oil, which I ordered once purely on instinct and it turned out to be one of the best things I ate the whole trip.

There was also a dish that turned out to be primarily kidneys. The translation said “mixed meat” and I didn’t push further. So it goes.

The menu OCR works well on printed menus with standard fonts, which covers most restaurant chains and nicer sit-down places. The free version recognizes 158 dishes and gives an actual explanation of what the dish is, not a character-by-character translation that produces something like “cloud ear floating silk.” It also flags common allergens. The pro version covers 1766 dishes. My co-builder built that database because dish names are often regional, poetic, and impossible to get right with any automated translation.

Where it breaks: handwritten menus, faded chalkboards, unusual fonts, very regional dishes. Street food stalls were hit-or-miss. On printed menus I’d estimate a 75-80% useful translation rate. The rest was still pointing at the neighboring table.

Handwritten menus are hard. The character variance in handwriting is a different problem from printed text, and it’s still something I’m working on.

The checklist (and what I didn’t know I needed)

The pre-trip checklist has 28 steps. It sorts by urgency and risk, flags blocking items (things that are hard or impossible to fix once you’re in China), and reorders itself based on your arrival date. VPN is a blocking item. Downloading offline maps is a blocking item. Payment setup is a blocking item.

This sounds like overkill for a to-do list. But when you’re tracking 28 interdependent preparation tasks while also doing your normal job, having something tell you “this one has to happen this week, these others can wait” is genuinely useful. Opening it constantly in the month before departure, I kept finding tasks I’d meant to do and hadn’t.

There’s a home screen widget that shows checklist progress and flags the next blocking task. Small thing, but it meant not opening the app every time I wanted a quick status check.

What the app couldn’t do

Communication gaps that weren’t about translation. Tone, context, the implied stuff. There was a moment in a Sichuan restaurant where I was trying to explain I didn’t want the table next to the kitchen. Completely manageable in English. The show-card approach only works for things I can anticipate and pre-program. Spontaneous negotiation in a second language is just hard, and no app changes that.

The emergency phrase library has useful content for medical situations, navigation, and common scenarios, and it works offline. But I’d be cautious about leaning on it for anything nuanced.

Voice translation is in the app, English-Chinese both directions with playback. It uses iOS’s offline translation engine with Tencent Translate as a backup when you have signal. Used it a handful of times and it worked. But nervousness about mishearing something important meant I defaulted to show-cards more often than probably necessary.

What three weeks actually told me

Three weeks is enough to go from confused to functional, not enough to reach comfortable. The trip left me with a much clearer sense of what the app was good at, what it was papering over, and what it genuinely couldn’t touch.

There’s a version of field testing where you watch other people use your product and take notes. Then there’s the version where you’re standing on a sidewalk in Chengdu at 8pm, phone at 12% battery, trying to find a restaurant, and you are suddenly very clear about which features matter. I’ve now done both versions, and the second one is more honest.

My co-builder and I have been working through the post-trip changes. The dish database has more entries. The offline sync issues we kept hitting are mostly fixed. There are still gaps, and Chinese food is regional enough that there will always be gaps. We know which ones they are now.

If you’re going to China

The app is called China Ready Travel. Free to download, $5.99 one-time for the pro version, which gets you the full dish dictionary, more address cards, expanded emergency phrases, and lock screen reminders. No subscription, no account required, no tracking. iOS only for now.

If you take it on a trip and something doesn’t work, I actually want to know. Not as a disclaimer. Real trip feedback is the most useful data available for something like this, and the chalkboard menu at the top of this post is a problem I’m still trying to solve.

Download China Ready Travel on the App Store

What’s next

Android is the obvious one. The lock screen widget has some issues on older iOS versions that need sorting. More regional dish coverage is on the list, especially Yunnan and Guangdong, which are both underrepresented in the current database.

The harder thing to build is what you don’t know you need until you’re in it. I didn’t know I needed a driver callback mode until a driver called and I had no idea what to say. That’s on the list now.

If you’ve done the trip and have thoughts on what would have helped, the email’s on the about page.