Nhập nội dung tìm kiếm

14/03/2022

PowerApps và AppSheet: so sánh chuyên sâu giữa các nền tảng ứng dụng không có mã

Nền tảng ứng dụng không mã cho phép người dùng doanh nghiệp tạo ứng dụng mà không cần viết mã. Có nhiều nhà cung cấp với các dịch vụ được dán nhãn "không có mã". Bài viết này mô tả một khuôn khổ với sáu tiêu chí được sử dụng để đánh giá và chuẩn hóa các dịch vụ này. Bài viết sử dụng các tiêu chí này để đánh giá và so sánh hai nền tảng ứng dụng không mã hàng đầu: Microsoft PowerApps và AppSheet.

Người dùng Doanh nghiệp là ai?

Trọng tâm của chúng tôi là người dùng doanh nghiệp hơn là kỹ sư phần mềm, lập trình viên hoặc nhân viên CNTT. Một người dùng doanh nghiệp cổ điển làm việc trong một số ngành kinh doanh trong tổ chức (tổ chức nhỏ, vừa hoặc lớn), có công việc toàn thời gian hiện tại, cảm thấy thoải mái với việc sử dụng các công nghệ máy tính để bàn, web và thiết bị di động và có đủ năng lực với các công cụ như Microsoft Word, Excel, PowerPoint, Google Documents và WordPress. Thông thường, người dùng doanh nghiệp sẽ tương tác với các hệ thống năng suất dựa trên đám mây như Salesforce, Workday, ServiceNow, Jira, Trello, Hubspot, v.v. có thể do nhóm của họ hoặc nhóm CNTT trung tâm quản lý.

Trên toàn thế giới, có nhiều người dùng doanh nghiệp hơn (~ 1,5 tỷ) so với nhà phát triển (chỉ ~ 15-20 triệu).

Kiến thức nền tảng

Bài viết này xem xét các nền tảng ứng dụng hỗ trợ người dùng doanh nghiệp tạo và triển khai ứng dụng của riêng họ cho nhóm của họ (đồng nghiệp, nhà cung cấp, v.v.) để cải thiện năng suất kinh doanh. Các nền tảng như vậy phải tuân theo các nguyên lý nhất định:

Không có mã:  Các nền tảng này phải phục vụ cho đối tượng người dùng doanh nghiệp, những người không được đào tạo về mã.

Tích hợp với dữ liệu kinh doanh:  Các ứng dụng phải hoạt động trong môi trường kinh doanh hiện có và do đó tích hợp với dữ liệu kinh doanh hiện có.

Hoạt động trên các thiết bị và hệ số dạng:  Ứng dụng không chỉ phải hỗ trợ các hệ số dạng thiết bị khác nhau, chúng còn phải chạy trên các hệ số dạng ứng dụng khác nhau (web, ứng dụng dành cho thiết bị di động, chatbot, v.v.).

Tiêu chí ngầm định

Khi chúng tôi so sánh các nền tảng không mã, có hai tiêu chí chủ quan ngầm áp dụng cho tất cả các tính năng và chức năng.

Sức mạnh biểu đạt: Điều quan trọng là các ứng dụng phải phong phú và hỗ trợ một loạt các chức năng kinh doanh.

Tính dễ sử dụng: Các tính năng nên mô hình hóa các khái niệm người dùng trực quan (cách người dùng nghĩ về vấn đề đang được giải quyết) thay vì buộc người dùng phải hiểu các khái niệm nền tảng kỹ thuật.

Khung so sánh

Chúng tôi đánh giá PowerApps và AppSheet theo sáu khía cạnh kỹ thuật.

Kiến trúc dữ liệu

Thiết kế cho quy mô

Mô hình bảo mật

Mô tả hành vi

Cấu hình giao diện người dùng

Môi trường sáng tác

1. Kiến trúc dữ liệu: PowerApps

Các ứng dụng kinh doanh cần kết nối với dữ liệu kinh doanh. PowerApps được tích hợp với Mô hình dữ liệu chung của Microsoft chia sẻ khung kết nối dữ liệu với các công cụ khác của Microsoft như Power BI và Flow. Do đó, có sẵn các trình kết nối với hầu hết các nguồn dữ liệu phổ biến. Đây là một thế mạnh của nền tảng. 

Mọi ứng dụng dành cho doanh nghiệp cần có khả năng chạy ngoại tuyến hoặc ít nhất là đôi khi bị ngắt kết nối. Tuy nhiên, kiến ​​trúc PowerApps được kết nối ngầm. Nếu bạn muốn ứng dụng hoạt động không kết nối, bạn phải thiết lập bảng cục bộ và tự quản lý việc tải dữ liệu thông qua mã. Điều đó được mô tả chi tiết trong tài liệu của Microsoft.

Điều này dẫn đến "mã" xấu xí như thế này:

mã powerappsTrừ khi bạn là một nhà phát triển, bạn nên tránh xa logic như vậy. Và ngay cả khi bạn là nhà phát triển, việc gỡ lỗi logic như vậy và xác định khi nào nên và không nên sử dụng nó là hoàn toàn không nhỏ.

Tuy nhiên, đồng thời, các ứng dụng không hoạt động liền mạch khi được kết nối. Thông thường các ứng dụng sẽ thông báo cho người dùng của họ khi có dữ liệu mới. Tuy nhiên, PowerApps không tự động cung cấp chức năng này. Thay vào đó, đây là trách nhiệm của người tạo ứng dụng. Như được mô tả ở đây, thiết kế được đề xuất là sử dụng mã để tạo nguồn dữ liệu thứ hai cho cùng một dữ liệu, thiết lập bộ đếm thời gian nền để tìm nạp dữ liệu nhiều lần, tạo sự khác biệt dữ liệu bằng cách so sánh số lượng dữ liệu và nếu có, hãy hiển thị biểu tượng làm mới . Hơn nữa, bộ hẹn giờ này phải được đặt (nhưng có thể bị ẩn) trên chế độ xem 'hiện tại', nếu không, bộ hẹn giờ này sẽ không chạy. Các vấn đề với thiết kế này có quá nhiều để liệt kê ở đây, từ tính đúng đắn đến các vấn đề về hiệu suất.

Lựa chọn thiết kế này cũng ảnh hưởng đến các hoạt động như cập nhật hàng loạt nhiều hàng. Đây phải là một hoạt động tiêu chuẩn trong các nền tảng ứng dụng dành cho doanh nghiệp. Trong PowerApps, bạn phải viết mã để thực hiện việc này. Bạn phải giữ bộ sưu tập “bản sao” của riêng mình các bản ghi cập nhật và sau đó bạn phải sao chép lại những bản ghi này vào tập dữ liệu gốc. Đây thực sự là một thiết kế mỏng manh. Ứng dụng đang thực hiện một "bản sao bóng" thay vì cập nhật dữ liệu tại chỗ. Không rõ điều gì xảy ra với các công thức chạy cùng lúc: Chúng hoạt động trên dữ liệu gốc hay bản sao bóng?

Tóm tắt: Mặc dù bề rộng của các trình kết nối dữ liệu là một mặt tích cực mạnh, nhưng bản thân kiến ​​trúc dữ liệu của PowerApps đã giao quá nhiều trách nhiệm cho người tạo ứng dụng.

So sánh, mặc dù AppSheet có ít trình kết nối dữ liệu tích hợp hơn, nhưng nền tảng này sẽ tự động cung cấp hỗ trợ ngoại tuyến, đồng bộ hóa dữ liệu, khả năng cập nhật đồng thời và hàng loạt. 

2. Quy mô: PowerApps

Các ứng dụng thường phải hoạt động với các tập dữ liệu lớn vừa phải (10.000 hàng trở lên). Trong một số trường hợp, tập dữ liệu có thể lớn hơn nhiều nhưng mỗi người dùng ứng dụng có thể chỉ cần xem một tập con nhỏ hơn của dữ liệu.

Trong PowerApps, tất cả dữ liệu được sử dụng phải được đưa đến thiết bị, do đó, để hiệu quả, nhà phát triển phải tạo bộ lọc để giảm số hàng trong mỗi bảng. Điều này được gọi là "ủy quyền" và được mô tả ở đây . PowerApps cố gắng trở nên hiệu quả với các bộ lọc ủy quyền bằng cách "đẩy" chúng vào nguồn dữ liệu. Ví dụ: nếu nguồn dữ liệu là cơ sở dữ liệu SQL, PowerApps sẽ cố gắng chuyển đổi yêu cầu thành truy vấn SQL để chỉ kết quả (hy vọng là nhỏ) được đưa trở lại thiết bị.

Tuy nhiên, có hai vấn đề với điều này:

Không phải tất cả các nguồn dữ liệu đều hỗ trợ bộ lọc. Ví dụ, nhiều bảng tính không.

Nguồn dữ liệu không hỗ trợ bộ lọc _all_.

Trong những trường hợp này, tất cả dữ liệu được đưa đến thiết bị và sau đó được lọc cục bộ. Điều này vẫn sẽ dẫn đến kết quả chính xác (mặc dù có lẽ không hiệu quả), ngoại trừ việc PowerApps giới hạn tùy ý số hàng có thể được tìm nạp trên mỗi bảng. Giới hạn là 500 hàng (mặc dù gần đây, họ đã thông báo tăng giới hạn này trong một số trường hợp lên 2.000 hàng). Điều này có tác dụng vừa tạo ra kết quả bị cắt bớt tùy ý nhưng cũng không chính xác khi có logic dựa trên dữ liệu.

Một lựa chọn thiết kế phù hợp hơn và có thể mở rộng sẽ là lọc dữ liệu tại một dịch vụ web dựa trên đám mây và sau đó gửi dữ liệu đó đến thiết bị. Trong mọi trường hợp, dữ liệu không được cắt ngắn.

Tóm tắt: Nếu bạn sử dụng PowerApps, hãy đảm bảo rằng ứng dụng của bạn sử dụng tập dữ liệu nhỏ.

Trong khi đó, các ứng dụng AppSheet có thể mở rộng đến kích thước dữ liệu lớn hơn đáng kể, chủ yếu bị giới hạn bởi dung lượng lưu trữ trên thiết bị. Cơ chế Bộ lọc Bảo mật tương tự như khái niệm "ủy quyền" của PowerApps, nhưng mạnh mẽ hơn. Cơ chế Phân vùng dữ liệu cho phép các ứng dụng có tập dữ liệu rất lớn vẫn được hỗ trợ.

3. Bảo mật: PowerApps

Ứng dụng dành cho doanh nghiệp di động phải có thể thực thi bảo mật ở hai cấp độ: (a) thông qua xác thực - tức là đăng nhập, (b) ủy quyền - ai có thể sử dụng ứng dụng và làm những gì với nó.

Trong PowerApps, xác thực được xử lý độc quyền thông qua Active Directory. Điều này là tốt vì nó tích hợp với cơ chế xác thực tiêu chuẩn được sử dụng trong nhiều tổ chức. Tuy nhiên, điều này không tốt lắm nếu bạn muốn sử dụng ứng dụng với bất kỳ ai bên ngoài tổ chức (ví dụ: nhà cung cấp, đối tác, v.v.). Điều này hóa ra là một trong những nguyên nhân chính gây ra sự không hài lòng trong cộng đồng người dùng PowerApps.

Việc ủy ​​quyền phải đơn giản và minh bạch. Đối với PowerApps, bạn ủy quyền cho các lớp người dùng khác nhau dựa trên tư cách thành viên nhóm của họ trong Active Directory. Tự bản thân, đây là thiết kế âm thanh nếu PowerApps xử lý nó một cách nguyên bản. Tuy nhiên, để thực hiện logic ủy quyền này, bạn sẽ phải viết mã phức tạp như được mô tả ở đây . Bạn thiết lập trình kết nối dữ liệu tùy chỉnh Active Directory. Sau đó, bạn kéo dữ liệu thành viên nhóm theo cách thủ công vào ứng dụng dưới dạng bảng cục bộ. Sau đó, bạn kiểm tra dữ liệu này để xem liệu một nhóm cụ thể có hiện diện hay không và người dùng hiện tại có phải là một phần của nhóm này hay không. Vì vậy, trên thực tế, các nhóm và vai trò hoàn toàn không được sử dụng như một mô hình bảo mật. Thay vào đó, mô hình bảo mật được mã của bạn triển khai và có thể có sơ hở nếu mã của bạn không chính xác.

Tóm tắt: Bảo mật nên được tích hợp vào nền tảng hơn là được củng cố thông qua mã.

Ngược lại, nền tảng AppSheet coi bảo mật như một khái niệm hạng nhất. Các ứng dụng có thể yêu cầu đăng nhập nhưng người dùng có thể ở trong cùng một miền hoặc bên ngoài miền. Không cần viết mã thủ tục liên quan đến việc thiết lập hoặc thực thi bảo mật. Người tạo ứng dụng có quyền kiểm soát bảo mật dữ liệu ở cấp hàng và cũng có thể kiểm soát các hành động ở cấp hàng. Các biện pháp kiểm soát bảo mật này có thể có điều kiện và theo hướng dữ liệu để cung cấp các tùy chọn bảo mật động phong phú.

4. Tùy chỉnh hành vi ứng dụng: PowerApps

Hầu hết các ứng dụng yêu cầu các hành vi động có thể được tùy chỉnh bởi người tạo ứng dụng. Trong nền tảng ứng dụng không mã, bạn nên mong đợi các mẫu hành vi phổ biến dễ diễn đạt một cách dễ hiểu và hợp lý.

PowerApps cung cấp hai cơ chế để kiểm soát các hành vi động --- công thức kiểu bảng tính và mã thủ tục. Các công thức được sử dụng rộng rãi trong PowerApps và chúng cung cấp một cơ chế khai báo mạnh mẽ cho hành vi. Chúng tôi thực sự thích và chấp thuận sự lựa chọn thiết kế này! Khi các công thức được sử dụng, chúng tuân theo tinh thần của một nền tảng không mã.

Tuy nhiên, khi mã được sử dụng, nó thường dẫn đến các hành vi giòn và không rõ ràng. Đây là hai ví dụ:

Liên kết sâu là một khái niệm phổ biến được sử dụng để khởi chạy một ứng dụng ở một trạng thái cụ thể. Ví dụ: một ứng dụng bán hàng có thể được khởi chạy với một liên kết sâu đến hồ sơ khách hàng cụ thể. Trong PowerApps, điều này không dễ kiểm soát. Cách để thực hiện việc này là thêm một tham số truy vấn tùy ý vào một liên kết, sau đó thêm bộ hẹn giờ onStart vào ứng dụng tìm kiếm tham số truy vấn này và nếu có, hãy gọi hàm Navigate () để chuyển đến một màn hình / chế độ xem cụ thể. Nói cách khác, bạn thiết kế các liên kết sâu của riêng mình và bạn tự triển khai chúng bằng mã.

Biểu mẫu thu thập dữ liệu thường có logic tùy chỉnh xác định cách điền trước một hàng mới, cách phân nhánh dựa trên câu trả lời ban đầu, v.v. Hầu hết các trình tạo biểu mẫu cung cấp cơ chế cấp cao đơn giản để xác định logic đó. Trong PowerApps, điều này phải được thực hiện bằng mã. Mỗi biểu mẫu có một số sự kiện khác nhau được xác định và mỗi sự kiện cần mã tùy chỉnh để kiểm soát hành vi.

Tóm tắt: Chúng tôi thực sự thích sự nhấn mạnh vào các công thức mặc dù phần mở rộng mã thủ tục làm cho mọi thứ trở nên phức tạp.

Nền tảng AppSheet cũng chấp nhận việc sử dụng các công thức kiểu bảng tính một cách tương tự. Trên thực tế, nếu có, các công thức trong AppSheet mạnh hơn và phổ biến hơn, kiểm soát các cột được tính toán, logic biểu mẫu, bản địa hóa, hành động, quy tắc quy trình làm việc và hơn thế nữa.

5. Tính linh hoạt của giao diện người dùng: PowerApps

Tất nhiên, bạn cần có thể chọn và định cấu hình giao diện người dùng thân thiện với thiết bị di động cho ứng dụng của mình.

Một số mẫu hiển thị tiêu chuẩn thực sự dễ dàng trong PowerApps. Ví dụ: bài viết này hướng dẫn cách sử dụng điều khiển Thư viện. Rất tiếc là không có kiểm soát bản đồ, đó là một hạn chế nghiêm trọng tại thời điểm này.

Các bố cục mặc định có thể được tùy chỉnh thông qua trình chỉnh sửa kéo và thả. Mặc dù điều này tăng thêm tính linh hoạt, nhưng nó cũng trở thành trách nhiệm của người tạo ứng dụng khi đó để đảm bảo rằng bố cục mới hoạt động tốt trên các hệ số dạng thiết bị khác nhau.

Bạn cũng có thể xác định các điều khiển tùy chỉnh của riêng mình, nhưng mặc dù điều này nghe có vẻ mạnh mẽ, nhưng hóa ra nó lại là một _lot_ mã tùy chỉnh cho các chức năng cơ bản. Bài viết này mô tả cách tạo hộp thoại xác nhận cho thao tác Xóa.

Bạn phải xây dựng mọi yếu tố của nó, bố trí nó và sau đó kết nối các sự kiện. Cũng giống như trong Visual Basic. Bạn phải xác định cách kết nối nó với tìm kiếm, với sắp xếp, cách làm nổi bật mục hiện tại, v.v. Và bạn phải tạo kiểu riêng cho iOS và Android. Đó là một lượng nỗ lực vô lý cho một hộp thoại xác nhận.

Tóm lại: Sự linh hoạt tiếp thêm sức mạnh nhưng mất rất nhiều công sức.

Nền tảng AppSheet đưa ra quyết định khác một cách có ý thức. Người dùng có thể chọn và định cấu hình các mẫu hiển thị rộng, nhưng không thể bố trí các phần tử hiển thị riêng lẻ. Mặc dù điều này kém linh hoạt hơn nhưng nền tảng này có thể đảm bảo hành vi và hiệu suất nhất quán trên nhiều loại hình thức khác nhau.

6. Môi trường tác giả

PowerApps cung cấp môi trường tác giả với trình giả lập để xem ứng dụng của bạn khi nó đang được xây dựng. Mặc dù môi trường mạnh mẽ về những gì nó có thể làm, nhưng nó rất phức tạp đối với người dùng mới. Điều đáng quan tâm là nó cũng rất chậm và những vấn đề về hiệu suất này là nguyên nhân gây ra sự không hài lòng đáng kể trong diễn đàn người dùng PowerApps.

Tóm tắt: Môi trường tác giả dành cho người tạo ứng dụng phải trực quan và hiệu quả. Cải tiến hiệu suất sẽ nâng cao trải nghiệm đáng kể.

Ngược lại, môi trường tác giả của nền tảng AppSheet tích hợp các khả năng đầu cuối của việc tạo, triển khai và quản lý ứng dụng vào một trang tổng quan thông minh duy nhất đề xuất các bước tiếp theo, xác định cơ hội và hướng người dùng đến kết quả thành công.

Tóm tắt: PowerApps

PowerApps là một nền tảng đang phát triển. Mặc dù chúng tôi mong đợi một số khía cạnh sẽ được cải thiện, nhưng một số quyết định về kiến ​​trúc cốt lõi đã được đưa ra và sẽ khó thay đổi. Mặc dù các ứng dụng đơn giản có thể được xây dựng theo cách không mã, nhưng nó là một khuôn khổ hơn cho các kỹ sư phần mềm để xây dựng ứng dụng bằng cách viết các đoạn mã theo cách cách điệu.

Kiến trúc và quy mô dữ liệu là những vấn đề được quan tâm nghiêm túc và chúng tôi không tin rằng những lo ngại này sẽ giảm xuống trong các phiên bản tiếp theo. Chúng là hệ quả trực tiếp của các lựa chọn kiến ​​trúc của nền tảng.

Mô hình bảo mật hiện có những hạn chế, nhưng những vấn đề này có thể được giải quyết.

Mô hình hành vi dựa trên các công thức kiểu bảng tính cho đến nay là khía cạnh tốt nhất của thiết kế nền tảng. Nếu Microsoft tiếp tục cải tiến khía cạnh này của nền tảng, điều đó sẽ nâng cao nền tảng. Tuy nhiên, các tiện ích mở rộng hành vi dựa trên mã có vẻ khó hiểu nhất.

Mô hình giao diện người dùng cung cấp tiềm năng cho giao diện người dùng phong phú và linh hoạt. Trong các phiên bản tiếp theo của nền tảng này, chúng tôi hy vọng sẽ thấy nhiều phần tử giao diện người dùng tiêu chuẩn hơn được giới thiệu để người tạo ứng dụng không phải viết mã cho các mẫu giao diện người dùng phổ biến.

Cuối cùng, môi trường tác giả là chậm chạp và phức tạp không cần thiết.

Khi bạn đánh giá thêm về PowerApps, hãy đảm bảo xem xét các bài đánh giá sản phẩm như sau:

https://www.g2crowd.com/products/powerapps/reviews

https://www.microsoft.com/en-us/store/p/powerapps/9nblggh5z8f3

https://play.google.com/store/apps/details?id=com.microsoft.msapps&hl=vi

Ngoài ra, hãy đọc các nghiên cứu điển hình như bài viết này từ bộ phận CNTT của Microsoft mô tả cách họ xây dựng các ứng dụng nội bộ với PowerApps. Họ sử dụng toàn bộ nhà phát triển và nhóm thiết kế cũng như quy trình thiết kế thác nước để xây dựng các ứng dụng này. Mặc dù họ đã thành công, nhưng tôi tin rằng đó là sự phản ánh chân thực của sản phẩm và nó nhắm đến nhóm phát triển dựa trên CNTT truyền thống hơn là một nhà phát triển công dân. 

Bạn cũng nên xem xét các lựa chọn thay thế. Hầu hết các ứng dụng dành cho thiết bị di động mà bạn có thể tạo trên PowerApps đều được xây dựng dễ dàng trên các nền tảng không mã khác như AppSheet hoặc trên các nền tảng mã thấp như Mendix hoặc OutSystems. Nếu bạn tìm thấy những đánh giá tích cực và những khách hàng hài lòng cho một nền tảng ứng dụng khác, bạn có thể đã nhầm. Chúc may mắn và gặt hái được nhiều thành công trong quá trình tạo ứng dụng của bạn.

Tóm tắt: AppSheet

Công nghệ cốt lõi trong AppSheet khác với PowerApps ở một điểm đáng kể --- nó chắc chắn là "không có mã". Nền tảng hiểu được mọi thứ mà người tạo ứng dụng cụ thể. Mặc dù điều này hạn chế một số tính linh hoạt, nhưng nó cho phép nền tảng thông minh, hướng dẫn và trợ giúp người tạo ứng dụng. Điều này phản ánh lợi ích đáng kể về tính đơn giản và năng suất.

P/S: blog.appsheet.com

Liên hệ

Tên

Email *

Thông báo *