Joshi: Japanese Particles
Drills for は, が, に, で
Only for iPhone
Free · In‑App Purchases · Designed for iPhone. Not verified for macOS.
Knowing what に means is not the same as knowing when it is で. Nine hundred sentences,
one blank, four particles — until the right one arrives on its own.
Joshi drills Japanese particles until the right one stops being a decision.
You can know that に marks a destination and で marks where an action happens, and still
hesitate every time. Understanding a rule and reaching for it without thinking are two
different skills, and only the second one gets you through a sentence.
HOW IT WORKS
A natural Japanese sentence with one particle missing. Four options. Tap one.
学校_勉強します。 に で を へ
Then, immediately: the sentence with the particle in place, what that particle is doing
there, and — if you picked a particle people genuinely confuse it with — why that one
does not fit here.
WHAT YOU PRACTICE
Twelve particles across thirty-eight distinct uses. は, が and を and the roles they play in
a sentence. に and で and the line between where something is and where something happens.
へ, と, も, の, から, まで and や. Then the same particles doing less obvious work: を with
a route you walk along, を with a place you leave, に with the purpose of going somewhere,
で with a cause, と closing a quotation, の turning a whole clause into a noun.
THE PART THAT IS DIFFERENT
Most apps can tell you that に is at 61%. That number does not tell you what to do.
Joshi tracks confusion pairs — two uses that get mistaken for each other — as a thing in
their own right. So instead of "practice more に", it can say に ↔ で needs work, and then
serve you the sentences where one is right and the other is tempting. Weak pairs are their
own practice mode.
WHY THE WRONG ANSWERS ARE FAIR
A wrong option has to be genuinely wrong in that sentence. A particle that would produce
correct Japanese with a different meaning is not a distractor — it is a second answer, and
a question with two answers teaches you something untrue. That rule cost this app a
confusion pair and a number of otherwise good sentences, and it is the reason you can
trust the red cross when you see one.
READINGS AND HINTS
Furigana over the kanji, so an unfamiliar word never turns a particle question into a
vocabulary question. The English translation sits hidden behind a tap by default, because
with it visible you match the particle to the English and practice something else without
noticing. Both are settings: never, always, or on tap.
Every sentence can also be heard. A speaker button reads it in Japanese, using the reading
the catalog knows rather than a guess at the kanji. No network needed.
PROGRESS THAT MEANS SOMETHING
Mastery is capped by how much evidence there is, so three lucky taps do not read as
mastered. Five levels, twelve particles and thirteen confusion pairs each get their own
bar. Nothing here counts questions answered.
No coins, no gems, no energy, no streak you can lose by taking a day off.
FREE AND PAID
Levels 1 and 2 are free in full — は, が, を, に, で and へ, which is most of the particles
in an ordinary sentence. One purchase, once, opens levels 3 to 5, weak-pair practice and
the whole question pool. No subscription.
PRIVACY
No account. No adverts. No analytics. No network requests at all beyond the purchase
itself. Everything you do stays on your device, and you can export it whenever you like.
more The reminder comes back every day, and so does the number on the icon
Only one reminder was ever waiting in the queue. It went off in the evening, put the number on the app icon — and after that there was nothing left to go off, so the next day brought neither a reminder nor a number. Reaching the goal made it worse: clearing the queue for today cleared tomorrow along with it, so a day of practice switched the reminders off until you next opened the app. A week of them stands in the queue now, one for each day, each carrying the count that will be true that evening.
The session bar is full on the last question
The bar counted the questions you had closed, not the one in front of you: it stood empty while you answered the first question and stopped a step short at the last, showing six of seven with the seventh on screen. It counts the question you are looking at now, so the first one starts it and the last one fills it.
VoiceOver says what a role row will do
Level rows and the sister-app cards learned this in the last release; the rows that matter most did not. A role on a level, a role in the particle list, a weak role and a weak pair each read their name and their percentage in one breath and stopped there — so a row that starts a session sounded exactly like a row that reports a number. Every one of them says now where a tap leads.
Reduce Motion turns the animations off
Readings appearing above kanji, a translation sliding into place and a section folding away all moved regardless of what the system had been asked for. Reduce Motion in accessibility settings now stops all four: everything still opens and closes, it simply stops moving.
Two first-level sentences used grammar from three levels up
Both asked about が, and both did it with ~てくれる, the giving-and-receiving form this app introduces much later. One of them read “the person next door helped me”, where the “me” came from a word a beginner has no way to find in the Japanese sentence. Both sentences say the same thing now without that form, and the particle being asked about is the same as before.
1.1.5 1d ago
The same question does not come back the same day
One session never repeated a question, but the next one knew nothing about the last: three sessions in an evening drew three times from the same pool, and the same sentence could come up in all three. Sessions now remember what the day already asked and put those questions at the back of the queue. They come back only when nothing unseen is left, so a long day of practice still gets full-length sessions — it just stops asking twice.
The role introduction no longer gives away the next question
Meeting a role for the first time opens with three of its sentences shown complete, particle in place. The question right after drew from the whole role, so it often asked one of those three — four times out of five for the smallest role, one in three for the largest. That measures what you read a minute ago, not whether you know the role. Those three sentences go to the back of the queue now. They still come back, they are good sentences — just not first.
Pronunciation plays with the ringer switch off, and no longer cuts your music
Tapping the speaker on a muted phone played nothing at all, and there was no way to tell that the switch on the side of the phone was the reason. It plays now. The other half of the same fix: the first tap used to silence whatever was playing in the background and never brought it back.
One question marked correct Japanese as wrong
In 「この階でエレベーター_降ります」 the variant で was offered as a wrong answer, but エレベーターで降ります is ordinary Japanese for going down by elevator — so anyone who picked it got a red mark for a correct sentence. That variant is gone. The catalog rule it broke is the one this app rests on: a particle that makes a correct sentence with a different meaning is not a wrong answer, it is a second one.
が: one role, and it now says out loud that it covers two things
The role held two different kinds of sentence — someone alive doing something (犬が走る, the dog runs) and something simply happening on its own (雨が降る, it is raining) — and its old name, “who does it, or what it happens to”, described the second kind as something being done to. Rain falling, flowers blooming and a meeting starting are not things anything is done to. The role is called “who acts, or what just happens” now, and its explanation shows both kinds side by side.
A role description pointed at a role two levels away
The explanation of が ended with “inside a clause that describes a noun が is needed too — that has its own role here, right after this one”. It does not stand right after: it sits two levels further on, at the connections level. A beginner on the first level looked for it and did not find it. The sentence says where that role actually is now.
VoiceOver says what a row will do, not only what it says
Rows merged into one element read their name, their percentage and their lock in one breath and stopped there — the lock is a shape, and read aloud it did not say that a tap opens the purchase options. Level rows and the sister-app cards in Settings say where a tap leads now.
1.1.4 2d ago
が inside a description has its own role now
One role was teaching three different things at once. Ten of its twenty-five sentences had
が inside a clause that describes a noun — 田中さんが作った料理 — and that is not a shade of
the same thing: は cannot stand there at all, and putting it there does not change the tone,
it breaks the sentence. Those ten now have their own role, at the connections level.
The study day starts at the hour you picked — on every day of the year
On the night the clocks change, the boundary moved from four in the morning to five.
One day a year, quietly.
1.1.3 3d ago
Kanji are drawn in a Japanese face again
Nothing in the text said which language it was, so the system chose the font for
kanji from the languages set on the phone — with English or Polish on top it
reached for a Chinese face, where a number of characters are shaped differently.
An app that teaches Japanese was showing a character other than the one it
teaches, and that kind of mistake is invisible unless the right shape stands next
to it. Every Japanese line says what it is now, and the reading printed above it
stopped running out of room at the largest text sizes.
The session bar moves when you answer
There were two bars in a session and which one you saw depended on your text
size. At the usual sizes it was the one in the title, a hundred and forty points
wide — a session of twenty-five questions moved it by five and a half points an
answer, which is a bar that looks the same after an answer as before it. One bar
stands now, under the navigation bar, across the full width, at every text size.
The answers stand out in the light theme
In the light theme the card holding the answers was white on white, and the only
thing telling it apart from the screen behind it was a hairline outline. It
stands on a gray ground now — the same one the rest of the app uses — and the
outline stays. The dark theme never had the problem.
A number on the icon says how much is left today
The reminder now also puts a number on the app icon: the same one it says
itself, and the same one the button on the home screen shows — how many
questions are left to today's goal. It goes when you reach the goal, and nothing
appears at all while your streak is paused. One thing has to be said out loud:
if you allowed notifications before this release, iOS never asked you about
badges and will not ask again, so the number stays away until you turn it on.
Settings says so now, and takes you there.
The introduction comes back if you swipe it away
The sheet explaining how the app works is shown once in a lifetime — to someone
who has not answered anything yet — and it counted itself as read the moment it
appeared, before anyone could read a line of it. Swiping it away in the first
second closed it for good. It counts as read when it closes now, whichever way
you close it.
The purchase screen reads like the rest of the app
Restoring a purchase, the privacy policy and the terms stood there as bare text,
while the same three rows in Settings have carried icons since the first
release. They carry the same three now. The buy button also says what it is to a
screen reader while a purchase is going through — until now it read there as
just a button.
The app asks what you make of it — once, and after a session
The rating prompt was written for the first release and never once called: the
only way to it was a button in Settings. It comes up on its own now, after a
finished session and never in the middle of a question, and only once you have
practiced enough for the question to be a fair one. A session you answered
nothing in does not count towards it.
1.1.2 5d ago
Role names say what the role is, not what to call it
Three roles carried a grammar term as their name — topic, subject, direct object.
The name stands on the progress bar and in the feedback, where nobody looks
anything up, so it now describes what the role does; the term stays, once, in the
paragraph that explains it. Eight particle footers stopped repeating the line
they stand under, and say what the particle covers as a whole — including the
roles you have not opened yet.
The wording read again, in both languages
The app spelled the same word two ways on one screen and the next, and the
sentences in the catalog did it too. English keeps one spelling now — the American
one — and Polish keeps one way of addressing you. It is not a matter of taste: two
forms of the same word on one screen read as a mistake, and a mistake in an app
that teaches, teaches.
Long role names no longer break off at large text sizes
At the accessibility text sizes a role name ended in an ellipsis instead of
wrapping to a second line — forty-one places across the catalog screens, counted
from screenshots rather than by eye. A name that breaks off does not say what the
role is, and it broke off for the people who need those screens most. It wraps
now, and the percentage beside it stays where it was.
Catalog search finds Polish names typed without the accents
Searching the particle catalog compared what you typed letter for letter, so
"material" did not find "materiał" and the list simply came back empty.
Thirty-five of the fifty Polish role names and descriptions carry an accent, so
most of the catalog could be reached only from a Polish keyboard. Either spelling
finds it now.
Restoring a purchase says that it is working
The row dimmed while it worked, and the reason why stood beside it in a sentence
longer than the line it had. The sentence is gone; a spinner stands there instead
— on the purchase row and on the restore row, because the two dim together.
A report names all four things it carries
Writing in named two of them and left out the other two, while the promise that
you can delete them before sending covered all four. It names all four now — the
app version, the build, the system version and the device model — so what you
delete is what you were told about.
1.1.1 Sep 2
Practising your weak spots is no longer paid
Aiming a session at the roles you get wrong was behind the purchase, and that was the
wrong line to draw: knowing where you are weak is worth nothing if you cannot act on it.
It is open to everyone now. What the purchase buys stays what it always bought — the
levels.
"Mastered" finally means something you can check
The word appeared on three screens and was worked out differently on each. It has one
definition now — eighty per cent on every skill of that role, not an average — and the
colour scale, the weak-spot list and the progress row all read from it. Some roles will
move a notch; the number changed because the rule did, not because the answers did.
"I already know this" silences a role
A role you know from elsewhere no longer has to be earned question by question. Marking
it writes in full mastery and takes it out of the queue — as a declaration, which is
what it is, so nothing pretends it was practised.
A role you have not seen in a long time comes back on its own
Choosing questions by weakness alone had a blind spot: something answered correctly
months ago sits at the top of the scale and never comes up again. Time counts too now,
so a role that has been quiet for long enough returns before you notice it slipping.
The buttons count from the material, not from your setting
The start buttons printed the number from Settings, whatever the catalogue could
actually give. Each one asks the pool first now, so the number on the button is the
number of questions you will get — and when it comes out lower than you asked for, a
triangle beside it says which reason is behind it.
New roles arrive three at a time
A session could open with a run of unfamiliar roles one after another, which is the
fastest way to make a good session feel like a bad one. New material now enters in
threes, and the rest of the session builds on what you have already seen.
Answer time no longer scores you without saying so
How fast you answered was quietly part of the score, and nothing on the screen said it.
It is announced now, and the threshold is stated: under eight seconds counts as fast —
eight, not the usual five, because these questions put a whole sentence in front of you
before the answer.
Statistics say which period they are showing
The screen referred to "the switch above", and what stands above is a period selector,
not a switch — the switches are in Settings. It names the period now, and spells out
what "mastered" means in the same place, so the definition and the number sit together.
1.1.0 Aug 30
See how it has been going
A new Statistics screen under Progress shows the last 7, 30 or 90 days: accuracy
day by day, how much you answered, how your mastery moved, and which roles and
confusable pairs you get wrong most often. All of it is worked out from answers
already on your phone — nothing new is collected and nothing leaves the device.
Hear any sentence
A speaker button next to the answer and next to every example on a role screen
reads the sentence in Japanese. It uses the reading the catalogue knows, not
a guess at the kanji, and works with no network. If your device has no Japanese
voice installed, the button is simply not there.
A reminder in the evening
Settings can now send you one notification at an hour you choose, and only on
a day you have not finished — it says how many questions are left, the same
number the home screen shows. Nothing arrives on a day you finished, and nothing
at all while your streak is paused.
How it works, in the app
A new page in Settings explains what the bars measure, why the app is organised
by role rather than by particle, and what each switch does. New installs see the
first few topics on the first launch.
Sessions can skip what you already know
Every role now has two switches: “I already know this” and “Set aside”. Both stop
the role coming up in sessions the app picks for you, while choosing it yourself
still works — nothing disappears. “Set aside” also takes the role out of the
level total, and the level says how many roles it is counting. “I already know
this” counts as done when levels unlock, but leaves your mastery bar alone: that
one is earned, not granted.
Getting on something is its own role
バスに乗る was filed under destinations, where the explanation talks about
arriving somewhere — which says nothing about why it is not バスで. Boarding
a vehicle is now a role of its own, with its own explanation of why で does not
fit.
Start one role over, not everything
A role screen and a level screen can now clear just their own progress. Answers
about that material leave your history and every bar they counted towards is
worked out again, so the numbers stay honest. Your notes, stars and switches are
left alone.
Your own notes on any role
You can write in your own words what trips you up on a role, and star the ones
you want to find again. Notes travel with your progress backup, so they survive
a move to a new phone.
Where two particles both work
Some sentences take either particle and mean different things, so the app has
never asked about them — quietly. A role screen now says it out loud, showing
the sentence with the gap and what it means each way. Saying nothing about
a boundary teaches just as much as saying something, only what it teaches is
not true.
Close to a hundred sentences read again
The whole catalogue went through three lenses: whether a native would write it
that way, whether the translation says what the sentence says, and whether
exactly one particle fits. Sentences where two answers worked have been replaced.
You can see when a sister app has reviews waiting
The family row in “Your Japanese” shows an orange mark when there is something to
review over there.
1.0.3 Aug 27
You can see which level you are on
Sessions from the home screen have always drawn on the level you are working
through, and the app never said which one that was. It says so now, and the
Levels tab marks it.
A break no longer costs you your streak
Going away? Pause your streak in Settings and days without practice stop breaking
it. While it is paused the home screen says so, so a streak on hold never looks
like one you earned.
Today and yesterday, by name
Recent sessions from the last two days are labelled instead of dated — counted by
your study day, so a session at half past midnight still belongs to the evening
before.
The day starts at the hour you set
Twice a year, on the days the clocks change, the study day began an hour early or
an hour late. Your daily count and the limit on new roles now start at the hour
you chose, on those two days as well.
1.0.2 Aug 26
Which way you mix a pair up
A weak pair used to say that you confuse に with で. It now says which way round:
whether you put に where で belongs, or the other way about. When the two are even
it says nothing, because then there is nothing to say.
Japanese read in Japanese
On the progress bars VoiceOver read particles with the interface voice, which came
out as noise. It now reads them in Japanese, by their reading — は as "wa", not "ha".
Messages you can read
A backup that will not load says why, in the language of the app, instead of showing
the raw error. The purchase screen has also stopped speaking the language of the
system rather than the one you chose.
Larger type
The "What's new" sheet and the accent colour swatches only laid out correctly at the
default type size.
The day turns over on its own
Left open overnight, the app kept yesterday's daily counter until you quit it
entirely. It now turns over by itself, at the hour you set.
Interrupted sessions still count
A session you were in the middle of when the app was closed no longer disappears
from today's count or from your streak.
Weak pairs in one session
The three pairs you confuse most now have their own entry under Weak spots — one
session drawn from all three, instead of a row for each. The mode is part of the
full version.
Your Japanese, in one place
A new section on the Today screen shows grammar, conjugation and particles side by
side, each with its weakest spot and a tick where the daily goal is already done.
Rows for the family's other apps appear on their own once they are on the same
device — no account, no sign-in, no network.
Why not the one you picked
After a mistake the app used to say why the right answer is right. It now also says
why the one you picked does not fit this sentence — for every wrong option, not only
for the pairs people confuse most.
Questions put right
Writing those explanations turned up questions with two right answers, and ten with
none at all. Their sentences and options have been replaced.
1.0.1 Aug 25
The reminder comes back every day, and so does the number on the icon
Only one reminder was ever waiting in the queue. It went off in the evening, put the number on the app icon — and after that there was nothing left to go off, so the next day brought neither a reminder nor a number. Reaching the goal made it worse: clearing the queue for today cleared tomorrow along with it, so a day of practice switched the reminders off until you next opened the app. A week of them stands in the queue now, one for each day, each carrying the count that will be true that evening.
The session bar is full on the last question
The bar counted the questions you had closed, not the one in front of you: it stood empty while you answered the first question and stopped a step short at the last, showing six of seven with the seventh on screen. It counts the question you are looking at now, so the first one starts it and the last one fills it.
VoiceOver says what a role row will do
Level rows and the sister-app cards learned this in the last release; the rows that matter most did not. A role on a level, a role in the particle list, a weak role and a weak pair each read their name and their percentage in one breath and stopped there — so a row that starts a session sounded exactly like a row that reports a number. Every one of them says now where a tap leads.
Reduce Motion turns the animations off
Readings appearing above kanji, a translation sliding into place and a section folding away all moved regardless of what the system had been asked for. Reduce Motion in accessibility settings now stops all four: everything still opens and closes, it simply stops moving.
Two first-level sentences used grammar from three levels up
Both asked about が, and both did it with ~てくれる, the giving-and-receiving form this app introduces much later. One of them read “the person next door helped me”, where the “me” came from a word a beginner has no way to find in the Japanese sentence. Both sentences say the same thing now without that form, and the particle being asked about is the same as before.
more Version 1.1.5 1d ago
Data Not Collected The developer does not collect any data from this app.