Quick entry · search and filter
Amount, date/time, type, category, account, note, tags; quick add and month switch; full-text search on notes/tags; filter by category, account, tag, amount range, income/expense/transfer.
Offline · Data stays on device Offline · On-device
This page is in Chinese.
A personal finance Android app. Data lives in on-device SQLite (Room), no login and no server; no accounts or cloud sync—backups leave the device only when you export or share them.
Easy Ledger
vAndroid 8.0+APK
GitHub Releases · free & open source
Amount, date/time, type, category, account, note, tags; quick add and month switch; full-text search on notes/tags; filter by category, account, tag, amount range, income/expense/transfer.
From/to accounts, amount, date, note; both balances update; excluded from monthly income/expense and shown separately in the list.
Separate expense/income categories with editable names and colors; default Chinese categories on first launch; cash, cards, Alipay, WeChat, etc., balances follow transactions.
Monthly income, spending, balance (vs last month), category pie, 12-month trend; filter by time, account, tag; share a monthly image or export PDF.
Monthly total plus per-category budgets; 80% warning and 100% overspend; configurable large-transaction threshold; gentle nudge on the home screen after days without entries.
Export CSV and full JSON backup (entries, categories, accounts, budgets, reminder settings); import with preview, common column detection, duplicates: skip / import all / overwrite.
Daily / weekly / monthly rules; creates due entries when you open the app; edit, pause, or delete rules.
Shows monthly income, spending, balance (green/red); tap opens the app; refreshes after you log transactions.
Attach a camera shot or gallery image when logging; photos stay on device with thumbnail, replace, and delete.
Dark mode toggle under Me / Settings; first launch seeds sample entries—clear or restore under Me → Reminder settings. Stack: Kotlin, Jetpack Compose, Material 3, Room, Navigation Compose.
Offline Android app for any small group—attendance, fee collection, cost splits, checklists (club, dorm, team, and more). Data stays on device (Room), no account or network required.
Group Matters
vAndroid 8.0+APK
GitHub Releases · free & open source
Add/edit/archive members (optional member ID and notes); bulk paste import with ID-first Tab columns, warnings on duplicate names/IDs; restore archived members while keeping history.
Multi-select members into sub-groups; one person can join several; activity scope is the whole group or a sub-group (empty groups cannot be selected).
Attendance / payment / split / checklist; scope is whole group or a sub-group; member snapshot at creation—later roster changes do not alter history; “Start another round” re-snapshots the current roster.
Amounts stored in cents, shown as ¥ in the English UI; remainder to first N people; exclude members, weight-based or fixed-amount splits.
Activity detail defaults to incomplete-only; tap to update status; edit amounts on payments/splits; continuous roll call for attendance; sort roster by member ID (optional).
Copy summary / reminder text in WeChat-friendly format (one person per line with amounts); share or copy incomplete lists and CSV from details.
Income/expense ledger and balance; payment activities can post collected totals to the group fund; notes and photo receipts on payments/splits.
Backup/restore data (zip, includes payment receipt images); export members, activity progress, and ledger CSV.
Shows incomplete counts for recent in-progress activities (total when several); tap opens the app.
Search activities by title on home; filter in progress / archived; quick title templates for roll call, group fund, dorm splits when creating activities or starting another round; Material 3 dark theme follows system or fixed light/dark. Stack: Kotlin · Jetpack Compose · Material 3 · Navigation Compose · Room · DataStore · App Widget · Flow · Coroutines · MVVM.
In 7 days, take beginners from zero to writing Dijkstra shortest paths in C (arrays, pointers, and memory done right). Lessons include real VS Code screen recordings (H.264, bundled in the APK), Kotlin + Jetpack Compose, fully offline.
C Week
vAndroid 8.0+APK
GitHub Releases · free & open source
Same capabilities as in the APK—no backend; lessons and demo videos ship inside the app.
Day 1–7 cards, checkmarks, and overall percentage; progress persisted with DataStore and follows system light/dark theme.
Light up D1–D7 one day at a time, weekly date strip and streak count; completing a lesson, lab, or quiz stamps the day automatically.
Failed quizzes and labs record day, question, answers, and error category; listed by day and marked corrected when you get them right.
Offline simulated tests against multiple I/O pairs, show passed cases and partial scores, with clearer feedback.
Streaks, per-day completion, and quiz accuracy—share via the system share sheet.
Chinese explanations (with everyday analogies), quizzes, and real VS Code recordings; Day 1 covers paths/files and step-by-step bash (pwd/ls/cd and a cheat sheet).
Edit C snippets in-app; simulated runs against multiple cases. Feedback covers missing headers, off-by-one, pointers, formulas, TODO stubs, BFS/Dijkstra mix-ups, and more.
Adjacency list + O(V²) Dijkstra fill-in; multiple test cases; after passing, step through dist and the shortest path on a grid.
Look up pointer, stack/heap, array decay, launch.json, bash paths, and more; large tap targets and monospace code for reading comfort.
Matches the course map in `app/src/main/assets/curriculum/map.json` and the Kotlin lessons; each day has a micro-lesson, quiz, and lab.
Paths · bash · VS Code · first compile
Tell paths from workspaces, use the terminal for basic file ops, create .c in VS Code, compile with gcc, and use launch.json and breakpoints.
Lab: print Hello, AdaStatic typing · printf/scanf · no automatic cleanup
Declare int/double/char, read/write with printf/scanf, and understand overflow and stack variable lifetimes.
Lab: Celsius ↔ Fahrenheitif/for/while · prototypes · pass-by-value
Write functions with prototypes, understand pass-by-value in C, and see why swap needs pointers (setup for Day 4).
Lab: write is_primeContiguous memory · addresses · '\0'
Draw pointer diagrams, use arrays and '\0' strings correctly, and avoid bounds and decay pitfalls.
Lab: reverse a string in placestruct · malloc/free · fopen
Define structs, allocate adjacency nodes on the heap, free correctly, and do basic file I/O.
Lab: highest score in a struct arraySelection sort · adjacency list · grid/graph BFS
Understand selection sort, simulate an adjacency list with arrays, and complete BFS (queue + dist[]).
Lab: finish BFS relaxationNon-negative weights · adjacency list · O(V²) teaching implementation
Complete the relaxation loop on your own, explain how it differs from BFS, and compile/run tests in VS Code.
Capstone: complete Dijkstra relaxationInstall, requirements, and offline use — for all three apps on this page.
Download the latest APK from each app’s GitHub Releases and install: Easy Ledger, Group Matters, and C Week. Android may ask you to allow installs from unknown sources (varies by OEM). Launcher names are “Easy Ledger”, “Group Matters”, and “C Week”.
All three apps use minSdk 26 (Android 8.0)—the same value in each repo’s app/build.gradle.kts (easy-ledger, group-matters, c-week). On first install, Android may block APKs until you allow Install unknown apps for your browser or file manager (wording and location vary by device). If an upgrade fails with a signature conflict, uninstall the old build before installing the new one—uninstalling erases on-device app data, so export or back up first (backup files for Easy Ledger / Group Matters, and any export path for C Week progress).
All three apps require at least Android 8.0 (API 26, minSdk 26) and target SDK 35 (compileSdk 35). C Week bundles H.264 lesson videos; a recent OS version usually plays them more reliably.
No for everyday use—data stays on your device. C Week ships lessons, demo videos, and lab data in the APK; progress lives in DataStore. Easy Ledger stores entries and settings in Room (SQLite). Group Matters stores group and activity data in Room. None require login or a mandatory backend.
No. C Week uses offline simulated grading (multiple test cases, rule checks, and feedback). Partial credit shows a score; a lab counts complete only when all cases pass. You do not need gcc on the phone.
Install VS Code and gcc on PC/Mac/Linux, open the c-week repo, and follow the .c files under app/src/main/assets/labs/; for Day 7 see day7_dijkstra.c and expected output in that repo’s README.