FairTrack: Building an Offline-First Nutrition Tracker for Android Without Accounts, Cloud, or Ads
I wanted something different: an app that opens straight into today's diary, stores everything locally, and sends exactly one thing over the network — a barcode I chose to scan.
重點摘要
Offline-first design keeps diary data stored locally by default.
Room migrations are explicit to avoid silent data loss.
Charts are drawn with Compose Canvas instead of a charting library.
FairTrack is an Android nutrition tracker designed around privacy and local control. The app opens directly into today's diary, stores data on-device, and avoids account creation, ads, and background cloud sync. The post explains several engineering choices behind version 1.0.1, including bundled offline food and micronutrient data, barcode scanning as the only networked path, explicit Room migrations to protect local history, hand-built Canvas charts to avoid extra dependencies, and disabled Android cloud backup. It also covers goal calculation, CI/CD, signing-key separation, and the app's source-available licensing terms.
FairTrack:为 Android 打造离线优先的营养追踪器,没有账号、云端或广告
我想要的是一个不同的应用:一打开就直接进入今天的日记,所有内容都保存在本地,并且只上传我主动扫描的那个条码。
重點摘要
离线优先架构让日记数据默认只存于设备本地。
Room migration 使用明确版本控制,避免静默清除数据。
图表直接用 Compose Canvas 绘制,不引入图表库。
FairTrack 是一款以隐私和本地控制为核心的 Android 营养追踪器。应用打开后直接进入当天日记,数据全部保存在设备上,不需要账号,也没有广告或后台云同步。文章介绍了 1.0.1 版的多项工程取舍,包括内置离线食物与微量营养数据、把条码扫描作为唯一联网路径、通过明确版本化的 Room migration 保护本地记录、用 Compose Canvas 手工绘制图表以减少依赖,以及关闭 Android 自动云备份。文末还提到目标计算、CI/CD 与签名密钥分离,以及项目的 source-available 授权条款。
FairTrack:為 Android 打造離線優先的營養追蹤器,沒有帳號、雲端或廣告
我想要的是一個不同的應用:一打開就進入今天的日記、所有資料都儲存在本機,而且上網時只傳送我選擇掃描的一個條碼。
重點摘要
離線優先架構讓日記資料預設只保存在裝置上。
Room migration 採明確版本管理,避免默默清除資料。
圖表直接用 Compose Canvas 繪製,不依賴圖表函式庫。
FairTrack 是一款以隱私與本機控制為核心的 Android 營養追蹤器。應用程式一開啟就進入今日日記,資料全部儲存在裝置上,不需帳號,也不使用廣告或背景雲端同步。文章介紹了 1.0.1 版的多項設計取捨,包括內建離線食物與微量營養資料、將條碼掃描作為唯一的網路流程、以明確版本化的 Room migration 保護本機紀錄、用 Compose Canvas 手寫圖表以減少依賴,以及關閉 Android 雲端備份。文末也提到目標計算、CI/CD 與簽章金鑰分離,以及授權條款。