Ứng dụng di động đầu tay của một backend senior: thư viện ảnh được làm bằng vibe coding trong 5 tháng (ra mắt iOS / Android beta)
(zizi.tnstory.co.kr)Xin chào. Tôi là một lập trình viên backend senior.
Tôi hoàn toàn không có kinh nghiệm về app/frontend, nhưng lần đầu tiên đã thử làm một ứng dụng di động chỉ bằng vibe coding.
Mất 5 tháng, hiện iOS đã phát hành, còn Android đang ở giai đoạn beta kín do các hạn chế trong chính sách dành cho nhà phát triển cá nhân.
Vì sao tôi làm nó
Một ngày nọ, con gái tôi nói rằng "bộ nhớ lưu ảnh không đủ mà việc xóa ảnh lại quá bất tiện". Vì vậy tôi bắt đầu nhẹ nhàng với ý tưởng tạo một 'ứng dụng thư viện ảnh có thể xóa, phân loại và tìm kiếm nhanh', nhưng trong lúc làm thì tính năng cứ tiếp tục tăng lên.
Các tính năng chính
- Dọn dẹp nhanh (Quick Cull) — so sánh bằng thao tác vuốt và xóa hàng loạt trong một lần
- Tìm kiếm văn bản bằng OCR — sử dụng Apple Vision / Google ML Kit để tìm bằng chữ trong ảnh
- Tìm kiếm địa danh — hỗ trợ 180 quốc gia bằng GeoHash + Reverse Geocoding (dữ liệu công khai OSM, riêng Hàn Quốc xây dựng thêm DB đơn vị hành chính)
- Đồng bộ hóa/sao lưu giữa các thiết bị — Google Drive + mẫu CDC (điện thoại thông minh ↔ máy tính bảng)
- Tìm kiếm theo thẻ/vị trí/lịch — tìm hàng chục nghìn ảnh chỉ trong vài giây
Stack công nghệ
- React Native + Expo (newArch)
- Một phần Native — Swift, Kotlin (các phần phụ thuộc nền tảng như OCR/render ảnh tốc độ cao)
- Supabase + Google OAuth
- Reanimated 4, FlashList v2
- SQLite + FTS5 (tìm kiếm cục bộ)
Những điều tôi cảm nhận khi làm
Nghe có vẻ như AI sẽ làm hết mọi thứ, nhưng trên thực tế vẫn cần rất nhiều công việc thủ công ở mức độ tự viết code (Prompt). Đặc biệt, sự khác biệt trong cách hoạt động giữa các nền tảng và việc tinh chỉnh hiệu năng cuối cùng vẫn phải do con người kiểm tra từng chút một (dù trong quá trình đó cũng có nhận được sự hỗ trợ từ AI).
Tôi đã xây dựng dữ liệu cho 180 quốc gia về tìm kiếm địa danh (DB reverse geocoding theo từng quốc gia chỉ tải qua CDN với các nước cần thiết), nhưng ngoài Hàn Quốc thì chưa thể kiểm chứng bằng thử nghiệm thực tế. Sẽ rất tốt nếu có người ở các quốc gia khác dùng thử, nhưng thật khó để nhận được phản hồi xác minh dữ liệu.
Điều tôi nghĩ mình đã làm tốt
Kết xuất hình ảnh tăng dần theo 4 bước: ThumbHash → System default Thumbnail → ViewPort Size → Origin Size
Tôi đã cố tối ưu hóa hết mức có thể, nhưng so với ứng dụng ảnh mặc định thì vẫn còn một chặng đường dài.
Trạng thái hiện tại
- Landing page (giới thiệu + Privacy): https://zizi.tnstory.co.kr
- iOS App Store: https://apps.apple.com/app/6760991211
- Đăng ký Android beta: https://groups.google.com/g/zizi-beta-tester
(tham gia nhóm → có thể opt-in trên Play Store) - iOS: hỗ trợ iCloud
- Android: đáng tiếc là ảnh đã sao lưu lên cloud (Google Photos, v.v.) không thể được truy cập trực tiếp do chính sách, nên chỉ có thể truy cập sau khi tải xuống thủ công
Mong nhận được góp ý
- Rất hoan nghênh phản hồi kiểm chứng tính năng tìm kiếm địa danh từ người dùng iOS có ảnh chụp ở ngoài Hàn Quốc
- Rất mong nhận được tự do các ý tưởng hoặc góp ý phê bình liên quan đến workflow dọn dẹp ảnh
Xin cảm ơn.
Chưa có bình luận nào.