, October 02, 2022

0 kết quả được tìm thấy

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

  • Đăng bởi  Kieu Hoa
  •  Nov 01, 2021

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

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 liên quan

Flutter Tutorial 2022: Giới thiệu Flutter Travel App

Trong series này, chúng ta sẽ cùng nhau thực hiện ứng dụng Travel App với một bản UI Design vô cùng đẹp mắt, thu hút có sẵn....

Flutter Tutorial 2022: Giới thiệu Flutter Travel App
So sánh StatelessWidget và StatefulWidget

Trong bài viết này, các bạn sẽ có cái nhìn tổng quát về hai loại widget lớn nhất là StatelessWidget và StatefulWidget....

So sánh StatelessWidget và StatefulWidget
Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter

Trong bài viết này, mình sẽ liệt kê cho bạn các shortcuts, extensions, setting mà bạn nên sử dụng để lập trình Flutter hàng ngày....

Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter
[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code

VS Code là 1 text editor tuyệt vời được phát triển bởi Mircosoft. Đây là một trong các công cụ được developer trên toàn thế giới yêu thích vì sự tiện lợi, dễ dùng và nó chứa hàng ngàn, thậm chí trăm ngàn các extension phục vụ cho bạn trong quá trình bạn phát triển phần mềm....

[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code
Fix lỗi Flutter 3 không thể build app trên iOS

Cách fix lỗi Flutter 3 không thể build và run được app trên iOS với video hướng dẫn chia tiết...

Fix lỗi Flutter 3 không thể build app trên iOS
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.