Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Thủ thuật

Tôi đã mất một năm để phát triển ứng dụng iOS HabbitTed bằng AI

(giờ Việt Nam)

Tóm tắt AI

Tác giả chia sẻ trải nghiệm thực tế khi dùng AI để xây dựng ứng dụng, cho thấy việc phát triển phần mềm phức tạp không hề đơn giản như chỉ cần vài câu lệnh prompt.

Bản dịch AI

I Tried Building a Real App With AI. It Took a Year. | Alex Hyett

17 tháng 7, 2026

75,3 nghìn người đăng ký

Đăng ký để không bỏ lỡ các video mới

Vợ chồng tôi đã tìm kiếm một ứng dụng để theo dõi các thói quen, sở thích và thời điểm chúng tôi thực hiện các công việc nhà nhất định lần cuối.

Thành thật mà nói, có lẽ có hàng trăm ứng dụng theo dõi thói quen khác nhau trên App Store. Bên cạnh các ứng dụng danh sách việc cần làm (todo list), chúng được cho là những ứng dụng dễ tạo nhất, vì vậy không có gì ngạc nhiên khi có quá nhiều lựa chọn như vậy. Nhưng chúng tôi chắc hẳn đã thử hàng chục ứng dụng khác nhau mà không ứng dụng nào thực sự phù hợp với những gì chúng tôi đang tìm kiếm.

Tất nhiên bây giờ chúng ta đã có AI, nên việc tạo ra những thứ như thế này hẳn phải rất dễ dàng. Bạn chỉ cần viết vài câu lệnh (prompt) và AI sẽ xây dựng nó cho bạn trong khi bạn ngủ hoặc nhâm nhi cocktail trên bãi biển.

Như chúng ta sẽ thấy, mọi chuyện không hoàn toàn diễn ra như vậy.

Yêu cầu và các ứng dụng hiện có #

Vì vậy, đối với ứng dụng này, tôi có một vài yêu cầu:

Không có gì trong danh sách này là đột phá, vì vậy tôi đã xem qua các tùy chọn khác nhau để xem liệu có thứ gì đó hoạt động hiệu quả để tôi không phải tự phát triển hay không.

Đầu tiên chúng tôi đã thử ứng dụng Streaks. Đây là một ứng dụng hoàn toàn miễn phí trên iOS và thậm chí còn có tích hợp Apple Health.

Ứng dụng này đáp ứng hầu hết các nhu cầu của tôi nhưng nó không thể thực hiện được một số yêu cầu trong danh sách này:

Chúng tôi cũng đã thử thêm một vài ứng dụng khác. Có một ứng dụng phổ biến tên là HabitKit và một ứng dụng khác tên là Grit. Tôi khá thích các biểu đồ đóng góp theo phong cách GitHub của HabitKit, nhưng vợ tôi, vì không phải là lập trình viên nên không thực sự quan tâm đến điều này. Grit có lẽ là ứng dụng gần giống nhất với những gì chúng tôi đang tìm kiếm nhưng vẫn thiếu một vài tính năng.

Thành thật mà nói, tôi đã khá hài lòng với HabitKit hoặc Grit cho nhu cầu của mình nếu không vì một điều: giá cả.

Tôi không ngại trả tiền cho các ứng dụng. Tôi có rất nhiều ứng dụng trên điện thoại mà tôi đã mua cũng như phần mềm máy tính để bàn mà tôi đã trả phí. Tôi hoàn toàn ủng hộ việc hỗ trợ các nhà phát triển độc lập (indie developers), nhưng tôi cũng nhớ thời điểm mà một ứng dụng iPhone chỉ có giá bằng một ly cà phê.

Ngược lại, Grit có giá 9,99 bảng Anh/tháng hoặc 29,99 bảng Anh/năm. Có một tùy chọn để mua giấy phép trọn đời nhưng nó có giá lên tới 44,99 bảng Anh. Đó gần bằng giá của một trò chơi console mới.

Tương tự với HabitKit, dù không đắt bằng, với mức giá 1,99 bảng Anh/tháng hoặc 11,99 bảng Anh/năm cùng tùy chọn trọn đời 29,99 bảng Anh.

Có lẽ tôi là một gã keo kiệt, nhưng tôi không muốn thêm bất kỳ gói đăng ký nào vào ngân sách của mình nữa, tôi đã có quá đủ rồi.

Vì vậy, tôi quyết định tự xây dựng một ứng dụng với sự trợ giúp của AI.

Tôi bắt đầu dự án này vào tháng 3 năm ngoái. Cursor đang tặng các khoản tín dụng miễn phí và đó là cơ hội hoàn hảo để xem AI có khả năng gì. Cho đến thời điểm đó, tôi hầu như tránh sử dụng AI ngoài các câu hỏi trò chuyện đơn giản. Vì chưa bao giờ phát triển bất cứ thứ gì bằng Swift trước đây, tôi cần mọi sự trợ giúp có thể.

Chúng tôi quyết định đặt tên là HabitTed và vợ tôi thậm chí còn thiết kế một logo chú gấu dễ thương.

Quy trình phát triển bằng AI #

Nếu bạn chưa từng phát triển ứng dụng iOS trước đây, bạn gần như bị giới hạn trong việc sử dụng XCode nếu muốn kiểm thử ứng dụng trên trình mô phỏng và gỡ lỗi. Vì vậy, đã có rất nhiều sự qua lại giữa Cursor và Xcode để cố gắng thiết lập mọi thứ.

Điều này xảy ra ngay trước khi Claude Code được phát hành, vì vậy đây không phải là kỹ thuật tự động hoàn toàn (agentic). Thay vào đó, tôi chia nhỏ quá trình phát triển thành nhiều tác vụ nhỏ và thực hiện chúng theo cách thủ công với AI, kiểm tra từng thay đổi khi thực hiện.

Tôi bắt đầu với một ứng dụng "hello world" đơn giản. Sau đó thêm danh sách thói quen, khả năng thêm thói quen, chỉnh sửa thói quen, v.v.

Công bằng mà nói, sau khoảng 6 giờ làm việc vào cuối tuần, tôi đã có một ứng dụng có vẻ hoạt động được. Nó chưa làm được mọi thứ tôi muốn, nhưng bạn có thể tạo một thói quen với biểu tượng tùy chỉnh, bạn có thể nhấp vào đó để hoàn thành, nó hỗ trợ các tùy chọn mục tiêu khác nhau và thậm chí có cả đồng bộ hóa iCloud.

Mặc dù tôi đã có một sản phẩm hoạt động và chỉ mất 6 giờ, tôi không thể nói đó là 6 giờ dễ chịu.

Thông thường khi hoàn thành một dự án, tôi cảm thấy tự hào về những gì mình đã đạt được. Ngay cả khi gặp vấn đề và mọi thứ mất nhiều thời gian hơn mức cần thiết, tôi vẫn kết thúc dự án với việc học hỏi được điều gì đó mới mẻ.

Những thất bại đó đã dạy tôi điều gì đó và bất kỳ sự thất vọng nào tôi gặp phải trong quá trình phát triển thường xứng đáng vào cuối chặng đường, và ít nhất tôi đã học được cách không lặp lại sai lầm đó nữa.

Tuy nhiên, sau 6 giờ, tôi không thể nói mình đã học được nhiều về phát triển Swift.

Bất cứ khi nào có lỗi, tôi lại thấy mình sao chép và dán thông báo lỗi rồi yêu cầu AI cố gắng sửa chữa. Tôi cảm thấy khó chịu với AI vì không đủ giỏi để giải quyết vấn đề, nhưng cũng khó chịu với chính mình vì bản thân cũng không làm được.

Các vấn đề #

Mặc dù chưa lập trình bằng Swift trước đây, tôi đã lập trình bằng nhiều ngôn ngữ khác và nhìn vào mã nguồn, tôi có thể biết đó không phải là mã tốt.

Mỗi view dài gần 1000 dòng. Trình biên dịch trên XCode không thể xử lý độ dài đó và luôn bảo tôi phải chia nhỏ mọi thứ. Việc định dạng kiểu dáng cho các nút trông giống nhau lại có mã hoàn toàn khác nhau ở các view khác nhau. Mọi thứ thực sự là một mớ hỗn độn.

Vì vậy, thay vì dựa vào AI để cố gắng sửa mớ hỗn độn đó, tôi quyết định tự mình tái cấu trúc (refactor) theo cách thủ công, theo kiểu truyền thống. Tôi chuyển mọi thứ thành các view riêng biệt không dài quá 100 dòng và sửa tất cả các mã không nhất quán.

Sau đó, tôi kiểm tra ứng dụng thêm một lần nữa để đảm bảo mọi thứ hoạt động bình thường và phát hiện ra nhiều vấn đề hơn nữa.

Tôi phát hiện ra rằng đồng bộ hóa iCloud thực sự không hoạt động. Nó có thể đã đồng bộ hóa lên iCloud nhưng nếu bạn gỡ cài đặt ứng dụng và cài đặt lại, nó sẽ mất sạch dữ liệu của bạn.

Tôi cũng nhận thấy rằng khi tôi đã thêm rất nhiều lần hoàn thành vào các thói quen của mình, mọi thứ bắt đầu trở nên thực sự chậm chạp. Tôi nhận ra các số liệu thống kê trên trang chi tiết đang lặp qua tất cả các thói quen để tính toán mỗi khi bạn truy cập trang đó.

Thay vào đó, tôi tạo một số thuộc tính trên các thói quen để lưu trữ số liệu thống kê và chuyển việc tính toán sang thời điểm hoàn thành thói quen. Sau đó, tôi nhận ra mô hình dữ liệu quá phức tạp và có cách đặt tên thực sự kỳ lạ. Điều này dẫn đến việc tôi phải lập kế hoạch di chuyển dữ liệu, nếu không các thói quen sẽ bị lỗi bất cứ khi nào tôi thay đổi lược đồ (schema).

AI lập trìnhiOSKinh nghiệmPhát triển ứng dụngCursor
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.