Chính sách quyền riêng tư — Uke Flow
Cập nhật: 31/07/2026 · Áp dụng cho ứng dụng Android com.mittohoa.ukeflow do Mít tờ Hoà (mittohoa@gmail.com) phát triển.
Uke Flow là app học đàn ukulele. Trang này nói rõ app lưu gì, để làm gì, ở đâu, bao lâu và bạn xoá bằng cách nào. Không có đoạn nào dài dòng hơn mức cần thiết.
1. Không tài khoản: mọi thứ nằm trên máy bạn
Bạn không cần tài khoản để dùng app. Ở chế độ này, không có dữ liệu nào rời khỏi điện thoại: lịch sử tập, độ thành thạo hợp âm, chuỗi ngày, cài đặt — tất cả nằm trong một tệp SQLite và SharedPreferences trên máy. Gỡ app là mất hết. App không có quảng cáo, không thư viện theo dõi/analytics.
2. Có tài khoản (tuỳ chọn): đồng bộ nhiều thiết bị
Nếu bạn đăng ký bằng email và bật Đồng bộ, dữ liệu dưới đây được lưu trên máy chủ Supabase do nhà phát triển vận hành (khu vực máy chủ theo cấu hình dự án, dữ liệu mã hoá khi truyền bằng HTTPS):
| Dữ liệu | Mục đích | Lưu bao lâu |
|---|---|---|
| Email và mật khẩu (mật khẩu chỉ lưu dạng băm bởi Supabase Auth) | Đăng nhập, khôi phục dữ liệu trên máy mới | Đến khi bạn xoá tài khoản |
| Lịch sử luyện tập: buổi tập (bài, thời lượng, điểm), hợp âm/chuyển hợp âm nghe được (chỉ tên hợp âm — không audio), phút tập theo ngày, thử thách đã làm, mốc bài học | Đồng bộ giữa các thiết bị của bạn; khôi phục khi đổi máy | Đến khi bạn xoá lịch sử hoặc xoá tài khoản |
| Mã thiết bị ngẫu nhiên do app tự sinh (không phải IMEI/Android ID) | Không cộng trùng số liệu giữa các máy khi đồng bộ | Cùng vòng đời với dữ liệu đồng bộ |
Bạn cũng có thể trỏ app vào project Supabase của chính bạn (Cá nhân → Đồng bộ & sao lưu → Nhập tay/QR). Khi đó dữ liệu đi vào hạ tầng của bạn, không phải của nhà phát triển.
3. HLV AI (tuỳ chọn) — dùng key Gemini của chính bạn
Tính năng này chỉ chạy khi bạn tự dán key Google Gemini của bạn vào app (Cá nhân → HLV AI; key miễn phí lấy tại aistudio.google.com/apikey, app có hướng dẫn từng bước và nút dán từ bộ nhớ tạm). Chưa có key, app hiện lời nhắc cài đặt thay vì nhận xét — không gửi gì đi.
Khi có key và HLV AI đang bật: sau một buổi tập có chấm điểm, app gửi số liệu của đúng buổi tập đó — tên bài, số phút, 5 điểm thành phần, danh sách hợp âm bấm sai (tên), cặp chuyển chậm nhất, BPM — thẳng từ điện thoại tới Google (API Gemini) bằng key của bạn, để mô hình viết vài câu góp ý. Không đi qua máy chủ của Uke Flow; nhà phát triển không thấy, không lưu. Không gửi audio, không gửi email/tên, không gửi lịch sử cả đời. Google xử lý theo điều khoản API Gemini của họ (bậc miễn phí có thể dùng dữ liệu để cải thiện dịch vụ — hãy đọc điều khoản đó).
Key được lưu trong kho an toàn của hệ điều hành trên máy bạn, không đồng bộ, không gửi cho Uke Flow. Bạn xoá key, tắt công tắc, hoặc gỡ app là hết. Nội dung do AI sinh ra có thể sai — mỗi nhận xét có nút Báo cáo.
4. Quyền Android app xin và lý do
| Quyền | Dùng cho | Nếu từ chối |
|---|---|---|
| Micro | Máy lên dây và nhận diện hợp âm để chấm điểm. Âm thanh xử lý ngay trên máy rồi bỏ; không ghi file, không gửi đi. | Lên dây và chấm điểm tắt; phần còn lại chạy bình thường. |
| Camera | Quét mã QR cấu hình đồng bộ từ máy khác. Không chụp, không lưu ảnh. | Nhập cấu hình bằng tay. |
| Thông báo | Nhắc tập hằng ngày vào giờ bạn chọn — thông báo cục bộ, không qua máy chủ. Chỉ hỏi khi bạn bật tính năng. | Không có lời nhắc. |
| Khởi động cùng máy | Giữ lịch nhắc sau khi khởi động lại điện thoại. | Lời nhắc mất sau khi khởi động lại. |
| Internet | Chỉ dùng cho đồng bộ và HLV AI khi bạn bật. | — |
5. Xoá dữ liệu và xoá tài khoản
- Xoá lịch sử luyện tập: Cá nhân → Vùng nguy hiểm → Xoá lịch sử luyện tập — xoá trên máy và trên máy chủ (nếu đang đồng bộ).
- Xoá tài khoản: Cá nhân → Vùng nguy hiểm → Xoá tài khoản — xoá tài khoản và toàn bộ dữ liệu đồng bộ trên máy chủ ngay lập tức, không khôi phục được. Hoặc gửi yêu cầu theo hướng dẫn ở trang xoá tài khoản.
- Đặt lại app như ban đầu: xoá mọi thứ trên máy này, đăng xuất; dữ liệu trên máy chủ vẫn giữ cho tới khi bạn xoá tài khoản.
6. Trẻ em
App dành cho người từ 13 tuổi trở lên và không được thiết kế riêng cho trẻ em. App không thu thập dữ liệu nhằm mục đích nhận diện trẻ em.
7. Bên thứ ba được dùng
| Dịch vụ | Vai trò | Dữ liệu đi qua |
|---|---|---|
| Supabase | Xác thực và cơ sở dữ liệu cho đồng bộ; hàm xoá tài khoản | Mục 2 |
| Google Gemini API | Sinh nhận xét HLV AI — gọi trực tiếp từ máy bạn bằng key của bạn | Số liệu buổi tập (mục 3) |
| GitHub Pages | Trang web này | Log truy cập web chuẩn của GitHub |
8. Thay đổi và liên hệ
Mọi thay đổi sẽ cập nhật tại trang này kèm ngày. Thắc mắc hay yêu cầu về dữ liệu: mittohoa@gmail.com.
Privacy Policy — Uke Flow
Updated: 31 July 2026 · Applies to the Android app com.mittohoa.ukeflow by Mít tờ Hoà (mittohoa@gmail.com).
Uke Flow is a ukulele learning app. This page says plainly what the app stores, why, where, for how long, and how you delete it.
1. Without an account: everything stays on your phone
You do not need an account. In that mode no data leaves the device: practice history, chord mastery, streaks and settings live in one SQLite file plus SharedPreferences on the phone. Uninstalling removes all of it. The app has no ads and no analytics/tracking libraries.
2. With an account (optional): multi-device sync
If you sign up with an email and turn on Sync, the data below is stored on a Supabase backend operated by the developer (encrypted in transit over HTTPS):
| Data | Purpose | Retention |
|---|---|---|
| Email and password (password stored only as a hash by Supabase Auth) | Sign-in; restoring your data on a new device | Until you delete the account |
| Practice history: sessions (song, duration, scores), chords/transitions heard (chord names only — never audio), minutes per day, completed challenges, lesson milestones | Sync across your devices; restore after a phone change | Until you clear history or delete the account |
| A random device id generated by the app (not IMEI / Android ID) | Avoid double-counting between your devices | Same lifetime as synced data |
You may also point the app at your own Supabase project (Profile → Sync & backup → manual / QR). Data then goes to your infrastructure, not the developer's.
3. AI coach (optional) — with your own Gemini key
This feature runs only when you paste your own Google Gemini key into the app (Profile → AI coach; free key from aistudio.google.com/apikey, with step-by-step guidance and a paste-from-clipboard button in the app). Without a key the app shows a setup hint instead of a note — nothing is sent.
With a key and the coach switched on: after a scored session the app sends the numbers of that one session — song title, minutes, the five scores, misplayed chords (names), slowest transition, BPM — directly from your phone to Google (Gemini API) using your key, so the model can write a short note. It never passes through Uke Flow's servers; the developer cannot see or store it. No audio, no email or name, no lifetime history. Google processes it under its Gemini API terms (the free tier may use data to improve the service — read those terms).
The key lives in the operating system's secure store on your phone, is not synced and not sent to Uke Flow. Remove the key, switch the coach off, or uninstall — and it's gone. AI output can be wrong — every note has a Report button.
4. Android permissions and why
| Permission | Used for | If denied |
|---|---|---|
| Microphone | Tuner and chord recognition for scoring. Audio is processed on-device and discarded; never recorded to a file or sent. | Tuner and scoring are off; everything else works. |
| Camera | Scanning a sync-setup QR code from another phone. No photos taken or stored. | Enter the configuration by hand. |
| Notifications | Daily practice reminder at a time you pick — a local notification, no server. Only requested when you enable it. | No reminders. |
| Boot completed | Keeps the reminder scheduled after a restart. | Reminder lost after reboot. |
| Internet | Only for sync and the AI coach, when enabled. | — |
5. Deleting data and your account
- Clear practice history: Profile → Danger zone → Clear practice history — removes it on the phone and on the server (when syncing).
- Delete account: Profile → Danger zone → Delete account — deletes the account and all synced data on the server immediately and irreversibly. Or follow the account deletion page.
- Reset the app: wipes everything on this phone and signs out; server data stays until you delete the account.
6. Children
The app is intended for users 13 and older and is not designed for children. It does not collect data to identify children.
7. Third parties
| Service | Role | Data involved |
|---|---|---|
| Supabase | Authentication and database for sync; account-deletion function | Section 2 |
| Google Gemini API | Generates the AI coach note — called directly from your phone with your key | Session numbers (section 3) |
| GitHub Pages | Hosts this website | GitHub's standard web access logs |
8. Changes and contact
Changes are posted here with a date. Questions or data requests: mittohoa@gmail.com.