the app was written; the release wasn’t
Arabic screenshots, a stray English word, and the work that kept turning up while I prepared EXIF.ER 3.0 with AI
The Arabic version of my app's name looked wrong. I was checking screenshots for EXIF.ER 3.0, in a batch that was supposed to be nearly finished. I pointed it out and asked for a closer look at the Arabic interface. Then I noticed the English “at” surviving inside localized filename patterns. The other languages got another look, too.
I'd used AI throughout development, to find bugs and work through how the screens fit together. I'd also tested the app repeatedly on my iPhone. By the time I was preparing the store listing, I expected to be taking pictures of finished work. Instead, I was back in the app.
the year on my phone
An earlier code review had found a date formatter that could inherit the user's calendar despite having a fixed numeric filename pattern. A photo taken in 2018 could get the Buddhist year 2561 in its name. The app had read the date correctly and still produced a filename I hadn't intended. My own phone's calendar gave me no reason to notice.
The formatter now fixes the Gregorian calendar and Latin digits. Patterns with written month names keep those names localized, and tests run the same date through several locale settings. The naming scheme is one I chose for organizing backups; I had let a phone setting change it.
I was also reviewing the flow with AI. The folder preview lets me see proposed filenames before starting a job, and the results let me retry unfinished work. Those screens gave me more to check than whether the renaming code returned the right string. I could put a folder through the app and see where I still had to stop and figure out what had happened.
The Arabic screenshots caught a different assumption. The Latin wordmark and filename previews needed their intended reading order within a right-to-left interface. We fixed those elements. The leftover “at” was in the filename patterns themselves, outside the translated string catalog. I had been looking at translated screens with English still embedded in the output.
fifty-four screenshots
I already had English and Portuguese promotional images in Figma. Their layout was useful; the app inside the phone was out of date. I chose three screenshots per language for the store listing. Across eighteen languages, that meant fifty-four finished images.
A debug screenshot harness could open particular screens with example data. With access to the simulator and Figma, the agent could capture the running app and place those captures in the localized layouts. I prepared the sample photos and destination folder, then reviewed the exports. Fifty-four images is a lot to inspect, but I was glad to be spared setting up the same export fifty-four times.
For the website, I wanted twelve screens each in English and Portuguese. We used Apple's black iPhone frame and exported transparent WebP files at four sizes, making ninety-six assets from twenty-four captures. Three variants were missing on the first browser check. The build had started before the final exports finished; waiting for them and rebuilding fixed the 404s. The files were ready a little later than the agent said they were.
what changed in 3.0
The store copy needed a different kind of checking. I asked for a comparison with the previous version's release notes because video support, naming patterns, and saved tags already existed. They belonged in the description, but announcing them again would make the update sound larger than it was.
The 3.0 notes lead with the redesign and additions such as folder preview and retries. I asked to keep the familiar hyphen-led style, too. It is easier to correct the first draft before it becomes eighteen drafts.
I had the agent research Apple's guidance and prepare the App Store Connect entries through the API. It kept the text in local files so I could read it outside the browser forms, then compare it with what had been saved. Descriptions and release notes needed separate entries for each language, along with the shorter fields and screenshots.
The upload script waited for screenshot processing to finish, compared file checksums, and checked image order. Before removing the old English and Portuguese sets, it backed them up and verified the replacements. There was quite a bit of code devoted to making sure the pictures I'd just checked were the pictures that ended up in the listing.
the rest of the screen
One screenshot correction took us back to the tip jar. The harness had shown it on its own, under the Info and Credits title. It looked plausible, but the introduction and credits that surrounded it in the app were gone. I asked for the full screen. The debug path was changed to use the real About view with supplied tip offers, and we checked the Portuguese labels and Brazilian prices there.
The isolated tip jar had been easy to inspect. So had the filename patterns on my own phone. In both cases, I was looking at a small part of the app and carrying the rest in my head.
Version 3.0 is now on the App Store. The next time I change a filename pattern, at least, there is a test waiting with a calendar my phone never uses.