Framework là gì?

Framework là các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đóng gói. Chúng cung cấp các tính năng có sẵn như mô hình, API và các yếu tố khác để tối giản cho việc phát triển các ứng dụng web phong phú, năng động. Các framework giống như là chúng ta có khung nhà được làm sẵn nền móng cơ bản, bạn chỉ cần vào xây dựng và nội thất theo ý mình.

Các loại Framework

Hiện nay có nhiều framework cho backend, front end, ứng dụng mobile…phổ biến nhất có lẽ là các web framework và các framework cho mobile.

Các framework ứng dụng web là các framework phần mềm được sử dụng để sắp xếp hợp lý các ứng dụng web và phát triển trang web, các dịch vụ web và các tài nguyên web. Một loại framework ứng dụng web phổ biến là kiến trúc Model-View-Controller (MVC). Như chúng ta đã biết để lập trình một website chúng ta sử dụng tới 3 ngôn ngữ thành phần là HTML, CSS và Javascript sau đó kết hợp với một ngôn ngữ kịch bản máy chủ như PHP, ASP.NET, JAVA… với mỗi thành phần này chúng ta có các framework khác nhau.

Framework cho ứng dụng di động giúp bạn có thể viết code một lần và có thể chạy trên iOS và Android. Đó chính là điểm mạnh của nó để giảm thời gian phát triển sản phẩm so với native code. Hiện tại các framework này đa số dùng Javascript làm ngôn ngữ phát triển nổi bật như là React Native của Facebook, ngoài ra còn có Xamarin của Microsoft dùng C#, Flutter dùng ngôn ngữ Dart của Google.

Các tính năng cốt lõi của Framework web

Framework giúp tăng hiệu suất, mở rộng các chức năng và cung cấp các thư viện sẵn có để các nhà phát triển không phải làm lại từ đầu. Có rất nhiều framework khác nhau từ nhỏ đến lên, từ ngôn ngữ này đến ngôn ngữ khác — nhà phát triển có thể lựa chọn dựa trên nhu cầu dự án hoặc phong cách làm việc của riêng họ.

Mỗi ngôn ngữ lập trình có ít nhất một framework. Các thư viện trong mỗi framework cung cấp các gói có thể sử dụng lại của ngôn ngữ đó.

Một framework cho web bao gồm:

  • Libraries: Thư viện là các đoạn mã xây dựng sẵn cho một chức năng nào đó (Design pattern), bạn có thể tái sử dụng chức năng đó mà ko phải code lại. Có nhiều tools quản lý thư viện như NPM, Composer
  • API: là phương thức trao đổi dữ liệu giữa các ứng dụng chính và ứng dụng khác. Đọc thêm RESTful API là gì nhé.
  • Scaffolding: Một bộ khung các quy tắc mà một framework MVC sử dụng quy hoạch cơ sở dữ liệu có thể được truy cập như thế nào.
  • AJAX: update thông tin lên database mà không cần load lại trang.
  • Caching: giúp giảm request đến máy chủ, tăng tốc độ load trang.
  • Security: framework xác thực và ủy quyền user.
  • Compilers : trình biên dịch từ code của bạn qua ngôn ngữ cho máy.

Tham khảo thêm về web framework

Các Framework để phát triển ứng dụng Mobile

“Viết một nơi, chạy muôn nơi” là code được viết một lần duy nhất trên một platform, nhưng có thể chạy trên nhiều platform khác nhau. Với sự đa dạng ngày càng gia tăng của thiết bị di động, lập trình viên hiện đang gặp thêm nhiều khó khăn để cho ra được ứng dụng vì user hiện phân bố ở nhiều platform khác nhau.

Mục tiêu của bài viết là cách viết multi-platform apps (ứng dụng đa nền tảng) với code reuse. Để hỗ trợ các bạn trong quá trình phát triển ứng dụng di động đa nền tảng, chúng tôi xin giới thiệu các framework đa nền tảng tốt nhất hiện nay, có thể làm việt trên nhiều nền tảng thông dụng bao gồm Android, iOS…

1. React Native

React Native là một framework cho phép các lập trình viên phát triển ứng dụng di động thiết kế các ứng dụng di động đa nền tảng với sự trợ giúp của javascript. Với React – Native, lập trình viên có thể sử dụng một bộ mã duy nhất cho cả nền tảng iOS và Android.

React Native hoạt động như thế nào?

Ưu điểm:

  • Hiệu quả về mặt thời gian khi mà bạn muốn phát triển một ứng dụng nhanh chóng.
  • Hiệu năng tương đối ổn định.
  • Cộng đồng phát triển mạnh.
  • Tiết kiệm tiền.
  • Team phát triển nhỏ.
  • Ứng dụng tin cậy và ổn định.
  • Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất.
  • Trải nghiệm người dùng tốt hơn là hybrid app.

Nhược điểm:

  • Vẫn đòi hỏi native code.
  • Hiệu năng sẽ thấp hơn với app thuần native code.
  • Bảo mật không cao do dựa trên JS.
  • Quản lý bộ nhớ.
  • Khả năng tùy biến cũng không thực sự tốt đối với một vài module.

2. Flutter 

Flutter là mobile UI framework của Google để tạo ra các giao diện native chất lượng cao trên iOS và Android trong khoảng thời gian ngắn sử dụng ngôn ngữ Dart. Flutter hoạt động với source code có sẵn, được sử dụng bởi các nhà phát triển và các tổ chức trên khắp thế giới, đồng thời nó open-source và miễn phí.

3. Xamarin 

Là 1 nền tảng lập trình ứng dụng di động cross-platform (có nghĩa là code một lúc có thể chạy trên được cả iOS lẫn Android). Xamarin có những đặc điểm riêng biệt, hiếm có so với các frameworks hiện tại trên thị trường khi mà khả năng native access và trải nghiệm người dùng native vẫn đang bị đặt nghi vấn.

Ưu điểm:

  • Ứng dụng mẫu của Xamarin giúp công việc khởi đầu suôn sẻ hơn; ứng dụng được viết rất rõ ràng và còn có thể được dùng là mẫu tham khảo.
  • Xamarin có thể chia sẻ đến 75% code được viết ra đến các nền tảng di động lớn, từ đó tiếp kiệm rất nhiều thời gian và chi phí.
  • Cung cấp functionality testing và quality assurance (kiểm tra tính năng và đảm bảo chất lượng) cho vô số thiết bị để đảm bảo tích hợp chuẩn xác (Xamarin thậm chí còn có giả lập Android riêng)

Khuyết điểm: Với Xamarin, vì sự cố tương thích, bạn sẽ vẫn không thể sử dụng được vô số thư viện nguồn mở cho iOS và Android. Phiên bản miễn phí vô cùng hạn chế, rất khó dùng trong các project lớn.

4. PhoneGap

PhoneGap cũng là một framwork ứng dụng di động đa nền tảng nguồn mở cho phép các lập trình viên xây dựng các ứng dụng di động bằng HTML, CSS và Javascript. Nó tập trung một kiến trúc có khả năng bổ trợ để giúp các lập trình viên bằng cách tạo các ứng dụng nổi bật với việc sử dụng các khả năng của thiết bị qua các API.

Ưu điểm:

  • Cho phép tạo ứng dụng lai bằng những công nghệ web phổ biến (HTML5, CSS3 và JavaScript),
  • Cho phép bạn deploy một code base duy nhất lên nhiều nền tảng khác nhau, trong đó có iOS, Android, Windows Phone, BlackBerry, Firefox OS,…
  • Cấu trúc cho phép áp dụng plugin, mở rộng (theo module) APIs thiết bị và nhiều lợi ích khác.
  • Cho phép áp dụng thanh toán tích hợp/in-app thông qua App Store cho iOS, Google Play Store cho Android,…

Khuyết điểm: Khả năng hỗ trợ đồ họa hạn chế cho ứng dụng. Bạn hiển nhiên vẫn có thể tìm một số plugin cho từng yêu cầu cụ thể, nhưng plugin cho một số platform cần thiết có thể bị lỗi thời, hoặc bị bỏ ngang.

SHARE