Back to the blog Release

AiWords 3.1: a rebuilt profile, a clearer paywall, and the Android package move

· Safafish

Also in: English · 中文 · 日本語 · Español · Français · 한국어 · Українська

AiWords 3.1 is the update currently rolling out. Three things define it: the Profile screen rebuilt around your learning statistics, a subscription paywall rebuilt so it actually shows what each plan contains, and an Android-side move to the package name the app will ship under on Google Play. This is the full account of what changed and why.

A Profile built around your numbers

Until now, the Profile tab was mostly a settings list with statistics living one screen deeper. In 3.1 the tab is remade from four new pieces: a learning stats card summarising your daily numbers at a glance, stat tiles for the figures you check most, a trend line chart of your recent activity, and study settings surfaced directly in the profile instead of behind navigation. If you study every day, the profile now answers the question you actually open it for — “how am I doing?” — before anything else.

One change you will notice immediately: the default interface style. Since the April theme rework, AiWords has offered three looks — Doodle (bold borders, hard shadows, playful), Professional (thin borders, soft shadows, clean), and Flat & Elegant (minimal borders, no shadows). 3.1 switches the default from Doodle to Professional. Doodle stays fully available in Appearance settings; we simply think the quieter look is the better first impression for a study app. Your own choice is never overridden.

The paywall, redone

The subscription screen had an embarrassing defect, and 3.1 exists partly to fix it. The app expected each plan's feature list to be a list of strings, while the server sends structured quota objects; it looked for fields called is_popular and interval while the server sends popular and period. The result: the selling points under each plan never rendered, and the “most popular” badge never appeared. Nobody was being upsold by accident — the screen simply wasn't showing what it was meant to.

The rebuilt paywall reads the server's real structure, and gives the three tiers — Starter, Pro, and Max — a visual ranking. The price is now the largest element on each card, each tier gets a colour bar and a solid icon block, and the badged tier is outlined and lifted above its neighbours. Max displays a “best value” badge from a field the server always sent and the app never read. A smaller fix worth mentioning: the popular badge and the “current plan” badge used to occupy the same corner of a card and could overlap; they are now mutually exclusive.

One genuinely new capability: when voice stories are in a free promotional window, the plan data carries the end date, and the subscription screen shows a “voice free” note next to the Storycast selling points with that date printed as the server sends it. No client-side timezone guessing.

Because pricing logic has no business living inside view code, the plan-feature and voice-free logic was extracted into pure functions with fifteen unit tests, and every string on the screen was completed in all eight interface languages.

Storycast grows a course structure

Storycast sessions now read more like lessons. Each story is divided into phases — demonstration, explanation, practice — with visible dividers between them, and sessions open with warm-up teaching cards that introduce the words, phrases and grammar points you are about to meet before the conversation starts. The goal is the same as always: vocabulary that shows up in the story has already been met once, so the conversation practices it instead of ambushing you with it.

Android: a new package name

The Android app moves from its development-era package name (com.aeieli.easywordsrne) to com.safafish.aiwords — the identity it will carry when it ships on Google Play. The iOS bundle identifier is unchanged, so nothing moves for iPhone and iPad users. For Android testers, the practical consequence is that the app installs under a new identity; your study data lives on your account, not in the package, so signing in carries everything over.

Questions about the update, or something behaving differently than described here? The support page is the fastest way to reach us — and if you want the mechanics of the daily review queue rather than release news, see how AiWords decides what you review.