Chính sách quyền riêng tư
Đây là bản dịch. Nếu có khác biệt với bản tiếng Anh, bản tiếng Anh được áp dụng. English
ColorWander ("chúng tôi", "ứng dụng") được phát triển bởi một nhà phát triển độc lập, Zhenghao Chen (陈正豪, [email protected]). Ảnh được xử lý hoàn toàn trên thiết bị của bạn. Các yêu cầu gửi ra ngoài thiết bị chỉ giới hạn ở: các truy vấn mã hóa địa lý ngược để chuyển tọa độ GPS của ảnh thành tên địa điểm, số liệu thống kê sử dụng ẩn danh (không có dữ liệu cá nhân, không có ảnh — xem bên dưới; bạn có thể tắt tính năng này trong Settings → About (Cài đặt → Giới thiệu)) và các dịch vụ của chính Apple (StoreKit, Ảnh iCloud). Không có tài khoản, không có SDK theo dõi, không có mã định danh quảng cáo.
Tóm tắt
| Nội dung | Nơi lưu trữ / xử lý |
|---|---|
| Dữ liệu điểm ảnh của ảnh | Chỉ trên thiết bị |
| Thời gian chụp (EXIF) | Chỉ trên thiết bị |
| Tọa độ GPS (EXIF) | Gửi đến dịch vụ mã hóa địa lý của Apple; nếu Apple phản hồi chậm hoặc thất bại, đồng thời gửi đến proxy dựa trên OpenStreetMap của chúng tôi |
| Trạng thái gói đăng ký | StoreKit của Apple (chuỗi khóa hệ thống) |
| Tùy chọn (ngôn ngữ, giao diện) | UserDefaults, trên thiết bị |
| Các thẻ đã lưu và ảnh gốc dùng để tạo thẻ | Thư mục hộp cát Documents/photos/, trên thiết bị |
| Số liệu thống kê sử dụng ẩn danh | ẩn danh, có thể tắt trong Settings → About |
Những gì chúng tôi đọc từ thiết bị của bạn
- Ảnh bạn chọn — Khi bạn chọn ảnh qua
PHPickerViewController, ứng dụng đọc dữ liệu điểm ảnh, thời gian chụp EXIF và tọa độ GPS (nếu có) để tạo thẻ. Dữ liệu điểm ảnh không bao giờ được gửi ra ngoài thiết bị. - Siêu dữ liệu EXIF — Thời gian chụp được giữ cục bộ. Tọa độ GPS được dùng để xác định tên thành phố cho chú thích (xem bên dưới).
- Bộ phân loại cảnh Vision (chỉ trên thiết bị) — Khi ảnh không có vị trí sử dụng được, mô hình
Visiontích hợp sẵn của Apple sẽ phân loại cảnh (ví dụ "bãi biển", "trong nhà") ngay trên thiết bị để gợi ý một nhãn thay thế. Cả ảnh và nhãn đều không rời khỏi thiết bị của bạn. - Chuyển động + âm thanh của Live Photo — Khi bạn chọn một Live Photo và chọn xuất dưới dạng Live Photo, AVFoundation đọc chuyển động gốc (video đi kèm) và rãnh âm thanh ngay trên thiết bị, kết hợp chúng với khung thẻ do bạn thiết kế và ghi kết quả trở lại thư viện Ảnh của bạn. Dữ liệu điểm ảnh, mẫu âm thanh và Live Photo kết quả không bao giờ rời khỏi thiết bị của bạn.
Những gì chúng tôi gửi ra ngoài thiết bị
- CLGeocoder của Apple — Bất cứ khi nào ảnh bạn chọn có GPS trong EXIF, tọa độ của ảnh sẽ được gửi đến dịch vụ mã hóa địa lý của Apple để chuyển thành tên địa điểm (và gửi lại nếu bạn thay đổi ngôn ngữ của tên địa điểm). Việc này vẫn diễn ra ngay cả khi sau đó bạn ẩn chú thích. ColorWander chỉ nhận được văn bản kết quả. Yêu cầu được thực hiện qua SDK tiêu chuẩn của Apple, trên kênh bảo mật của Apple.
- OpenStreetMap Nominatim, qua proxy của chúng tôi — Nếu dịch vụ mã hóa địa lý của Apple không phản hồi trong khoảng một giây (thường gặp trên một số mạng tại Trung Quốc đại lục), cùng tọa độ đó cũng được gửi đến proxy HTTPS của chúng tôi tại
geo.bryantchen.cc/reverse, proxy này chuyển tiếp tọa độ đến dịch vụ mã hóa địa lý ngược của OpenStreetMap (nominatim.openstreetmap.org) và lưu đệm các phản hồi trong thời gian ngắn nhằm tuân thủ chính sách sử dụng của Nominatim. Câu trả lời sử dụng được đầu tiên sẽ được dùng. Chỉ tọa độ, ngôn ngữ được yêu cầu và một User-Agent nêu tên ứng dụng được gửi đi — không có ảnh, không có mã định danh, không có ID tài khoản. - Số liệu thống kê sử dụng ẩn danh — Ứng dụng gửi một tập hợp nhỏ các sự kiện tương tác sản phẩm ẩn danh (ví dụ
app_open,onboarding_completed,paywall_shown,export_completed,export_failed) đến bên xử lý dữ liệu phân tích của chúng tôi, PostHog (us.i.posthog.com), để chúng tôi hiểu những tính năng nào được sử dụng và cải thiện ứng dụng. Mỗi sự kiện mang theo: một UUID ngẫu nhiên cho mỗi lần cài đặt (không phải ID Apple của bạn, không phải mã định danh quảng cáo — mã này được đặt lại nếu bạn cài đặt lại ứng dụng), phiên bản ứng dụng, phiên bản iOS, kiểu máy, ngôn ngữ ứng dụng và các trường riêng của từng sự kiện như tên bố cục, điểm truy cập màn hình đăng ký (paywall) hoặc — khi xuất thất bại — một lý do lỗi kỹ thuật ngắn (mã lỗi và thông báo từ iOS). Không có ảnh, không có chú thích bạn nhập, không có tên, không có email, không có vị trí chính xác, không có bất cứ thứ gì nhận dạng bạn. Bạn có thể tắt tính năng này bất cứ lúc nào trong Settings → About → "Share anonymous usage data" (Cài đặt → Giới thiệu → "Chia sẻ dữ liệu sử dụng ẩn danh") — việc tắt cũng xóa mọi sự kiện đang chờ, chưa được gửi trên thiết bị của bạn. Để yêu cầu xóa các sự kiện ẩn danh đã được tải lên, hãy gửi email cho chúng tôi kèm mã định danh hiển thị trong phần chẩn đoán sau này hoặc đơn giản là nêu yêu cầu của bạn — vì dữ liệu là ẩn danh, chúng tôi sẽ xóa trong khả năng tốt nhất có thể. - Ảnh iCloud — Nếu bản gốc của ảnh bạn chọn được lưu trên iCloud, iOS sẽ tải bản gốc đó từ Apple để ứng dụng có thể sử dụng.
- App Store / StoreKit 2 — Việc mua, khôi phục và kiểm tra trạng thái gói đăng ký được xử lý bởi StoreKit tích hợp sẵn của iOS. Chúng tôi không vận hành máy chủ mua hàng riêng. ColorWander dựa trên các đối tượng giao dịch do Apple phát hành để xác định gói của bạn; chuỗi xác minh hoàn toàn thuộc về Apple. Thông tin thanh toán của bạn do Apple xử lý — chúng tôi không bao giờ nhìn thấy thông tin đó.
Những gì chúng tôi KHÔNG thu thập
- Không có tài khoản hay đăng nhập. Không đăng ký bằng email, không có ID tài khoản, không có mật khẩu.
- Không có SDK theo dõi. Không có mã định danh quảng cáo (IDFA), không lấy dấu vân tay thiết bị (fingerprinting), không theo dõi giữa các ứng dụng. Số liệu thống kê sử dụng (nêu trên) được gửi qua một trình tải lên do chính chúng tôi viết, khoảng 200 dòng mã — không nhúng SDK nào của bên thứ ba.
- Không thu thập nội dung. Ảnh, chú thích và thẻ của bạn không bao giờ được tải lên. Các sự kiện phân tích mô tả hành động (ví dụ "một thẻ đã được xuất với bố cục tem"), không bao giờ mô tả nội dung.
- Không có công cụ báo cáo sự cố. Chúng tôi không thu thập nhật ký sự cố (crash log). Thông tin lỗi duy nhất chúng tôi nhận được là lý do xuất thất bại ngắn gọn nằm trong số liệu thống kê ẩn danh nêu trên.
- Không có vị trí theo thời gian thực. Chúng tôi không yêu cầu
CoreLocationvà không bao giờ đọc GPS hiện tại của thiết bị — chỉ đọc GPS đã được ghi sẵn trong EXIF của ảnh.
Các quyền chúng tôi yêu cầu
| Quyền | Mục đích |
|---|---|
| Thư viện ảnh (đọc) | Đọc ảnh bạn chọn để tạo thẻ. |
| Thư viện ảnh (thêm) | Lưu thẻ đã xuất trở lại Ảnh. |
Bạn có thể thay đổi các quyền này bất cứ lúc nào trong Cài đặt của iOS → ColorWander.
Lưu trữ cục bộ
- Các thẻ đã lưu (JPEG hoặc PNG) nằm trong thư mục hộp cát
Documents/photos/của ứng dụng, cùng với một bản sao cục bộ của ảnh gốc dùng để tạo từng thẻ, để bạn có thể chỉnh sửa lại sau. Bản sao này giữ nguyên siêu dữ liệu của chính ảnh (chẳng hạn thời gian chụp và GPS). - Một tệp siêu dữ liệu JSON nhỏ (
history.json) lưu cho từng thẻ: văn bản chú thích, tên bố cục, màu sắc, thời gian chụp, tỷ lệ khung hình, tên địa điểm cùng mã định danh trong thư viện Ảnh và tên tệp của ảnh gốc, để thẻ có thể được chỉnh sửa lại. - Các tùy chọn (
appLanguage,appAppearance,hasSeenOnboardingvà một bộ đệm gói đăng ký) được lưu trongUserDefaults. - Trạng thái quyền lợi của gói đăng ký cũng được StoreKit của Apple lưu giữ thông qua chuỗi khóa hệ thống.
Để xóa toàn bộ dữ liệu này, hãy gỡ cài đặt ứng dụng — iOS sẽ xóa hộp cát và các mục UserDefaults cùng với ứng dụng. Trạng thái gói đăng ký của StoreKit gắn với ID Apple của bạn và có thể được quản lý trong Cài đặt → [ID Apple của bạn] → Đăng ký.
Trẻ em
ColorWander được xếp hạng 4+ và không cố ý thu thập bất kỳ dữ liệu cá nhân nào của bất kỳ ai, kể cả trẻ em. Không có hoạt động thu thập dữ liệu nào cần giới hạn theo độ tuổi.
Nội dung của bên thứ ba
Các tài nguyên đi kèm (phông chữ, dữ liệu địa lý, kho ngữ liệu văn học) là các tệp tĩnh. Chúng không kết nối ra bên ngoài. Thông tin ghi nhận giấy phép được liệt kê cả trong Điều khoản dịch vụ và trong Settings → About → Acknowledgements (Cài đặt → Giới thiệu → Ghi nhận) bên trong ứng dụng.
Thay đổi
Nếu chính sách này thay đổi đáng kể — ví dụ, nếu chúng tôi bổ sung một luồng dữ liệu mới ra ngoài thiết bị — ngày ở đầu trang sẽ được cập nhật và thay đổi sẽ được nêu rõ trong ghi chú phát hành.
Liên hệ
Câu hỏi hoặc thắc mắc: [email protected]