Kiedy używać Xamarin.Forms, a kiedy Xamarin Native? [Zamknięte]


159

Muszę podjąć decyzję między używaniem Xamarin.Forms vs Xamarin Native do tworzenia aplikacji.

Chcę korzystać z Xamarin.Forms, ponieważ kod interfejsu użytkownika również zostanie udostępniony.

Jakie są więc techniczne zalety i wady korzystania z platformy Xamarin.Forms w porównaniu z Xamarin Native?


1
Zapoznaj się z dobrymi i złymi rozwiązaniami Xamarin Mobile Development, aby uzyskać doskonałą dyskusję od stycznia 2017 r.
Oliver

1
Konkluzja ... Po prostu wybierz Native! Mówię to na podstawie własnego doświadczenia. Ponownie napisałem aplikację formularzy na Native.
Tejasvi Hegde

2
Komentarze z 2015 roku nie odzwierciedlają już rzeczywistości Xamarin Forms. Przeszedł długą drogę i wydaje się, że eksplodował po dojrzewaniu .NET Core \ Standard.
Sean Anderson

To pytanie musi zostać ponownie otwarte. Ma już 4 lata i wprowadzono ogromne zmiany w ramach platformy Xamarin.Forms, aby umożliwić tworzenie aplikacji dla przedsiębiorstw.
James Mallon

Odpowiedzi:


144

Oprócz punktów przedstawionych w witrynie Xamarin należy również wziąć pod uwagę:

Tło Twojego zespołu

Czy ktoś w Twoim zespole ma doświadczenie w kodowaniu natywnym dla systemu Android lub iOS (przy użyciu języka Java lub Obj-C / Swift)? To doświadczenie jest ponownie używane w natywnej platformie Xamarin, ale będą musieli nauczyć się innej platformy do kodowania w Forms.

To samo dotyczy sytuacji, gdy nie wiedzą nic o systemie iOS / Android, ale znają trochę XAML. Oczywiście Xamarin.Forms różnią się od WPF / Silverlight, ale znajomość języka XAML z pewnością pomogła mi w korzystaniu z Formularzy.

Występ

Xamarin Forms nadal ma pewne problemy, takie jak czas inicjalizacji. Zastanów się, czy będzie to problem dla użytkownika końcowego. Nie zawracałbym sobie głowy czekaniem, aż aplikacja pulpitu nawigacyjnego, której używam od czasu do czasu, by się otworzyć, ale byłbym zły, gdyby to samo stało się z aplikacją do przesyłania wiadomości.

Czas do dostawy

Ponieważ udostępnianie kodu jest większe podczas korzystania z Formularzy, możesz spodziewać się szybszego czasu dostawy.

Złożoność Twojej aplikacji

Biorąc pod uwagę poprzedni punkt, używając Formularzy możesz natknąć się na błąd zatrzymujący pokaz (w końcu jest to bardzo nowa technologia), który zniweluje zyski czasu. Przed dokonaniem wyboru rozważ złożoność swojej aplikacji.


2
Dodam do tego, jeśli spodziewasz się dobrze wyglądającej aplikacji, w końcu będziesz mieć wiele niestandardowych interfejsów z kodem Xamarin Native dla każdej platformy
Roman Nazarevych

2
ta odpowiedź i komentarz powyżej są zbyt stare. Wydajność nie jest dziś dużym problemem, jeśli włączysz AOT. co do dobrze wyglądającej aplikacji w komentarzu również nie jest prawdą. Xamarin formularze zostały ulepszone i możesz łatwo uzyskać dobrze wyglądające aplikacje.
batmaci

Xamarin Forms nie poprawił się zbytnio pod względem łatwego uzyskiwania dobrze wyglądającego interfejsu użytkownika. Xamarin.Shell wprowadzi duże ulepszenia w tym względzie, ale na razie Xamarin nadal trudno jest uzyskać coś atrakcyjnego zdalnie bez pisania niestandardowych komponentów dla każdej platformy.
Alexander

176

Xamarin.Forms

Plusy

  • Utwórz jeden interfejs użytkownika dla wszystkich platform
  • Korzystaj z podstawowych komponentów dostępnych na wszystkich platformach (takich jak przyciski, pola tekstowe, pokrętła itp.)
  • Nie musisz uczyć się wszystkich natywnych struktur interfejsu użytkownika
  • Szybki proces tworzenia wielu platform
  • Niestandardowe natywne programy renderujące umożliwiają dostosowanie wyglądu i wrażenia z działania elementów sterujących

Cons

  • To wciąż nowy framework i nadal zawiera błędy
  • Zwłaszcza Windows RT nie jest jeszcze stabilny
  • Czasami jest to wolniejsze niż bezpośredni dostęp do natywnych formantów
  • Niestandardowe natywne programy renderujące mają granice i są słabo udokumentowane

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

Plusy

  • Utwórz jeden interfejs użytkownika na platformę
  • Łatwa możliwość dostosowania funkcji i komponentów interfejsu użytkownika specyficznych dla platformy
  • Wykorzystaj maksymalnie swój interfejs użytkownika

Cons

  • Proces rozwoju międzyplatformowego jest znacznie wolniejszy
  • Musisz nauczyć się wszystkich natywnych struktur interfejsu użytkownika
  • Może to spowodować zduplikowany kod (ponieważ opisujesz prawie ten sam interfejs użytkownika na trzy różne sposoby specyficzne dla platformy)

Oprócz tego Xamarin mówi na https://xamarin.com/forms :

Które podejście platformy Xamarin jest najlepsze dla Twojej aplikacji?

Xamarin.Forms jest najlepszy dla:

  • Aplikacje do wprowadzania danych
  • Prototypy i dowody słuszności koncepcji
  • Aplikacje wymagające niewielkiej funkcjonalności specyficznej dla platformy
  • Aplikacje, w których udostępnianie kodu jest ważniejsze niż niestandardowy interfejs użytkownika

Xamarin.iOS i Xamarin.Android są najlepsze dla:

  • Aplikacje wymagające wyspecjalizowanych interakcji
  • Aplikacje o bardzo dopracowanym designie
  • Aplikacje korzystające z wielu interfejsów API specyficznych dla platformy
  • Aplikacje, w których niestandardowy interfejs użytkownika jest ważniejszy niż udostępnianie kodu

Jeśli chodzi o „aplikacje, które wymagają niewielkich funkcji specyficznych dla platformy”, czy są przykłady, które pozwalają zorientować się, o jakich funkcjach mówimy?
NS.X.

Niewielka funkcjonalność platformy oznacza, że ​​wykonujesz powiązanie danych i inne reguły biznesowe głównie jako aplikacja. Niezbyt wiele niestandardowych rysunków lub próba renderowania wszystkiego co do piksela. Jeśli nie przeszkadza Ci wspólny układ, który jest responsywny, Xamarin.Forms jest dobrym rozwiązaniem.
Jason Short

Moim zdaniem najlepsza odpowiedź. To wyjaśniło to dla mnie: „Xamarin.Forms: Utwórz jeden interfejs użytkownika dla wszystkich platform” i „Xamarin.iOS, Xamarin.Android: Utwórz jeden interfejs użytkownika na platformę”. Dzięki!
Tadej

1
@Dibzmania Nigdy nie powiedziałem, że nadaje się tylko do prototypów i podstawowych aplikacji. Jeśli chcesz mieć aplikację wieloplatformową z prawie identycznym interfejsem użytkownika na każdej platformie, Xamarin.Forms jest świetny. Jeśli chcesz mieć niestandardowy interfejs użytkownika na platformę, prawdopodobnie nie odniesiesz korzyści z Xamarin.Forms i zamiast tego powinieneś użyć natywnych bibliotek interfejsu użytkownika.
Wosi

1
Myślę, że ten artykuł Nathana Williamsa jest przydatny: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Z witryny internetowej Xamarin

Xamarin.Forms jest najlepszy dla:

  • Aplikacje do wprowadzania danych
  • Prototypy i dowody słuszności koncepcji
  • Aplikacje wymagające niewielkiej funkcjonalności specyficznej dla platformy
  • Aplikacje, w których udostępnianie kodu jest ważniejsze niż niestandardowy interfejs użytkownika

Xamarin.iOS i Xamarin.Android są najlepsze dla:

  • Aplikacje wymagające wyspecjalizowanych interakcji

  • Aplikacje o bardzo dopracowanym designie

  • Aplikacje korzystające z wielu interfejsów API specyficznych dla platformy

  • Aplikacje, w których niestandardowy interfejs użytkownika jest ważniejszy niż udostępnianie kodu


1
Ta odpowiedź jest nieaktualna / stara. Użyj formularzy z pryzmatem. Przyjemne doświadczenie. Jestem samotnym programistą tworzącym ogromną aplikację i jestem bardzo produktywny, a moja aplikacja po prostu działa na wszystkim. Jeśli chcesz uzyskać oszałamiająco wyglądające aplikacje, dostępne są różne widoki innych firm, takie jak Grial UI Kit (sprawdź ich darmowy podgląd na żywo XAML). Pamiętaj, że Xamarin Forms nadal domyślnie używa natywnych formantów.
Sean Anderson
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.