Xamarin不會神奇地製作一個應用程序,你爲Android編寫應用程序,在iOS上運行。至少不是沒有創建一個iOS應用程序和所有的UI等等。
藉助Xamarin,您可以創建原生應用程序,只需用C#代替Java或Objective-C或Swift編寫。
那麼爲什麼選擇Xamarin?它使您能夠共享批號的代碼。根據您構建代碼的方式,有些應用程序可以實現90%以上的共享代碼或更多。不過,這個應用程序與應用程序有很大的不同,不同的是你是否使用Xamarin.Forms。
您可能指的是您的問題中的Xamarin.Forms以及隨附的項目類型。 Xamarin.Forms是在Xamarin.Android,Xamarin.iOS和UWP之上運行的UI框架。但是,請注意,這只是一個UI框架,它可能會滿足您的所有需求。
但是,Xamarin.Forms不會在iOS上運行Android應用程序。您使用Xamarin.Forms編寫的用戶界面具有巨大的運行潛力,並且在iOS上看起來也不錯。但是,它仍然運行在iOS項目中,而不是Android項目中。對於您要定位的任何其他平臺,情況就是如此。
Xamarin.Forms是這些獨立平臺之上的一個抽象,可以幫助您編寫一次UI,並可能在任何地方運行,以及導航和服務定位器等其他功能。
您在Visual Studio的跨平臺部分中提到的項目類型,只是創建Xamarin.Forms應用程序的不同方法。這可以在可移植類庫(PCL)中,該庫創建一個針對所選目標的.NET功能的常見子集的程序集。沿着PCL,每個受支持的平臺都會有一個應用程序項目。
另一種類型是使用與PCL不同的Shared Project類型創建Xamarin.Forms應用程序。怎麼樣?共享項目應該作爲一個美化文件鏈接項目。呃什麼?在構建項目時,將共享項目中的文件複製並編譯到應用程序項目本身中來查看它。因此,您可以在該共享項目中編寫特定於平臺的代碼。但是,它確實不會生成一個可以像PCL一樣與朋友分享的程序集。
這是很多Xamarin.Forms的談話。但是,Xamarin.Forms是而不是您可以創建Xamarin應用程序的唯一方法。 Xamarin提供了1:1的本地API暴露。這意味着,就像在iOS上創建故事板,ViewControllers,利用UIKit進行視圖等。您可以在Xamarin.iOS項目中執行完全相同的操作。 Xamarin.Android也是如此,您只需在Xamarin.Android項目中創建Widgets,Activities等。這兩個產生一個本地應用程序。但是,在這種情況下,UI不會被抽象化,並且可以爲您定製應用程序提供更多的功能,而無需針對Xamarin.Forms進行工作。
你應該選擇哪一個?這取決於你自己的想法。兩種方法完全產生原生具有原生UI的應用。這取決於你是否想要更多或更少的抽象。
我感到非常驚訝,4人覺得需要投票決定一個完全合法的問題,意在產生知識,以造福所有人。正如另一個線程中有人曾經指出的那樣,當一個人提前道歉(!)提出問題時,似乎覺得需要這個問題感到非常難過。有些人的態度是令人難以置信的敵對態度,有時甚至是有毒的。我最近問了幾個問題,並通過很好的答案獲得了很好的結果,現在呢?感謝球員們刪除我可以用來投票表達某人的問題作爲感謝的代表。你還想問我這個問題嗎? – themightyhulk
我在規則中編輯我的帖子以符合規則。現在它關閉了......?!關閉此線程的人要麼立即重新打開它,要麼給我解釋一下。謝謝。 – themightyhulk
在對我的請求沒有任何迴應,而沒有任何解釋的情況下永久關閉線程(雖然編輯了有問題的部分,涉及「主要基於觀點的投訴」),但這種類型只有一個答案不尊重的行爲,這就是...,https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575d – themightyhulk