Trang chủ Kiến Thức Công Nghệ Flutter không còn là một framework đa nền tảng, mà còn hơn thế nữa
Công Nghệ

Flutter không còn là một framework đa nền tảng, mà còn hơn thế nữa

Chia sẻ
Flutter không còn là một framework đa nền tảng, mà còn hơn thế nữa
Chia sẻ

Bài viết được dịch từ đây.

Xin chào, tôi là Luke, là một lập trình viên. Vì tôi đã đặt tiêu đề như thế nên tôi nghĩ mình cần giải thích thêm về nó. Về mặt kỹ thuật, tôi đã nghĩ Flutter là một framework đa nền tảng.

Kể từ khi Flutter 2.0 phát hành, tôi bắt đầu cảm thấy sự cường điệu quá mức. Đừng hiểu lầm, tôi thực sự rất thích Flutter và tôi sẽ mãi là người ủng hộ nó.

Tôi sử dụng Flutter cho ứng dụng iOS và Android trong công việc hàng ngày của mình. Mỗi ngày tôi đều nhận thấy những ưu và nhược điểm của Flutter vì ứng dụng mà tôi làm việc trước đây được viết bằng Kotlin và Swift với các đặc quyền như: scan/page recognition, pin/biometric app authentication, notifications, firebase statistics. Đó là lý do tại sao tôi cảm thấy mình có thể nói vài lời về tình hình hiện tại của chúng ta (những người sử dụng Flutter).

The six

The six

Một trong những điều quan trọng trong Flutter Engage năm nay là khả năng xây dựng ứng dụng của bạn cho một trong sáu nền tảng: iOS, Android, Mac, Windows, Linux và web. Đó là tin tuyệt vời! Tuy nhiên…

Bạn có thể triển khai ứng dụng của mình trên cả 6 nền tảng, nhưng tôi không định làm như vậy. Về cơ bản, bạn nên sử dụng các pattern thiết kế khác nhau tùy thuộc vào các nền tảng khác nhau. Tôi không thể tưởng tượng ra việc triển khai ứng dụng của mình trên một nền tảng khác. Đó không phải là những gì người dùng mong đợi trên các thiết bị lớn hơn. Thông thường, những gì hoạt động trên thiết bị di động sẽ không hoạt động trên desktop và ngược lại.

Đừng nghĩ rằng bạn sẽ tạo một ứng dụng và triển khai nó ở khắp mọi nơi.

Trong công ty của tôi, chúng tôi đang xây dựng các ứng dụng tập trung vào dữ liệu người dùng. Điều này cho thấy nhu cầu tạo các cuộc khảo sát tùy chỉnh và nâng cao và chúng tôi không muốn viết các Widget mới mỗi lần thêm các câu hỏi mới. Phương pháp của chúng tôi – một mô-đun viết chứa mọi logic khảo sát có thể có – cho phép chúng tôi sử dụng nó trong nhiều dự án mà không cần viết lại từ đầu.

Ý tôi muốn nói thông qua ví dụ này là, khi bạn xây dựng một ứng dụng, hãy nghĩ về mục đích mà ứng dụng hoặc doanh nghiệp của bạn nhắm đến. business logic  ẩn sâu bên trong là gì?

Tại sao tôi nghĩ bạn nên viết nhiều ứng dụng?

Tôi đã làm việc trên một số ứng dụng cấp doanh nghiệp. Theo kinh nghiệm của tôi, cần phải có một quy trình làm việc rõ ràng trên từng phần của hệ thống. Backend, front-end, dev-ops, v.v. Hãy tưởng tượng rằng ứng dụng của bạn, được xây dựng cho mọi nền tảng.

Do nhu cầu cao, bạn cần thuê một nhóm các lập trình viên. Không thể kết hợp tất cả các nền tảng vào một ứng dụng. Bạn có thể tưởng tượng làm thế nào hơn 10 lập trình viên (trong công ty nhỏ) đang làm việc trên cùng một code base nhưng trên các nền tảng khác nhau? Đó là một cơn ác mộng cho việc quản lý. Một nhóm dev làm việc trên desktop mâu thuẫn với mobile team.

Thứ hai, kích thước ứng dụng ngày càng lớn với các package đôi khi không cần thiết cho mọi nền tảng. Trong lần phát hành Flutter 2.0 đầu tiên, tôi đã gặp sự cố với chained dependencies vì không phải tất cả các package đều được cập nhật để hỗ trợ null-safety hoặc có dependencies lẫn nhau.

Cuối cùng, tại sao Flutter không phải là một framework đa nền tảng?

Sau khi đọc bài viết này, bạn có thể biết tại sao tôi không coi Flutter là một framework đa nền tảng. Đơn giản vì nó là công cụ cung cấp cho chúng ta mọi thứ mà chúng ta cần để xây dựng ứng dụng cho từng nền tảng. Nhưng theo tôi là đó không nên là một ứng dụng duy nhất, giống như một nhóm ứng dụng được thúc đẩy bởi cùng một logic kinh doanh.

Một điều khác là, khi chúng tôi viết một ứng dụng Flutter, chúng tôi sẽ không vượt qua bất kỳ nền tảng nào 😉 Chúng tôi đã nghĩ nếu chúng tôi viết nó bằng Xamarin hoặc bất kỳ công cụ nào khác có thể dịch code của nó sang các native element… nhưng chúng tôi không làm điều đó. Chúng tôi có một bức tranh trống để chúng tôi tự vẽ mọi thứ.

Nếu tôi phải so sánh Flutter với một thứ khác thì đó sẽ là một công cụ trò chơi, như Unity. Chúng tôi không viết các trò chơi dành riêng cho Windows hoặc Mac. Chúng tôi đang viết trong Unity và sau đó xuất nó sang một nền tảng cụ thể. Viết trong Unity đã trở thành một điều của riêng nó.

Nếu bạn đang đọc dòng này: Cảm ơn bạn! Bạn thật là tuyệt vời! Ở cuối bài viết này, tôi muốn nói rằng đây là suy nghĩ của riêng tôi về chủ đề đa nền tảng và bạn có thể suy nghĩ khác.

Bài viết cùng chuyên mục
Tối ưu ứng dụng với cấu trúc dữ liệu cơ bản và bitwise
Công Nghệ

Tối ưu ứng dụng với cấu trúc dữ liệu cơ bản và bitwise

Trong bài viết này, 200Lab sẽ chia sẻ những trường hợp dễ...

Công Nghệ

So sánh Flutter vs React Native: Framework nào đáng học năm 2021

Điểm chung của Flutter, React Native đều là Cross-platform Mobile, build native...

HTTP/2 là gì? So sánh HTTP/2 và HTTP/1
Công Nghệ

HTTP/2 là gì? So sánh HTTP/2 và HTTP/1

Từ khi Internet ra đời, sự phát triển về các giao thức...

Upload File từ Frontend đến Backend mà rất nhiều bạn vẫn đang làm sai!!
Công Nghệ

Upload File từ Frontend đến Backend mà rất nhiều bạn vẫn đang làm sai!!

1. Client encode file (base64) rồi gởi về backend 200Lab đã từng...

Công Nghệ

React Native – Hướng dẫn làm việc với Polyline và Animated-Polyline trên Map

Vẽ đường đi trên bản đồ là một nghiệp vụ vô cùng...

Công Nghệ

Hybrid App và Native App: Những khác biệt to lớn

Bất cứ khi nào một công ty quyết định làm ứng dụng...

Web/System Architecture 101 – Kiến trúc web/hệ thống cơ bản cho người mới
Công Nghệ

Web/System Architecture 101 – Kiến trúc web/hệ thống cơ bản cho người mới

Đây là một kiến trúc cơ bản mà bất kì một người...

Công Nghệ

Tư duy kiến trúc thông qua các trò chơi mà rất nhiều bạn không biết

Tư duy kiến trúc là gì? Tư duy kiến trúc có thể...