Ngày 1 tháng 7, 2025
19 phút đọc
Hành Trình Xây Dựng Ứng Dụng macOS Với Sự Hỗ Trợ Của AI
Gần đây, tôi đã phát hành Context – một ứng dụng macOS gốc dành cho việc gỡ lỗi các máy chủ MCP. Mục tiêu của tôi là tạo ra một công cụ hữu ích cho nhà phát triển, được xây dựng trên nền tảng SwiftUI của Apple. Dù đã phát triển phần mềm cho Mac từ năm 2008, nhưng lần này khác biệt hoàn toàn: Context được xây dựng gần như 100% bằng mã được tạo bởi Claude AI.
Trong bài viết dài này, tôi sẽ chia sẻ hành trình của mình: cách chọn công cụ, điểm mạnh/yếu của các công cụ AI hiện nay, và cách tối ưu hóa chất lượng mã được tạo ra – đặc biệt nếu bạn đang xây dựng ứng dụng gốc như tôi.
1. Từ Copilot Đến Claude Code
Trải nghiệm đầu tiên của tôi với công cụ AI hỗ trợ lập trình là GitHub Copilot tích hợp trong VS Code. Đó là công cụ tiên phong và thực sự ấn tượng: khả năng tự động hoàn thành không chỉ tên biến mà cả chức năng hoàn chỉnh dựa trên ngữ cảnh.
Thế nhưng mọi thứ thay đổi nhanh chóng khi các công cụ như Cursor với chế độ Agent xuất hiện. Đặc biệt, Claude Code nổi lên như một IDE được thiết kế đặc biệt cho terminal, tập trung hoàn toàn vào quy trình làm việc với AI thay vì chỉ bổ sung tính năng AI vào IDE truyền thống.
2. Khởi Đầu Dự Án Phụ
Là một kỹ sư bận rộn, tôi có cả “nghĩa địa” các dự án phụ chưa bao giờ được hoàn thành. Xây dựng nguyên mẫu thì dễ, nhưng hoàn thiện 20% cuối cùng luôn là thách thức lớn.
Khi bắt đầu làm quen với Claude Code và hỗ trợ của nó cho máy chủ MCP, tôi nhận ra việc kiểm thử các máy chủ này rất phức tạp. Từ đó nảy sinh ý tưởng xây dựng một ứng dụng gốc trên macOS để giải quyết vấn đề này.
3. Claude Code Viết Mã Cực Tốt
Với các mô hình Sonnet 4 và Opus 4 mới nhất, Claude Code thực sự xuất sắc trong việc viết mã. Nó có thể:
- Tìm và đọc mã nguồn hiện có
- Hiểu phong cách và mẫu thiết kế
- Tạo mã và kiểm thử tự động
- Sửa lỗi dựa trên log và ảnh chụp màn hình
Điều đáng kinh ngạc là quá trình này chỉ mất vài phút – nhanh hơn rất nhiều so với con người.
4. Hiệu Suất Với Swift và SwiftUI
Tôi quyết định sử dụng Swift 6.1 và SwiftUI để xây dựng ứng dụng. Claude thể hiện khá tốt với Swift, đặc biệt là SwiftUI, dù đôi khi gặp khó khăn với các API hiện đại.
Một vấn đề thường gặp là biểu thức kiểu phức tạp trong SwiftUI khiến trình biên dịch báo lỗi. Giải pháp là tách các view thành các phần nhỏ hơn – điều mà Claude làm khá tốt.
5. Chỉ Cần Nói “Làm Đẹp Hơn”
Nếu giao diện chưa ưng ý, bạn chỉ cần yêu cầu Claude “làm đẹp hơn”. Kết quả thường rất khả quan với nỗ lực tối thiểu. Bạn cũng có thể dán trực tiếp ảnh chụp màn hình vào Claude để nó phân tích và cải thiện UI.
6. Kỹ Thuật Ngữ Cảnh Là Chìa Khóa
Với các mô hình AI hiện đại, kỹ thuật prompt không còn quan trọng bằng kỹ thuật ngữ cảnh. Giới hạn cửa sổ ngữ cảnh 200k token là thách thức chính khi sử dụng các công cụ như Claude Code.
7. Chuẩn Bị Cho Agent
Quá trình “chuẩn bị” bao gồm cung cấp thêm ngữ cảnh để cải thiện chất lượng đầu ra. Claude sẽ đọc các file CLAUDE.md và bạn có thể yêu cầu nó đọc thêm tài liệu đặc thù cho từng nhiệm vụ.
8. Agent Cần Thông Số Kỹ Thuật Rõ Ràng
Để xây dựng tính năng phức tạp, bạn cần cung cấp thông số kỹ thuật chi tiết. Claude không thể đọc được suy nghĩ của bạn – nó cần hướng dẫn cụ thể để tạo ra sản phẩm chất lượng, không chỉ nguyên mẫu.
9. “Suy Nghĩ Kỹ Và Lập Kế Hoạch”
Claude thường bắt tay vào triển khai ngay mà không suy nghĩ đủ sâu. Bạn có thể kích hoạt chế độ suy nghĩ mở rộng bằng các từ khóa đặc biệt như “think hard” hoặc “ultrathink” để cải thiện chất lượng kết quả.
10. Thiết Lập Vòng Phản Hồi
Claude phát huy tác dụng nhất khi có thể tự động hóa các vòng phản hồi:
- Biên dịch và kiểm thử tự động
- Sửa lỗi dựa trên log
- Cải thiện giao diện qua ảnh chụp màn hình
11. Claude Code Làm Được Nhiều Hơn Viết Mã
Ngoài viết mã, Claude có thể giúp:
- Chỉnh sửa nội dung
- Lập kế hoạch phát triển tính năng
- Tạo dữ liệu giả để kiểm thử
12. Tự Động Hóa Quy Trình Phát Hành
Một trong những phần khó nhất khi phát hành ứng dụng macOS – ký mã, notarization, đóng gói – giờ đây có thể tự động hóa dễ dàng với Claude. Chỉ với vài giờ làm việc, tôi có được script 2000 dòng Python xử lý toàn bộ quy trình phát hành.
13. IDE Tương Lai Sẽ Khác Biệt
Trong quá trình phát triển, tôi hầu như chỉ sử dụng Claude Code và GitHub Desktop. Điều này khiến tôi nhận ra IDE tương lai sẽ tập trung vào việc chuẩn bị ngữ cảnh và thiết lập vòng phản hồi cho AI, thay vì các tính năng biên tập mã truyền thống.
14. Tôi Lại Có Thể Phát Hành Dự Án Phụ
Điều thú vị nhất không phải là ứng dụng tôi xây dựng, mà là khả năng quay trở lại với các dự án phụ. Với Claude, tôi như có thêm 5 giờ mỗi ngày, với chi phí chỉ 200 USD/tháng.
Lưu ý: Bài viết này không được tài trợ và hoàn toàn do tác giả tự viết, không sử dụng AI.