0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Tổ Chức Ảnh Thông Minh: Giải Quyết Vấn Đề Ảnh Giống Nhau

Đăng vào 1 tuần trước

• 5 phút đọc

Giới Thiệu

Hãy tưởng tượng bạn là một người yêu thích chụp ảnh (hoặc chỉ là người thường xuyên chụp ảnh). Sau khi dành 45 phút để có được bức ảnh hoàn hảo của món bánh avocado toast, bạn đã chụp được 25 bức ảnh gần như giống nhau. Ba tháng sau, Google Photos của bạn trở thành một nghĩa địa của những bức ảnh gần giống nhau, và bạn bắt đầu nhận những thông báo "dung lượng sắp đầy". Nghe có quen không?

Thực Tế Khắc Nghiệt: Chúng Ta Đều Là Người Lưu Trữ Ảnh

Theo thống kê, trung bình một người dùng smartphone chụp khoảng 900 bức ảnh mỗi năm và lưu trữ khoảng 500GB dữ liệu, trong đó 46% là ảnh. Điểm số thực sự gây sốc: khoảng 30-40% trong số đó là ảnh trùng lặp hoặc gần giống nhau. Chúng ta đang phải trả tiền để lưu trữ rác kỹ thuật số!

Tính Toán Lưu Trữ Đáng Sợ

  • Người dùng smartphone trung bình: ~137K ảnh lưu trữ
  • Ảnh trùng lặp/gần giống: 30-40% (ước tính bảo thủ)
  • Khoảng 41,000-55,000 ảnh mà bạn không cần
  • Với giá lưu trữ Google Photos hiện tại: bạn đang trả $1.99-9.99/tháng để lưu trữ rác kỹ thuật số

Giới Thiệu Pictia: Giải Pháp Tổ Chức Ảnh Cá Nhân

Trong cuộc thi Code with Kiro Hackathon, tôi quyết định giải quyết vấn đề này bằng cách xây dựng một ứng dụng tổ chức ảnh mang tên Pictia. Tôi muốn biến việc tổ chức ảnh trở nên thú vị như lướt TikTok. Tôi đã từng cố gắng xây dựng công cụ quản lý ảnh nhưng gặp khó khăn trong việc tích hợp API Google Photos. Nhưng với sự trợ giúp của Kiro, tôi tự tin rằng những thách thức này có thể được khắc phục.

Về Kiro: AI Thực Sự Hiểu Vấn Đề

Kiro không chỉ là một công cụ tạo mã tự động. Nó được quảng bá là "IDE AI cho từ prototype đến production" và điều đặc biệt là cách phát triển dựa trên yêu cầu chính xác. Kiro có hai chế độ:

  • Vibe: Phương pháp chat khi bạn cảm thấy sáng tạo nhưng không có kế hoạch
  • Spec: Phương pháp lập kế hoạch khi bạn muốn hoàn thành một sản phẩm.

Tôi chọn chế độ Spec vì tôi muốn dự án này có cấu trúc rõ ràng.

Những Gì Tôi Xây Dựng: Pictia

Tính Năng Chính

  • Tích Hợp Google Photos: Kết nối an toàn mà không khiến bạn cảm thấy như đang giao nộp linh hồn kỹ thuật số
  • Giao Diện Lướt: Lướt phải để giữ, lướt trái để xóa
  • Thư Viện & Chọn Nhiều: Giao diện lưới truyền thống cho các bạn muốn xóa hàng loạt ảnh
  • Sao Lưu Định Kỳ: Tổ chức tự động
  • Đa Nền Tảng: React Native + Expo = hoạt động trên cả iPhone và Android

Nguyên Tắc Phát Triển Tốt Nhất

  • Đặt Yêu Cầu Rõ Ràng: Tách biệt các yêu cầu như Xác thực, Thư viện, Giao diện lướt, Sao lưu sẽ dẫn đến mã nguồn tốt hơn.
  • Phát Triển Từng Bước: Thêm các tính năng như sao lưu định kỳ là tốt hơn so với việc cố gắng xây dựng mọi thứ cùng một lúc.
  • AI Là Tư Vấn Kiến Trúc: Kiro đã đưa ra những quyết định kiến trúc hợp lý mà tôi không nghĩ đến.

Cách Kiro Giúp Tôi Phát Triển

Kiro đã tạo ra một tệp yêu cầu rất chi tiết và sau đó là tài liệu thiết kế với sơ đồ kiến trúc hệ thống. Kiro cũng chủ động cập nhật thông tin về các thay đổi của API Google Photos gần đây.

Tích Hợp API Mà Không Gây Áp Lực

Tích hợp API Google Photos có thể rất khó khăn, nhưng Kiro đã tạo ra một client API mạnh mẽ, giúp xử lý mọi lỗi thường gặp.

typescript Copy
// Phần client API Google Photos được tạo bởi Kiro
interface GooglePhotosClient {
  getMediaItems(pageToken?: string): Promise<MediaItemsResponse>;
  uploadMediaItem(mediaData: MediaUpload): Promise<MediaItem>;
  createAlbum(albumName: string): Promise<Album>;
  // Các phương thức API cập nhật 2024
  batchCreateMediaItems(items: NewMediaItem[]): Promise<BatchCreateResponse>;
}

Chiến Lược Kiểm Tra Thực Tế

Kiro đã tạo ra một cấu trúc kiểm tra mà thực sự có ý nghĩa. Đó không chỉ là khung kiểm tra mà là một lộ trình để xây dựng các tính năng đáng tin cậy.

typescript Copy
// Cấu trúc kiểm tra mẫu
describe('BackupService', () => {
  describe('scheduleBackup', () => {
    it('should schedule monthly backup correctly');
    it('should handle invalid date configurations');
    it('should update existing schedules');
  });
});

Quyết Định UX Dựa Trên Nghiên Cứu Thực Tế

Kiro không chỉ viết mã mà còn đưa ra các khuyến nghị thiết kế dựa trên các mẫu UX hiện đại. Khi tôi nói rằng tôi muốn một giao diện lướt giống như Bumble, Kiro đã hiểu và tạo ra một thành phần sử dụng React Native Gesture Handler với quản lý trạng thái hợp lý.

Kết Quả: Ứng Dụng Tổ Chức Ảnh Thú Vị

Ứng dụng cuối cùng hoạt động đúng như mong đợi với giao diện lướt mượt mà và tích hợp Google Photos đáng tin cậy. Trong quá trình thử nghiệm, người dùng trung bình tổ chức hơn 200 ảnh trong vòng chưa đầy 10 phút.

Kết Luận

Kiro đã biến một dự án kéo dài hàng tháng thành một nguyên mẫu hoạt động chỉ trong vài ngày. Trải nghiệm sử dụng Kiro giống như có một lập trình viên dày dạn kinh nghiệm bên cạnh, giúp tôi vượt qua các rào cản kỹ thuật mà tôi đã gặp phải trước đây.

Chiến Thắng Thực Sự: Tôi có thêm 14GB không gian lưu trữ đám mây và một công cụ giúp tổ chức ảnh trở nên thú vị. Đôi khi, những giải pháp tốt nhất đến từ việc giải quyết những vấn đề của chính mình.


Muốn thấy Pictia hoạt động? Hãy kiểm tra kho dự án và tham gia vào cuộc chiến chống lại sự lộn xộn kỹ thuật số. Hóa đơn lưu trữ đám mây của bạn sẽ cảm ơn bạn.

  • Kho Dự Án: Sẽ ra mắt sớm
  • Demo Trực Tiếp: Sẽ có sau khi tôi tổ chức thư viện ảnh của mình

P.S. Nếu bạn đang đọc điều này và có hơn 50 bức ảnh của cùng một hoàng hôn, ứng dụng này là dành cho bạn.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào