2016-12-23 134 views
0

因此,我一直在開發一個android應用程序一段時間,並且我被要求嘗試將此應用程序移植到windows phone。爲了減少嘗試維護同一應用程序的兩個單獨版本的麻煩,我決定嘗試將此應用程序移植到xamarin中,因爲我聽說它的性能比混合應用程序更好。這是我的問題是關於xamarin: -將android應用程序移植到xamarin或windows原生問題

  1. 我要保持相同的外觀和感覺,我在我的原始應用到我的跨平臺的應用程序,並在同一時間,使其在不同的windows版本。我能做些什麼來達到這個效果?

  2. 對於我來說,將該應用程序移植到Windows Phone本機相當更好,因爲在嘗試創建通用應用程序時遇到了額外的問題?

  3. 發佈xamarin應用程序時是否對Windows商店有任何限制?

回答

1

首先你需要知道Xamarin開發有不同風格,他們會分享更多或更少的內容。

如果您使用Xamarin表格,您將有一個與任何平臺(創建視圖和分類的地方)無關的主項目,以及將控件適應每種本地樣式的特定平臺項目。

如果您使用Xamarin Classic進行開發,您將擁有一個共享項目,您只開發數據相關類,以及具有自己的視圖和類的具有特定平臺項目的本地友好控件和本機類似功能,但我認爲,沒有直接的Xamarin Clasic Windows Project。

所以,如果你只想有兩個應用程序看起來都是原生的,但具有相同的結構和功能,Xamarin Forms將是你最好的選擇,因此你只開發出像這樣變成原生風格的「單一應用程序」 : enter image description here

如果你想要的是不同的應用程序,不同的功能和不同的內容,那麼你需要去Xamarin經典。我推薦你做的事情是在本地開發windows phone,但是你可以把所有的代碼放到共享庫中。然後,您可以創建一個Xamarin經典Android應用並使用共享庫。您仍然需要維護兩個不同的應用程序,但您只需要一次更改「核心」代碼。

如果您使用Xamarin Forms來創建UWP Windows應用程序,我認爲您沒有任何問題來發布它,請考慮Xamarin來自Microsoft。

1

Xamarin並沒有真正覆蓋Windows UWP應用程序,只是他們擁有在該平臺上運行的UI Framework Xamarin.Forms的概念。這意味着,你所做的是一個本地的Windows UWP應用程序。

Xamarin的優點在於,當您開始定位多個平臺時,您的代碼結構可以在支持的平臺上重複使用。這可以通過將大部分邏輯和行爲放入可移植類庫/ NETStandard庫中並在應用程序中使用它來完成。

一個典型的模式爲您的應用程序製作平臺不可知的邏輯和行爲,稱爲Model-View-ViewModel,其中View是平臺特定的,而Model和ViewModel通常是平臺不可知的。 ViewModel是行爲所在的地方,它將Model與View結合在一起。 通常ViewModel不會直接瞭解View,但是會在兩者之間存在一層(粘合),例如XAML或來自MvvmCross,MvvmLight或ReactiveUI的綁定引擎,以命名一些MVVM庫。

Xamarin提供的是爲Android和iOS編寫C#代碼的能力,它使您能夠在這兩個平臺之間共享代碼,而且還可以在所有Windows平臺之間共享代碼。因此,UI非常依賴於每個平臺。 當然,您可以將Xamarin.Forms用作UI抽象層,該層抽象層使用本地UI控件生成本機UI,以在所有目標平臺上獲取類似的應用程序。

相關問題