Caution
π¨ Free and Open-Source Android is under threat!
Google will turn Android into a locked-down platform, restricting your essential freedom to install apps of your choice. Make your voice heard β Keep Android Open.
A todo list app with a focus on grocery shopping lists.
Start typing to search a built-in grocery catalog, add items to your lists, and check them off as you shop.
Add items to your list using natural language and on-device AI for supported devices (requires AICore).
Note
This app is in early release for testing.
Please report any Issues you find.
Supports Android 8 (API 26) 2017+.
Note: If installing directly, you may need to allow installation of apps from unknown sources.
For more information, see Release through a website.
View Manual Steps to Install from Unknown Sources
Note: Downloading and Installing the apk should take you to the settings area to allow installation if not already enabled. Otherwise:
- Go to your device settings.
- Search for "Install unknown apps" or similar.
- Choose the app you will install the apk file from.
- Select your web browser to install directly from it.
- Select your file manager to open it, locate the apk and install from there.
- Download the Latest app-release.apk.
- Open the download apk in the app you selected in step #3.
- Choose Install and Accept any Play Protect notifications.
- The app is now installed. Proceed to the Getting Started section below.
The GitHub APK has been registered with Google's Android developer verification.
C0:1C:7D:6A:93:DD:5B:87:2C:0C:1E:F2:0B:D4:17:6D:41:D6:7C:97:4B:97:39:8F:21:97:73:84:D5:DD:6A:F1
How to Verify an APK Signature
The app is ready to use as soon as it is installed β no account, login or setup required.
- Install and open the app.
- Tap the button to create your first list, for example "Groceries".
- Open the list and start typing in the search bar.
- Tap a suggestion to add an item to your list, or press Enter to add any custom text.
- Single-tap an item to mark it as done; tap the eye icon to hide or show completed items.
- Swipe an item to the right to reveal Edit and Delete actions.
- Find as you type β searching instantly surfaces matching items from the built-in grocery catalog; you can also add any custom item.
- Single tap to complete β tap an item to toggle it done or active, with a neat strike-through.
- Easily hide/show completed β one tap on the eye icon filters out everything you have already picked up.
- Swipe to edit or delete β swipe any item to the right to reveal Edit and Delete actions.
- Multiple lists β create as many lists as you need, such as Groceries, Hardware or Chores.
- Grouped by category β items are automatically grouped under grocery categories like Bakery and Dairy & Eggs.
- Offline first β everything is stored locally with Room; works fully offline, no account or servers.
- Settings β auto-open your last list on launch and toggle search categories.
- Material 3 UI β built with Jetpack Compose; light and dark themes with dynamic Material You colors on Android 12+.
- Quick launch β splash screen and startup routing straight to your last list.
- Reorder items within a list.
- Rename and delete lists.
- Search across all lists.
- Quantities and prices for grocery items.
- Backup and restore.
Note: This list was AI generated...
If you run into any issues or need help getting started, please do one of the following:
- Report an Issue: https://github.com/cssnr/todolist-android/issues
- Q&A Discussion: https://github.com/cssnr/todolist-android/discussions/categories/q-a
- Request a Feature: https://github.com/cssnr/todolist-android/issues/new
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
Without crash reporting, fixing a bug requires you to:
- Stop what you're doing and open a browser
- Go to the GitHub repo and create an Issue
- Explain exactly what you were doing when the app crashed
- Hope I can re-create the bug myself to get the stack trace
That's a heavy ask for an app that's already broken β it leaves you with a bad experience and me without enough data to fix it.
To close that gap without compromising your data or privacy, this app uses ACRA β an open-source crash reporting library. Reports are received by a self-hosted Acrarium backend that runs on my own infrastructure, so crash data doesn't go to any third parties β no Google or other big-data services.
You can turn crash reporting on or off at any time with a toggle on the Settings page.
ACRA only sends reports when the app hits an unhandled crash. By default, it only sends the technical context needed to diagnose the crash:
- The stack trace of the crash, plus the app and Android versions
- Basic device context β e.g. the device model and OS version
- A short extract of the app's own logcat (the last ~200 lines)
It does not track usage or activity, collect a device identifier, or send system or other apps' logs. Each report is anonymized and sent directly to my server, so only I receive the data.
Documentation for building the app in Android Studio and the Command Line.
This section briefly covers running and building in Android Studio and the Command Line.
- Download and Install Android Studio.
https://developer.android.com/studio
-
Ensure that usb or wifi debugging is enabled in the Android developer settings and verify.
-
Then build or run the app on your device.
- Import the Project
- Run Gradle Sync
To Run: Select a device and press Play
To Build:
- Select the Build Variant (debug or release)
- Build > Generate App Bundles or APK > Generate APKs
Note: This section is a WIP! For more details see the release.yaml.
This project uses a Taskfile for common development commands.
To compile Kotlin:
task compileTo build a debug or release APK:
task debug
task releaseTo check and format non-Kotlin files:
task format
task checkTo install and launch the app on a connected device, ADB is required. Verify your device is detected:
$ adb devices
List of devices attached
RF9M33Z1Q0M deviceThen install and launch:
task playOr use Gradle directly β use gradlew.bat on Windows:
./gradlew assembleDebug
./gradlew assembleReleaseThe release workflow signs the APK and attaches it to GitHub Releases.
See the AGENTS.md file for project conventions and available commands.
If you would like to submit a PR, report a bug or request a feature, please use the GitHub Issues and Discussions pages for this project.
Please consider making a donation to support the development of this project and additional open source projects.
You can also star this project on GitHub and support other related projects:
- Django Files Android
- Zipline Android
- Remote Wallpaper Android
- NOAA Weather Android
- ParKing Android
- Todo List Android
- Device Info Android
- Tibs3DPrints Android
For a full list of current projects visit: https://cssnr.github.io/

