Thử nghiệm các framework "bị lãng quên": Tôi đã hoàn thành ứng dụng cho khách hàng chỉ trong 3 giờ
Thay vì vội vàng chọn React Native hay Jetpack Compose cho một dự án nhỏ, tác giả đã quyết định thử sức với Framework7 và NativeScript. Kết quả thật bất ngờ khi ứng dụng quản lý kho hàng đã được hoàn thiện và vận hành chỉ trong chưa đầy 3 giờ.

Tôi không ngờ mình sẽ lại sử dụng Framework7 hay NativeScript vào năm 2026.
Tối hôm qua, tôi nhận được một yêu cầu nhỏ từ khách hàng: xây dựng một hệ thống theo dõi kho hàng đơn giản. Ứng dụng cần có hai vai trò:
- Quản trị viên (Admin): Thêm mặt hàng, nhập lại hàng, sửa/xóa và xem nhật ký kiểm tra (audit logs).
- Nhân viên (Staff): Chỉ được phép trừ hoặc bán hàng.
Bản năng đầu tiên
Suy nghĩ đầu tiên của tôi rất rõ ràng:
- React Native
- hoặc Jetpack Compose
Nhưng rồi tôi dừng lại. Điều đó đồng nghĩa với việc phải thiết lập môi trường, sửa các lỗi phụ thuộc (dependencies), xử lý cấu hình và chạy những dòng lệnh kiểu như npx expo install --fix.
Và để làm gì đó? Chỉ là một ứng dụng đơn giản. Tôi không cần một công nghệ (stack) tốt nhất; tôi cần con đường nhanh nhất để có phần mềm hoạt động.
Thử sức với NativeScript
Tôi đã từng thấy NativeScript trong một video trên YouTube nên quyết định thử sức.
Thành thật mà nói,
NativeScript cảm giác gần với native hơn và mượt mà hơn.
Giao diện người dùng (UI) cảm giác trơn tru và trải nghiệm rất chắc chắn.
Nhưng...
Nó hoạt động rất tốt khi nó hoạt động. Nhưng khi nó không hoạt động, bạn gần như phải tự xoay xở một mình.
Tôi đã gặp phải:
- Tài liệu không nhất quán
- Các gói đã lỗi thời (từ 6-8 năm trước)
- Vấn đề với việc hiển thị font icon
- Kiểu dáng (styling) không hoàn toàn là CSS chuẩn
Tôi đã sửa được một số vấn đề, nhưng nó đang làm chậm tiến độ của mình. Và với dự án này, tốc độ là yếu tố quan trọng hơn cả.
Chuyển sang Framework7
Vì vậy, tôi đã chuyển hướng.
Tôi tạo khung (scaffold) cho một ứng dụng Capacitor, thêm Framework7 vào và bắt đầu xây dựng ngay.
Và đây là lúc mọi thứ trở nên suôn sẻ.
Framework7 đã có sẵn:
- Kéo để làm mới (pull to refresh)
- Các mục danh sách có thể vuốt (swipeable)
- Cuộn vô hạn (infinite scrolling)
- Các thông báo nổi (toasts), hộp thoại và cảnh báo tích hợp sẵn
- Các thành phần UI có sẵn như thanh tìm kiếm và biểu tượng
Các thành phần UI của Framework7
Mọi thứ tôi cần cho loại ứng dụng này đều đã có ở đó.
Không cần suy nghĩ quá nhiều.
Chỉ cần nhập vào và sử dụng.
Điều khiến tôi bất ngờ
Tôi đã hoàn thành toàn bộ ứng dụng trong dưới 3 giờ (bao gồm cả kiểm thử).
Công nghệ sử dụng:
- Framework7
- Capacitor
- TanStack Query
- Supabase
Và kết quả?
Giao diện ứng dụng kho hàng được xây dựng bằng Framework7
Giao diện người dùng trông hoàn toàn giống như một ứng dụng Material native.
Nếu tôi đưa nó cho ai đó xem, họ có lẽ sẽ nghĩ nó được xây dựng bằng Jetpack Compose.
Sự đánh đổi
Tất nhiên là:
- NativeScript -> Cảm giác native hơn, mượt mà hơn.
- Framework7 -> Chạy trong WebView với sự hỗ trợ của Capacitor.
Vậy nên, đúng là NativeScript cảm thấy mượt mà và hiệu năng hơn.
Tuy nhiên:
Tôi không cần mức độ trung thực (fidelity) đó.
Tôi cần một thứ gì đó:
- Đơn giản
- Nhanh chóng
- Chính xác
Bài học thực sự
Dự án này đã nhắc nhở tôi về một điều quan trọng:
Không phải mọi vấn đề đều cần framework tốt nhất. Nó cần framework phù hợp nhất với các ràng buộc.
Lời kết
Trước khi kết thúc, tôi muốn nói một chút về NativeScript.
Cá nhân tôi, tôi nghĩ ý tưởng đằng sau NativeScript thực sự độc đáo.
Việc có thể sử dụng JavaScript/TypeScript để truy cập trực tiếp các API native mà không cần một lớp cầu nối (bridge) cồng kềnh là một khái niệm rất mạnh mẽ. Đội ngũ phát triển nó đã thực hiện một công việc ấn tượng.
Nhưng cùng lúc đó:
Một ý tưởng hay thôi là chưa đủ.
Hệ sinh thái và tài liệu đã không theo kịp, và điều đó khiến việc dựa vào nó trong các kịch bản thực tế — nơi thời gian là vàng bạc — trở nên khó khăn.
Điều đó nói rằng, tôi vẫn sẽ cân nhắc sử dụng nó cho các dự án trong tương lai — đặc biệt là khi tôi có nhiều thời gian hơn.
Ý tưởng và cách thực thi của NativeScript quá độc đáo để có thể bỏ qua.
Đa số khách hàng không cần các hệ thống phức tạp.
Họ không quan tâm đến:
- Sự tinh khiết của kiến trúc
- Các công nghệ tiên tiến nhất
Họ quan tâm đến:
Một thứ gì đó hoạt động nhất quán và phù hợp với quy trình làm việc của họ.
Và đôi khi, những công cụ giúp bạn làm điều đó nhanh nhất chính là những công cụ mà mọi người đã ngừng bàn tán.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
