Ceymer Studios
UX case study · Capstone of my Google UX Design Certificate

A tech tutor that older adults actually trust.

ADIN teaches older adults how to use their devices — inside a safe practice phone where nothing can break. I started it the same month I enrolled in the Google UX Design Professional Certificate, and shipped v38 the month I finished. This is the story of applying formal UX methodology to a real product — and then carrying it onto a second platform.

RoleSole designer & developer
TimelineApr 2025 — Jul 2026
PlatformiOS & Android
StatusLive · App Store & Play
App Store ↗ ▶ Google Play ↗
ADIN's practice-phone home screen, shipped
01 / Overview

A device that teaches, instead of one more thing to be afraid of.

Older adults are routinely handed technology that assumes they already know how to use it. The result is a quiet kind of exclusion — capable people made to feel incapable by interfaces designed for someone else.

ADIN is a tech-literacy tutor for older adults. Instead of explaining a phone with words, it lets people practice on a simulated phone built into the app — a safe sandbox where tapping the wrong thing has no consequences. A friendly animated helper, ADIN, guides each step. Today it ships 41 tutorials across 10 categories in 7 languages, plus "Ask ADIN," which generates a custom tutorial on the spot — now live on both the App Store and Google Play.

41
Tutorials
10
Categories
7
Languages
2
App stores
02 / Background

A self-taught developer, formalizing the design half.

My path into design didn't start in a classroom. I'd been building Android apps for a while as a self-taught developer, and the further I got, the more it became clear that shipping something that works is only half the job — the other half is whether anyone can actually use it. So in early 2025 I enrolled in the Google UX Design Professional Certificate to learn that half properly.

A few weeks in, I started ADIN — deliberately picking a hard audience (older adults, the people most often left behind by software) so the coursework had a real product to test against. Every module fed back into the app: empathy mapping shaped the welcome flow, accessibility principles shaped the icon system, usability testing methodology shaped the two user studies, and iteration discipline shaped the version count.

Started the cert in February 2025. Started ADIN in April. Shipped v38 and completed the certificate in May 2026. ADIN is the proof of work.

03 / The problem

People reached the main screen — and froze.

Early on, ADIN opened straight into its main screen. The intent was to get people into the tutorials quickly. The effect was the opposite: older adults arrived with no idea what the app was for or where to go. Nothing told them why they were there or what to do first, and a blank moment of confusion is exactly the moment this audience tends to put the phone down.

The app never explained itself. It asked people who were already unsure of technology to figure out a new interface with no guide — the precise experience ADIN exists to prevent. That was the core design failure to solve: not a missing feature, but a missing moment of orientation at the very start.

04 / Research & foundations

Studying the interfaces people already half-know.

The cert curriculum was clear on this point: research before design, every time. Before sketching anything new, I studied the everyday Android screens older adults already encounter — the dialer, the messages list, the camera, the browser. The goal wasn't to redesign these screens but to understand the patterns people are already trying to learn, so the practice environment could mirror real devices closely enough to transfer.

Hand-drawn research sketch of a phone dialer with keypad and call controls
Dialer. Keypad with letter groupings, call / video / message controls.
Hand-drawn research sketch of a messages list with an unread count
Messages. Conversation list, unread count, compose button.
Hand-drawn research sketch of a camera screen with Pano, Photo, Video modes
Camera. Pano / Photo / Video modes, shutter, and gallery.
Hand-drawn research sketch of a web browser home screen
Browser. URL bar, home, and a feed of results.

A consistent icon language

I drew a unified set of circular icons so every app inside the practice phone reads the same way — high-contrast, rounded, and large enough for aging eyes and less precise taps.

Hand-drawn phone icon
Phone
Hand-drawn messages icon
Messages
Hand-drawn camera icon
Camera
Hand-drawn browser icon
Browser
05 / Interaction design

Designing how the helper physically guides a hand.

The hardest part of teaching gestures is that gestures are invisible. I worked through how ADIN should occupy the screen, where the interaction area sits, and how the character demonstrates a swipe or a tap without getting in the way. I mapped two navigation models — gesture-based and three-button — so tutorials could adapt to whatever device a person owns.

Interaction design diagram for gesture navigation
Gesture navigation. Interaction area, directional swipes, and a return-to-home affordance.
Interaction design diagram for three-button navigation
Button navigation. The same area mapped to the classic back / home / recents bar.
Diagram of the helper's swipe posture, annotated to flip and rotate
Swipe posture. One drawn pose, reused — flip horizontally for up/left, rotate for down/right.
Diagram marking the helper's arm movement range
Arm-movement range. Defining where the character can gesture without blocking content.

A small systems decision that paid off

Rather than draw a separate helper pose for every direction, I designed one posture and reused it — flipped and rotated to cover up, down, left, and right. It's a minor call, but it's the kind of constraint-driven thinking that keeps an indie product maintainable: fewer assets, consistent character, faster iteration.

06 / Designing ADIN, the helper

From a generic chat blob to a character people warm to.

A guide for a wary audience has to feel friendly, calm, and never condescending. The first pass was a generic glossy chat-bubble figure — fine, but cold. I iterated by hand toward a warmer, simpler character with clear, readable expressions, and even storyboarded functional states like a "thinking" pose where the eyes track to double as a loading indicator.

Early glossy blue chat-style mascot, the starting point
01 · Starting point
Hand-drawn black and white line concept of ADIN
02 · Line concept
A warmer, expressive iteration of the ADIN character mid-gesture
03 · Expressive iteration
Final friendly, calm ADIN character
04 · Final character

Naming & identity

The brand direction moved alongside the character. Early naming explored "SAGE," which evolved into ADIN — and I worked the wordmark by hand, testing overlapping-circle letterforms and a cleaner monogram before settling on the final identity.

Hand-drawn wordmark and logo exploration for ADIN
Wordmark exploration. Letterform studies on the way to the ADIN identity.
07 / The solution

A welcome that orients — and a helper that notices when you're stuck.

The fix had two parts, both aimed at that first fragile moment:

01

A welcome tutorial

Before the main screen, ADIN now explains what the app is, why it exists, and how to use it — so no one lands on a blank interface guessing. Orientation comes first, features second.

02

Inactivity prompts

When someone pauses too long, the helper steps in with a gentle nudge toward the next action — catching hesitation exactly where it happens instead of leaving people stranded.

03

Repositioned as a "personal tech tutor"

The framing shifted from "an app" to a patient tutor sitting beside you — which set the right expectation for the guided, low-pressure experience inside.

Annotated wireframe of the ADIN home screen with weather, search, and helper
The wireframe. The practice phone — weather widget, search, and ADIN asking "What device can I help you with today?"
The built version of the ADIN home screen closely matching the wireframe
The shipped screen. The same layout, realized — a familiar home screen people can safely explore.
08 / Testing & outcome

Two studies, real users, measurable change.

I ran two rounds of usability testing with older-adult participants, using the first to surface the orientation problem and the second to validate the redesign. The second study — conducted after the welcome tutorial and inactivity prompts shipped — showed the change working: participants retained more of what they learned and navigated their devices more confidently than before the redesign. The orientation problem was no longer stopping them at the door.

Just as important, the studies changed how ADIN communicates: clearer language, a calmer pace, and prompts that arrive when they're needed. ADIN has since iterated to version 38, each release shaped by what real users actually did — not what I assumed they would.

What I'd take to the next one

The biggest lesson: for this audience, the first ten seconds are the whole product. A feature no one reaches doesn't exist. Next, I want to grow the test group beyond four participants and instrument in-app behavior so qualitative findings can be backed by usage data.

Closing the loop

I came into the certificate as a developer who knew his interfaces weren't as good as his code. I came out with a shipped, user-tested product and a framework for knowing why any screen does or doesn't work. The certificate was the beginning of the story, not the end — the two sections that follow are what happened after graduation.

09 / Onto a second platform

The same helper, now on iPhone.

ADIN started as an Android app. In 2026 I ported it to iOS and shipped it to the App Store — my first time on a Mac, in Xcode, or through Apple's review process. Because ADIN is a Capacitor-wrapped web app, the design, the practice phone, the character, and the whole research-driven interaction model carried straight over. The screens below are running on iPhone.

ADIN welcome screen on iPhone
Welcome. The guided orientation that solved the "froze at the main screen" problem — now on iOS.
ADIN main menu on iPhone
Main menu. Tutorials, Ask ADIN, the practice sandbox, and Ad Academy in one place.
ADIN tutorials list on iPhone
Tutorials. Step-by-step lessons grouped by category.
ADIN practice phone sandbox on iPhone
Practice phone. The safe sandbox where tapping the wrong thing has no consequences.
ADIN Ad Academy on iPhone
Ad Academy. Teaching people to spot deceptive ads and sneaky redirects safely.
10 / Shipping it

What it actually took to get onto the App Store.

A UX case study usually stops at "and then it shipped." This is the part that doesn't make the portfolio: the native configuration, the backend hardening, and three App Store rejection cycles it took to turn a working Android app into an approved iOS one. I keep it here because knowing how something ships is as much a part of the craft as knowing how it's designed.

Infra

Moving the AI off the client

On Android, Gemini calls originally ran client-side. Before the iOS port I moved them to a server-side Cloud Run backend (adin-server) with the API key locked in Secret Manager — so no key ships inside the app, on either platform.

Infra

App Check across three surfaces

Added Firebase App Check so only genuine app instances can reach the backend: reCAPTCHA v3 on web, Play Integrity on Android, and DeviceCheck on iOS, with the backend verifying every token via firebase-admin. The correct Play Integrity SHA-256 came from Google Play Console's App Signing page — not the local keystore.

Infra

Capacitor 6 → 8, then the native config

Upgraded Capacitor from v6 to v8 (Kotlin 2.1.0, Java 21, minSdk 24), then did the iOS-only work: CocoaPods setup, every required Info.plist privacy permission (camera, photo library, microphone, speech recognition), AdMob iOS initialization, and Firebase / App Check wiring in AppDelegate.

Rejection 1

Android references in an iOS build

Apple flagged Android-specific references. Resolved with updated screenshots and a measured push-back — dropped by the next review round.

Rejection 2

Broken Support URL

The Support URL in App Store Connect was returning an error. Fixed by pointing it at a real, publicly reachable anchor: ceymer-studios.com/#contact.

Rejection 3

First-launch AI consent

The real one. Apple wanted an in-app prompt before the first AI query — not just a privacy policy link. Added a one-time consent dialog that explains, in plain language for older adults, exactly what gets sent to Google Gemini and that no personal information is collected. It blocks the first request until the user agrees, and never appears again.

Why this is here

The iOS port broke the Mac and Xcode seal for the whole studio — the same Capacitor + App Check + App Store pattern went on to carry my other apps onto iOS. ADIN was the one I learned it on. That's the part I'm bringing to whatever I build next.