explaingit

ankidroid/anki-android

11,128KotlinAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

The Android version of Anki, a free flashcard app that uses spaced repetition and the FSRS algorithm to help you memorize anything efficiently across text, images, and audio.

Mindmap

mindmap
  root((repo))
    What it does
      Flashcard studying
      Spaced repetition
      Progress tracking
    Tech stack
      Kotlin
      Android
    Features
      AnkiWeb sync
      10000 plus shared decks
      Audio and images
      Home screen widget
    Use cases
      Language learning
      Exam preparation
      Medical study
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build and study custom flashcard decks for language learning, exams, or professional certifications on Android.

USE CASE 2

Sync flashcard progress across Android, desktop, and other devices using the free AnkiWeb service.

USE CASE 3

Download one of 10,000+ pre-made community decks to instantly start studying any subject without creating cards.

USE CASE 4

Add vocabulary from a dictionary or other Android app directly to an Anki deck using the system share feature.

Tech stack

KotlinAndroid

Getting it running

Difficulty · easy Time to first run · 5min
Open source under GPL-3.0, you can use and modify it, but any version you distribute must also be open source under the same license.

In plain English

AnkiDroid is the Android version of Anki, a free flashcard application that uses spaced repetition to help you memorize information more efficiently. Spaced repetition is a study method where the app shows you cards at increasing intervals based on how well you remembered each one, so cards you find difficult appear more often and cards you know well appear less frequently. AnkiDroid uses a scheduling algorithm called FSRS, which is designed to predict the ideal time to review each card. Flashcard content can include text, images, audio, and math notation. Cards can be synced across devices through AnkiWeb, a free online service maintained by the Anki project. AnkiDroid also provides access to a library of more than 10,000 pre-made decks on various subjects that other users have shared. You can add new cards from within other Android apps by using a share feature, which is useful for adding vocabulary from a dictionary app. Other features include a night mode, a whiteboard for drawing on cards, text-to-speech for audio playback, progress statistics, and a home screen widget. The app is available for free on the Google Play Store, on F-Droid (an alternative Android app repository focused on open-source software), and via direct APK download. The project is community-maintained and has received contributions from hundreds of developers and over 1,400 translators, making it available in 99 languages. Financial support comes through Open Collective. The source code is released under the GPL-3.0 license, with portions of the back-end covered by the AGPL-3.0 license and the API library under LGPL-3.0.

Copy-paste prompts

Prompt 1
I want to use AnkiDroid to learn Spanish vocabulary. How do I create a card deck efficiently, and what front/back format works best for language learning?
Prompt 2
How does the FSRS scheduling algorithm in AnkiDroid decide when to show me each card? Explain the core idea in plain terms.
Prompt 3
I use Anki on my laptop and want the same decks on my Android phone. Walk me through setting up AnkiWeb sync between desktop Anki and AnkiDroid.
Prompt 4
I want to contribute a translation to AnkiDroid to add support for a new language. How do I find the translation files and submit my changes?
Open on GitHub → Explain another repo

← ankidroid on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.