Back to Portfolio

Math Drill: Mental Math

Two-minute mental math drills whose level follows how fast and how accurately you answer — no account, nothing to buy, and it keeps working in airplane mode.

Free · No account · Works offline

AndroidKotlinJetpack ComposeDataStoreAdMob
Math Drill home screen with a 7-day streak, three drill choices, a weakest-operation card for division and the recent drills list

Problem

Mental arithmetic goes blunt without practice, and the drill apps that exist answer that badly: a subscription before the first question, game gimmicks covering the drill, or a static worksheet that never adjusts its difficulty. What was needed is plainer — open it, start answering, and see the results from one day to the next.

Solution

Built a drill app whose questions are generated on the device when they are needed, answered in short sessions on its own number keypad, with a level that rises when answers are fast and right and eases off when they are not. Three drills — Basic, General and a 90-second Test — stand in for three products for three audiences. One constraint shaped the rest: no feature may need a server, so drills, progress and the streak all live on the phone.

One session, start to review

Pick a drill, answer twenty questions, see the result per operation, then go over the mistakes — all from a real seven-day practice history.

Swipe to see more screens →

A drill, not a game

Everything on screen serves one thing: two minutes of mental math you can repeat tomorrow.

🔥

Streak and combo

A daily streak counts the days in a row, and a combo badge climbs with every right answer in a row.

📈

Adaptive level

The number range rises when answers are fast and right and drops when they are not — the same answers always give the same level.

🎯

Three drills

Basic for addition and subtraction with no negative results, General for all four operations, Test for 90 seconds of mixed questions.

🔍

Review mistakes

Every wrong question shows the answer you typed next to the correct one.

➗

Weakest operation

Once there is enough data, Home points at the operation with the lowest accuracy and starts a drill on just that one.

⏰

Daily reminder

A notification at the time you pick, scheduled by the device itself; declining the permission only turns the reminder off.

The numbers behind it

Taken from the PRD and the app's code.

Operations

4+ − × ÷

Whole-number questions, generated on the device when needed rather than bundled.

Levels

10per drill

General and Test climb to level 10; Basic deliberately stops at level 3.

Session

20questions / 90 s

Twenty questions for Basic and General, 90 seconds for Test.

JVM tests

37tests

The question generator, the adaptive level and the progress maths are tested without an emulator.

What leaves the device, and what doesn't

Your practice results are never part of it.

  • No account, no sign-in, nothing to buy. No product is sold; the only break from ads comes from an optional rewarded video.
  • Questions are made and checked on the device. Answers, scores, the streak and the session history are stored on the phone only.
  • The connection is used for one thing: loading ads. Drills, results and progress run in airplane mode.
  • A reminder without a server. Scheduled by Android on the device; there is no push service and no device token.
  • No analytics SDK or crash reporter. The release build runs on empty implementations; there is no Firebase and no third-party tracker.
  • Ads through Google AdMob. As a third party, AdMob accesses the device's Advertising ID.
Read the full privacy policy →

Before you look for it on the Play Store

The app is not on Google Play yet. The listing and its assets are ready, but the release has not been sent — which is why this page has no download button.

The app is not aimed at children. The Basic drill suits small numbers, but Math Drill is not enrolled in Google Play's Families programme.

Math Drill is the fourth app in my apps factory, and the first one built entirely from core modules that already existed — no new module, and no core module changed for it. Its number keypad is written locally even though Convrt has a similar one; promoting it to a shared module now would mean a small change in one app could break another.

The decision that shaped it most was turning down three products for three audiences. Children, adults and test takers each want something different — family-safe ad policies, general practice, and questions shaped like a particular test. What I chose instead is one mental-math core with three drills, at a known price: the app cannot claim to be for children, and the Test drill imitates no particular exam.

The app’s privacy policy lives on its own page.