Khi nào nên sử dụng Xamarin.Forms vs Xamarin Native? [đóng cửa]


159

Tôi cần đưa ra quyết định giữa việc sử dụng Xamarin.Forms vs Xamarin bản địa để phát triển một ứng dụng.

Tôi muốn đi với Xamarin.Forms vì mã UI cũng sẽ được chia sẻ.

Vì vậy, những mặt tích cực và tiêu cực của việc sử dụng Xamarin.Forms so với Xamarin Native là gì?


1
Hãy xem Sự phát triển tốt và xấu của Xamarin Mobile cho một cuộc thảo luận tuyệt vời vào tháng 1 năm 2017.
Oliver

1
Dòng dưới cùng ... Chỉ cần đi cho bản địa! Tôi đang nói điều này dựa trên kinh nghiệm của chính tôi. Tôi đã viết lại mẫu đơn cho người bản xứ.
Tejasvi Hegde

2
Nhận xét từ năm 2015 không còn phản ánh đúng thực tế của Xamarin Forms. Nó đã đi được một chặng đường dài và dường như bùng nổ sau khi .NET Core \ Standard trưởng thành.
Sean Anderson

Câu hỏi này cần phải được mở lại. Nó đã được 4 năm tuổi và đã có những phát triển lớn trong khuôn khổ Xamarin.Forms để cho phép phát triển các ứng dụng doanh nghiệp.
James Mallon

Câu trả lời:


144

Ngoài các điểm được hiển thị trong Trang web Xamarin, bạn cũng nên xem xét:

Nền của nhóm bạn

Có ai trong nhóm của bạn có kinh nghiệm mã hóa trước đây cho Android hoặc iOS (sử dụng Java hoặc Obj-C / Swift) không? Trải nghiệm này được sử dụng lại trong Xamarin bản địa, nhưng họ sẽ phải học một nền tảng khác để viết mã trong Biểu mẫu.

Điều tương tự cũng đúng nếu họ không biết gì về iOS / Android nhưng biết một số XAML. Chắc chắn Xamarin.Forms khác với WPF / Silverlight, nhưng biết XAML chắc chắn đã giúp tôi sử dụng Forms.

Hiệu suất

Xamarin Forms vẫn có một số vấn đề, chẳng hạn như thời gian khởi tạo. Bạn nên xem xét liệu điều này có phải là vấn đề cho người dùng cuối cùng của bạn hay không. Tôi sẽ không chờ đợi một thời gian cho một ứng dụng bảng điều khiển mà tôi sử dụng một lần để mở, nhưng tôi sẽ tức giận nếu điều tương tự xảy ra với một ứng dụng nhắn tin.

Thời gian đến khi giao hàng

Vì việc chia sẻ mã lớn hơn khi sử dụng Biểu mẫu, bạn có thể mong đợi thời gian giao hàng nhanh hơn.

Độ phức tạp của ứng dụng của bạn

Xem xét điểm trước đó, sử dụng Biểu mẫu bạn có thể vấp phải một số lỗi hiển thị nút chặn (rốt cuộc đó là một công nghệ rất mới) sẽ vô hiệu hóa thời gian tăng. Hãy xem xét sự phức tạp của ứng dụng của bạn trước khi lựa chọn.


2
Tôi sẽ thêm vào điều này nếu bạn mong muốn có ứng dụng đẹp mắt, cuối cùng bạn sẽ có rất nhiều giao diện tùy chỉnh với mã Xamarin Native cho mỗi nền tảng
Roman Nazarevych

2
Câu trả lời và nhận xét ở trên là quá cũ. Hiệu suất không phải là một vấn đề lớn ngày hôm nay nếu bạn kích hoạt AOT. liên quan đến ứng dụng ưa nhìn trong bình luận cũng không đúng. hình thức xamarin được cải thiện và bạn có thể đạt được các ứng dụng ưa nhìn một cách dễ dàng.
batmaci

Xamarin Forms không được cải thiện nhiều về việc có được giao diện người dùng dễ nhìn. Xamarin.Shell sẽ có những cải tiến lớn về vấn đề đó, nhưng cho đến nay, Xamarin vẫn khó có được bất cứ điều gì hấp dẫn từ xa mà không cần viết các thành phần tùy chỉnh cho mỗi nền tảng.
Alexander

176

Xamarin.

Ưu

  • Tạo một giao diện người dùng cho tất cả các nền tảng
  • Sử dụng các thành phần cơ bản có sẵn trên tất cả các nền tảng (như Nút, Trường văn bản, Spinners, v.v.)
  • Không cần phải học tất cả các khung UI gốc
  • Quá trình phát triển đa nền tảng nhanh
  • Trình kết xuất gốc tùy chỉnh cung cấp cho bạn khả năng điều chỉnh giao diện và cảm giác của điều khiển

Nhược điểm

  • Đây vẫn là một khung công tác mới và vẫn chứa các lỗi
  • Đặc biệt Windows RT vẫn chưa ổn định
  • Đôi khi chậm hơn so với truy cập trực tiếp vào điều khiển gốc
  • Trình kết xuất gốc tùy chỉnh có ranh giới và được ghi lại kém

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Ưu

  • Tạo một giao diện người dùng trên mỗi nền tảng
  • Khả năng dễ dàng điều chỉnh các tính năng và thành phần UI cụ thể của nền tảng
  • Tận dụng tối đa giao diện người dùng của bạn

Nhược điểm

  • Quá trình phát triển đa nền tảng chậm hơn nhiều
  • Bạn cần học tất cả các khung UI gốc
  • Bạn có thể dẫn đến việc có mã trùng lặp (như bạn mô tả gần như cùng một giao diện người dùng theo ba cách cụ thể nền tảng khác nhau)

Ngoài ra, Xamarin còn nói trên https://xamarin.com/forms :

Phương pháp Xamarin nào là tốt nhất cho ứng dụng của bạn?

Xamarin.Forms là tốt nhất cho:

  • Ứng dụng nhập dữ liệu
  • Nguyên mẫu và bằng chứng về khái niệm
  • Các ứng dụng yêu cầu ít chức năng dành riêng cho nền tảng
  • Ứng dụng chia sẻ mã quan trọng hơn giao diện người dùng tùy chỉnh

Xamarin.iOS & Xamarin.Android là tốt nhất cho:

  • Ứng dụng yêu cầu tương tác chuyên biệt
  • Ứng dụng có thiết kế bóng bẩy
  • Các ứng dụng sử dụng nhiều API dành riêng cho nền tảng
  • Ứng dụng có UI tùy chỉnh quan trọng hơn chia sẻ mã

Liên quan đến "các ứng dụng yêu cầu ít chức năng dành riêng cho nền tảng", có ví dụ nào để hiểu về loại chức năng mà chúng ta đang nói đến không?
NS.X.

Chức năng nền tảng nhỏ có nghĩa là bạn đang thực hiện ràng buộc dữ liệu và các quy tắc kinh doanh khác chủ yếu dưới dạng ứng dụng. Không có nhiều bản vẽ tùy chỉnh, hoặc cố gắng để hiển thị mọi thứ pixel hoàn hảo. Nếu bạn ổn với bố cục phổ biến là đáp ứng, thì Xamarin.Forms là một lựa chọn phù hợp.
Jason Short

Câu trả lời tốt nhất theo ý kiến ​​của tôi. Điều này đã xóa nó cho tôi: "Xamarin.Forms: Tạo một UI cho tất cả các nền tảng" và "Xamarin.iOS, Xamarin.Android: Tạo một UI cho mỗi nền tảng". Cảm ơn!
Tadej

1
@Dibzmania Tôi chưa bao giờ nói nó chỉ phù hợp với các nguyên mẫu và ứng dụng cơ bản. Nếu bạn muốn có một ứng dụng đa nền tảng với giao diện người dùng gần như giống hệt nhau trên mỗi nền tảng thì Xamarin.Forms là tuyệt vời. Nếu bạn muốn có UI tùy chỉnh trên mỗi nền tảng thì có lẽ bạn sẽ không được hưởng lợi từ Xamarin.Forms và nên sử dụng các thư viện UI gốc thay thế.
Wosi

1
Tôi nghĩ rằng bài viết này của Nathan Williams rất hữu ích: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Từ trang web Xamarin

Xamarin.Forms là tốt nhất cho:

  • Ứng dụng nhập dữ liệu
  • Nguyên mẫu và bằng chứng về khái niệm
  • Các ứng dụng yêu cầu ít chức năng dành riêng cho nền tảng
  • Ứng dụng chia sẻ mã quan trọng hơn giao diện người dùng tùy chỉnh

Xamarin.iOS & Xamarin.Android là tốt nhất cho:

  • Ứng dụng yêu cầu tương tác chuyên biệt

  • Ứng dụng có thiết kế bóng bẩy

  • Các ứng dụng sử dụng nhiều API dành riêng cho nền tảng

  • Ứng dụng có UI tùy chỉnh quan trọng hơn chia sẻ mã


1
Câu trả lời này đã cũ / cũ. Sử dụng các hình thức với lăng kính. Kinh nghiệm thú vị. Tôi là một nhà phát triển duy nhất xây dựng một ứng dụng khổng lồ và tôi rất năng suất và ứng dụng của tôi chỉ hoạt động trên mọi thứ. Nếu bạn muốn các ứng dụng có giao diện tuyệt đẹp, có nhiều chế độ xem của bên thứ ba như Grial UI Kit (hãy xem trình xem trước trực tiếp XAML miễn phí của họ). Hãy nhớ rằng, Xamarin Forms vẫn sử dụng các điều khiển gốc theo mặc định.
Sean Anderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.