Skip to main content

Core Features

Persistent Notifications

AnkiDroid Companion’s flagship feature is its persistent notification system that keeps your study deck accessible at all times.

Always Accessible

Notifications remain visible as long as there are cards to practice in your selected deck

Smart Dismissal

Automatically dismisses when you finish practicing the deck - no manual cleanup needed
How it works:
  • Select a deck from the AnkiDroid Companion app
  • Click the “Refresh” button to activate the notification
  • Practice cards directly from the notification shade
  • The notification persists until all cards are reviewed
You must enable notifications for AnkiDroid Companion in your Android system settings for this feature to work.
<!-- Required notification permission -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

Seamless AnkiDroid Integration

AnkiDroid Companion integrates directly with AnkiDroid without storing any data locally. Integration highlights:
Zero Data Storage: The app does not store any information regarding decks, cards, or reviews. Everything happens in your AnkiDroid app, ensuring data consistency and privacy.
  • Direct API integration with AnkiDroid through the official library:
// From build.gradle.kts
implementation("com.github.ankidroid:Anki-Android:v2.17alpha8")
  • Queries AnkiDroid for deck information in real-time
  • All progress and statistics sync with AnkiDroid automatically
  • Leverages AnkiDroid’s existing card scheduling algorithms

Background Study Reminders

Never miss a study session with intelligent background reminders. How it works:
  1. When you finish practicing a deck, AnkiDroid Companion monitors your study schedule
  2. After a configured interval (default: 8 hours), it checks if new cards are ready
  3. When cards are available, it sends a new notification to remind you to study
The study interval is currently hardcoded to 8 hours. A future update will add this as a configurable setting in the app.
Technical implementation:
// Background work scheduling
implementation("androidx.work:work-runtime:2.7.0")
The app uses Android WorkManager to schedule background checks, ensuring reliable reminders while being battery-efficient.

Simple Card Support

AnkiDroid Companion currently supports straightforward flashcards optimized for notification display. Supported card types:
  • Simple text-based cards
  • Cards with minimal formatting
  • Short questions and answers that fit in notification space
Current limitations:
Minimalistic Card Support: The app currently only supports simple cards with small texts that don’t include any HTML. Complex cards with images, audio, or extensive formatting are not yet supported.
If your use case involves complex card types, you can:
  • Continue using the main AnkiDroid app for those cards
  • Contribute to the project to implement support for your needs
  • Open an issue on GitHub for feature requests

Planned Features

Android Widgets

Future updates will extend the app’s functionality with Android widgets:

Home Screen Widget

Practice cards directly from your home screen with a dedicated widget

Lock Screen Widget

Quick access to flashcards from your lock screen for instant study sessions
These widgets will provide even more convenient access to your study material, allowing you to practice cards without even unlocking your device fully.

Technical Requirements

System Requirements

minSdk = 26  // Android 8.0 (Oreo) and above
targetSdk = 34  // Optimized for Android 14

Required Permissions

  1. Notification Permission (POST_NOTIFICATIONS)
    • Required to display persistent notifications
    • Must be granted during initial setup
  2. AnkiDroid Access
    • The app queries AnkiDroid to access deck information
    • AnkiDroid must be installed on the device

Dependencies

UI Framework:
  • Built with Jetpack Compose for modern, native Android UI
  • Material 3 design components for consistent Android experience
Core Libraries:
  • Kotlin for concise, safe code
  • AndroidX libraries for backward compatibility
  • WorkManager for reliable background scheduling

Known Limitations

AnkiDroid Companion is actively developed and welcomes contributions to address these limitations.

Card Skipping

Currently, there is no way to skip a card from the notification interface. If you need to skip a card, you must open AnkiDroid directly.

Study Interval Configuration

The 8-hour interval between study reminder checks is currently hardcoded. Future updates will add this as a configurable setting.

Embedded Strings

Many UI strings are embedded in the code rather than in resource files. This will be addressed in future refactoring to support internationalization.
Want to contribute? Check out the GitHub repository to report issues, request features, or submit pull requests.

Build docs developers (and LLMs) love