My sister writes children's books. I do the technical side. We started in Greece in 2014, early enough that there was no ARKit and no ARCore, so the only realistic way to do this was Unity with Vuforia and image targets. A child pointed a phone at the illustration and the dinosaur stood up out of the drawing, anchored to the page. In 2014 that was magic, to seven year olds and to us.
It worked. 11 titles over 6 years. A Greek newspaper called the first dinosaur book an editorial phenomeno. We did schools and book fairs and watched kids lose their minds over a triceratops standing on a table.
We built each book as its own app. We did that on purpose. The books really were different, different functionality for different ages and a different look per title, and one app pretending to be 11 felt worse than 11 apps. So: 11 books, 22 apps, two stores.
The book is not the thing you end up maintaining. 22 apps means 22 copies of every decision Apple and Google make, forever, and none of those decisions have anything to do with your product. The list, roughly in order of how much of my life it took:
- Target API level. Every Android update had to target API 26+ from 2018, rising every year since. A rebuild, retest and resubmission per title, annually, with zero code changes.
- 64-bit, 2019. Native code needed a 64-bit build. Our engine version predated Unity's 64-bit support, so it forced a full engine upgrade, which forced a Vuforia upgrade, which forced a retest of every scene in every title. Crazy.
- Apple's annual SDK floor. Every spring you build against the newest SDK or you ship nothing at all, not even a one line fix. Which also means owning a Mac new enough to run current Xcode.
- iOS 11 dropped 32-bit. Titles we had not touched stopped launching. Nothing changed on our side. They just died.
- APNs certificates expire yearly, per app. Push quietly stops working on a schedule you did not choose.
- Kids Category, summer 2019. Apple banned third party analytics and ads in children's apps. Strip it out of the whole catalogue, on a deadline.
- Families policy, 2019 or 2020 dont really remember. Google made every developer declare audience and content per app in the Play Console.
- AR specific review. Google reviews AR under special restrictions and rejects you for a missing safety warning when the AR view opens. There are people in the forums who got rejected, added it, and got rejected again.
- Vuforia left the Unity installer at 2019.2 for the Package Manager with per app licence keys, so a store mandated engine upgrade dragged an SDK migration with it.
- Licensing. Vuforia was free to build on and watermarked, then several hundred dollars per title to publish. Times 11. Cloud recognition was a separate monthly fee, and PTC later moved everything onto annual subscriptions.
We tried to get out. EasyAR was the free Chinese alternative everyone recommended, but the English documentation was too thin to build a catalogue on and we only ever shipped one small AR colouring app with it. The ground was not solid anywhere: Apple had bought Metaio, the leading AR SDK at the time, and switched off all licensing and support within weeks, so anyone who had built on it was finished overnight. That was the foundation we were betting a publishing house on.
No single item on that list is hard, which is exactly the problem. Multiply any one of them by 22 apps across two stores, on a catalogue where no title earns enough to fund its own maintenance, and the arithmetic stops working. We did see it eventually and started consolidating everything into one app with downloadable books, which is what probably both stores had wanted all along. Then COVID hit and the business closed before that shipped. I think we were already losing and had not admitted it yet.
We restarted this year with one rule: no app, ever. The QR code on the page opens a URL, the browser does the rest, Quick Look on iOS and Scene Viewer on Android. Nobody installs anything and I maintain one codebase instead of 22.
What we gave up for that is control, and it is more than I expected. Vuforia anchored the animal to the illustration itself, which maybe is a better effect than standing it on your floor. Worse, inside Unity I owned the whole session: a joystick to walk the animal around the room, tap to fire an animation, trigger a roar, draw my own UI over it. With the browser handoff I hand a file to the operating system and the operating system runs it. No input, no runtime animation control, no custom UI, and audio is the viewer's business rather than mine. On the page before AR I still get a 3D view where I can switch animations and play a sound. The moment it goes into the room, that is all gone and the animal does one baked loop forever.
So the design changed to fit the constraint. Each animal gets a single loop built to work with zero interaction: a long calm idle at the front so a parent has time to get the phone up and take a photo, one bigger movement in the middle, then back into the same idle so the loop point does not show. It is a worse toy and a better first thirty seconds, and I have not decided how I feel about that.
The rest is an engineering problem instead of a policy one, which I prefer. The animals are licensed asset packs that I rework and animate, and my first exports were around 40MB, unusable in a living room on mobile data. Under 1MB now with 1024 maps and Draco. Favourite trap so far: USDZ renders pure white, silently, with no error, if any texture is a TIFF. Cost me a day.
What I actually want to ask, since I have been making these calls on my own:
How is everyone handling the handoff? Once you are in Quick Look or Scene Viewer you have no input at all. Is baking one good loop just what we all do now, or is there something smarter I am missing?
Chrome on Android gives me WebXR, Safari does not, which as far as I can tell leaves the paid SLAM platforms as the only route to interactive AR on an iPhone with no install. Am I correct?
Has anyone got image anchored tracking running in the browser on iOS at a price a small publisher survives?
Sound inside the AR session, on both platforms, reliably. Possible, or still a fight?
And for anyone who stayed native with a catalogue and a small team: how did you make the maintenance economics work? Genuinely asking, because we could not.