, December 05, 2021

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 BoxDecoration Cheat Sheet

BoxDecoration class cung cấp nhiều cách khác nhau để vẽ một box....

Flutter BoxDecoration Cheat Sheet
Row & Column Cheat Sheet trong Flutter

Tìm hiểu về Row & Column Cheat Sheet trong Flutter....

Row & Column Cheat Sheet trong Flutter
Navigation 2.0 - Routing On Flutter Web

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách Navigation 2.0 hoạt động với Web Flutter, cách chúng ta có thể xây dựng các trang web và đồng bộ hóa URL với các dự án Flutter Web của chúng ta....

Navigation 2.0 - Routing On Flutter Web
Tìm hiểu TextAffinity trong Flutter

Từ affinity có nghĩa là thu hút. Điều này đề cập đến phần nào của text mà con trỏ (hoặc dấu mũ đôi khi được gọi) được thu hút đến. Để giải thích điều đó, trước tiên cần nói về vị trí text, được đại diện bởi class TextPosition....

Tìm hiểu TextAffinity trong Flutter
[FREE SOURCE CODE FLUTTER] OUTLOOK REMAKE

Source code Outlook Remake của kênh FlutterWay sẽ phù hợp với các developer vừa mới bắt đầu, muốn trải nghiệm code trên desktop hoặc web. Đây là một món quà nhỏ mà 200Lab dành tặng đến các bạn có hứng thú với Flutter....

[FREE SOURCE CODE FLUTTER] OUTLOOK REMAKE
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.