Tôi là lập trình viên frontend. Trước đây tôi từng dùng Claude Code để làm ứng dụng web, nhưng đây là lần đầu làm ứng dụng native.
Sau khoảng 3 tháng phát triển từ tháng 4 năm nay, tôi đã phát hành ứng dụng. Đây là ứng dụng ghi lại thời gian và vị trí dành cho iPhone
Vì sao tôi làm ứng dụng này
- Life Cycle, ứng dụng tôi dùng lâu nay, đã ngừng cập nhật từ lâu
- Nhìn trên Reddit thấy khá nhiều người đang tìm giải pháp thay thế, nên tôi quyết định tự làm một thứ tốt hơn
Điều khó nhất: theo dõi vị trí nền trên iOS
- Ở điểm du lịch, sân bay, trung tâm mua sắm lớn, khu vực có nhiều địa điểm sát nhau, việc nhận diện không ổn định
- Những lần ghé thăm ngắn có thể bị bỏ sót, các địa điểm liền kề đôi khi bị gộp thành một
- Cuối cùng tôi kết luận rằng chỉ dựa vào độ chính xác theo dõi vị trí của iOS thì không thể “hoàn toàn tự động”
- Chuyển hướng: thay vì tự động hóa hoàn hảo, thiết kế để người dùng có thể dễ dàng sửa các bản ghi bị nhận sai.
Làm on-device hóa ra lại tiện hơn
- Mọi dữ liệu chỉ được lưu trên thiết bị (SwiftData), không có máy chủ. Tôi chọn cấu trúc này vì quyền riêng tư
- Tác dụng phụ là không có backend nên việc phát triển đơn giản hơn nhiều. Không cần chi phí vận hành máy chủ, xác thực hay máy chủ đồng bộ.
- Đồng bộ iCloud chỉ hoạt động tùy chọn giữa các thiết bị của chính người dùng
- Để phân tích mẫu sử dụng, tôi thu thập dữ liệu ẩn danh bằng TelemetryDeck.
Sử dụng Claude Code
- Chỉ dùng các tính năng cơ bản, không có agent harness đặc biệt. Chủ yếu làm việc với Opus
- Thêm một skill phân tích log chi tiết để dùng cho debug theo dõi vị trí
- Ảnh chụp màn hình quảng bá trên App Store được tạo bằng Claude Design
- Claude cũng giúp rất nhiều ngoài phần phát triển, như nghiên cứu ứng dụng cạnh tranh, đăng ký App Store, chiến lược quảng bá sau khi ra mắt.
Công khai chi phí
- Định kỳ: tên miền (Route 53) $15/năm, Apple Developer Program $99/năm
- Một lần/tạm thời: Claude Code Max ×5, $220 trong 2 tháng tập trung phát triển là tháng 4–5 (sau đó chuyển sang Pro), đăng ký Arc Timeline 4 (để nghiên cứu ứng dụng cạnh tranh) ₩6.600/tháng
- Mô hình doanh thu là trả một lần, không đăng ký thuê bao. Cung cấp một tuần dùng thử miễn phí.
Những suy nghĩ còn lại
- Các hạn chế đặc thù của ứng dụng native (chính sách chạy nền, quyền, pin) khác với web, nên điều cốt lõi là hiểu và lên kế hoạch cho phần đó
- Dù Claude Code có thể thay việc triển khai, việc định nghĩa sẽ xử lý các trường hợp ngoại lệ nào và xử lý ra sao rốt cuộc vẫn là phần của con người
- Mỗi cộng đồng đều chặn các bài viết mang tính quảng bá từ tài khoản mới, nên nếu chỉ tạo tài khoản ngay trước khi ra mắt thì đã muộn. Cần chuẩn bị bằng cách tham gia sớm và hoạt động trong cộng đồng
- Product Hunt: dù đã mất khá nhiều vị thế, vẫn đăng ký vì xuất hiện trong kết quả tìm kiếm
- Show HN: hiện đang tạm hạn chế do người dùng mới tăng đột biến
- Reddit: chính sách khác nhau tùy subreddit. r/iOSApps cho phép đăng bài khi có local karma từ 10 trở lên
- GeekNews: phải sau một tuần kể từ khi đăng ký mới có thể đăng liên kết tin tức
1 bình luận
Trông giống kiểu trực quan hóa dữ liệu dạng treemap nhỉ.