Xamarin.Forms vs Xamarin Native ne zaman kullanılır? [kapalı]


160

Bir uygulama geliştirmek için Xamarin.Forms vs Xamarin yerli kullanma arasında bir karar vermeliyim.

UI kodu da paylaşılacağı için Xamarin.Forms ile gitmek istiyorum.

Peki Xamarin.Forms'u Xamarin Native üzerinden kullanmanın teknik olumlu ve olumsuz yönleri nelerdir?


1
Ocak 2017 itibariyle mükemmel bir tartışma için Xamarin Mobil Geliştirmenin İyi ve Kötülerine bir göz atın .
Oliver

1
Alt satırda ... Sadece Native'a gidin! Bunu kendi deneyimlerime dayanarak söylüyorum. Native için formlar uygulamasını yeniden yazdım.
Tejasvi Hegde

2
2015'teki yorumlar artık Xamarin Formlarının gerçekliğini yansıtmıyor. Uzun bir yol kat etti ve .NET Core \ Standard olgunlaştıktan sonra patladı gibi görünüyor.
Sean Anderson

Bu sorunun yeniden açılması gerekiyor. Şu anda 4 yaşında ve Xamarin.Forms çerçevesinde kurumsal uygulamaların geliştirilmesini sağlamak için büyük gelişmeler oldu.
James Mallon

Yanıtlar:


144

Xamarin Web sitesinde gösterilen noktaların yanı sıra şunları da göz önünde bulundurmalısınız:

Ekibinizin geçmişi

Ekibinizdeki herhangi birinin Android veya iOS için yerel olarak kodlama konusunda daha önceki bir deneyimi var mı (Java veya Obj-C / Swift kullanarak)? Bu deneyim yerel Xamarin'de yeniden kullanılıyor, ancak Formlar'da kodlamak için başka bir platform öğrenmek zorunda kalacaklar.

Aynı şey iOS / Android hakkında hiçbir şey bilmiyor, ancak bazı XAML biliyorsa da geçerlidir. Elbette Xamarin.Forms, WPF / Silverlight'tan farklıdır, ancak XAML'yi bilmek kesinlikle Formları kullanmama yardımcı oldu.

Verim

Xamarin Forms'un başlatma zamanı gibi bazı sorunları var. Bunun son kullanıcınız için bir sorun olup olmayacağını düşünmelisiniz. Açmak için arada bir kullandığım bir pano uygulaması için bir süre beklemek zahmet etmem, ancak aynı şey bir mesajlaşma uygulamasına da olsaydı kızgın olurdum.

Teslimat süresi

Formlar kullanılırken kod paylaşımı daha büyük olduğundan, daha hızlı teslimat süresi bekleyebilirsiniz.

Uygulamanızın karmaşıklığı

Önceki noktayı göz önünde bulundurarak, Formlar'ı kullanarak zaman kazanımlarını geçersiz kılacak bazı gösteri durdurucu hatalarına (sonuçta çok yeni bir teknoloji) rastlayabilirsiniz. Seçim yapmadan önce uygulamanızın karmaşıklığını göz önünde bulundurun.


2
Eğer iyi görünümlü bir uygulama bekliyorsanız buna ekleyeceğim Her platform için Xamarin Native kodu ile çok sayıda özel arayüze sahip olacaksınız
Roman Nazarevych

2
bu cevap ve yukarıdaki yorum süper çok eski. AOT'yi etkinleştirirseniz, performans bugün büyük bir sorun değildir. yorumda iyi görünümlü uygulaması ile ilgili de doğru değil. xamarin formları geliştirildi ve iyi görünümlü uygulamaları kolayca elde edebilirsiniz.
batmaci

Xamarin Forms, iyi görünümlü bir kullanıcı arayüzü elde etmek açısından pek gelişmedi. Xamarin.Shell bu konuda büyük iyileştirmeler yapacak, ancak şu anda Xamarin, her platform için özel bileşenler yazmadan uzaktan çekici bir şey elde etmek hala zor.
İskender

176

Xamarin.Forms

Artıları

  • Tüm platformlar için bir kullanıcı arayüzü oluşturun
  • Tüm platformlarda bulunan temel bileşenleri kullanın (Düğmeler, Metin Alanları, Eğiriciler vb.)
  • Tüm yerel kullanıcı arayüzü çerçevelerini öğrenmeye gerek yok
  • Hızlı platformlar arası geliştirme süreci
  • Özel yerel oluşturucular, kontrollerin görünümünü ve hissini ayarlamanıza olanak tanır

Eksileri

  • Hala yeni bir çerçeve ve hala hata içeriyor
  • Özellikle Windows RT henüz kararlı değil
  • Bazen yerel denetimlere doğrudan erişmekten daha yavaştır
  • Özel yerel oluşturucuların sınırları vardır ve belgelendirmeleri yetersizdir

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

Artıları

  • Platform başına bir kullanıcı arayüzü oluşturun
  • Platforma özel UI özelliklerini ve bileşenlerini ayarlamak için kolay yetenek
  • Kullanıcı arayüzünüzden maksimum düzeyde yararlanın

Eksileri

  • Platformlar arası geliştirme süreci çok daha yavaş
  • Tüm yerel kullanıcı arayüzü çerçevelerini öğrenmeniz gerekir
  • Yinelenen kodlara neden olabilirsiniz (neredeyse aynı kullanıcı arayüzünü platforma özgü üç farklı şekilde açıkladığınız gibi)

Buna ek olarak Xamarin, https://xamarin.com/forms adresinde diyor :

Uygulamanız için hangi Xamarin yaklaşımı en iyisidir?

Xamarin.Forms en iyisi:

  • Veri girişi uygulamaları
  • Prototipler ve kavram kanıtları
  • Platforma özgü çok az işlev gerektiren uygulamalar
  • Kod paylaşımının özel kullanıcı arayüzünden daha önemli olduğu uygulamalar

Xamarin.iOS & Xamarin.Android en iyisi:

  • Özelleştirilmiş etkileşimler gerektiren uygulamalar
  • Cilalı tasarıma sahip uygulamalar
  • Platforma özgü birçok API kullanan uygulamalar
  • Özel kullanıcı arayüzünün kod paylaşımından daha önemli olduğu uygulamalar

"Platforma özgü çok az işlevsellik gerektiren uygulamalar" ile ilgili olarak, ne tür işlevselliklerden bahsettiğimize dair örnekler var mı?
NS.X.

Küçük platform işlevselliği, öncelikle uygulama olarak veri bağlama ve diğer iş kurallarını yaptığınız anlamına gelir. Çok fazla özel çizim veya her şeyi piksel mükemmel hale getirmek için çalışıyor. Duyarlı ortak bir düzen ile Tamam, o zaman Xamarin.Forms iyi bir seçimdir.
Jason Short

Bence en iyi cevap. Bu benim için temizledi: "Xamarin.Forms: Tüm platformlar için bir kullanıcı arayüzü oluştur" ve "Xamarin.iOS, Xamarin.Android: Platform başına bir kullanıcı arayüzü oluştur". Teşekkürler!
Tadej

1
@Dibzmania Asla sadece prototipler ve temel uygulamalar için uygun olduğunu söylemedim. Her platformda neredeyse aynı UI'ye sahip bir çapraz platform uygulamasına sahip olmak istiyorsanız, Xamarin.Forms harika. Platform başına özel bir kullanıcı arayüzüne sahip olmak istiyorsanız, muhtemelen Xamarin.Forms uygulamasından yararlanamayacaksınız ve bunun yerine yerel kullanıcı arayüzü kitaplıklarını kullanmalısınız.
Wosi

1
Nathan Williams'ın bu makalesinin yararlı olduğunu düşünüyorum: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Gönderen Xamarin Sitesi

Xamarin.Forms en iyisi:

  • Veri girişi uygulamaları
  • Prototipler ve kavram kanıtları
  • Platforma özgü çok az işlev gerektiren uygulamalar
  • Kod paylaşımının özel kullanıcı arayüzünden daha önemli olduğu uygulamalar

Xamarin.iOS & Xamarin.Android en iyisi:

  • Özelleştirilmiş etkileşimler gerektiren uygulamalar

  • Cilalı tasarıma sahip uygulamalar

  • Platforma özgü birçok API kullanan uygulamalar

  • Özel kullanıcı arayüzünün kod paylaşımından daha önemli olduğu uygulamalar


1
Bu cevap bayat / eskidir. Prizmalı Formlar kullanın. Eğlenceli deneyim. Büyük bir uygulama oluşturan tek bir geliştiriciyim ve çok üretkenim ve uygulamam her şey üzerinde çalışıyor. Çarpıcı görünümlü uygulamalar istiyorsanız, Grial UI Kit (ücretsiz XAML canlı önizleyicilerine göz atın) gibi çeşitli üçüncü taraf görünümleri vardır. Unutmayın, Xamarin Forms hala varsayılan olarak yerel denetimleri kullanır.
Sean Anderson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.