2014-01-09 70 views
46

有誰知道在Xamarin Versus Android java本機代碼中通過C#進行編程的優缺點比較嗎?使用Xamarin V開發Android應用程序原生android

正在通過Xamarin進行開發的方式比原生android更有限,或者差距不是那麼大。 我想聽聽有經驗的人開發技術的意見。
感謝

+7

我知道這是一個基於意見的問題,但它是一個非常有效的問題。它的一個TON的人有。我在會議上回答了很多問題。 –

回答

99

更新 20160822:這個建議仍然適用。我不斷被問到這一點。我所知道的一家公司與Xamarin一起才發現它並沒有解決他們的Android問題,因爲他們必須學習兩種語言/實現來解決他們的大部分問題。

更新 20150513:迄今爲止,這是最常見問題我從初創公司之一。他們應該走哪條路。我不可避免地最終將他們指向這個職位。這仍然是可靠的建議。

我開發了兩個。你可以在Xamarin中做任何你想做的事情。你要遇到的幾個難題是:

  • 尋找好的工作示例代碼。邊緣情況真的很糟糕。
  • 你會發現你最終通過Xamarin學習Java,因爲你必須閱讀這麼多的Java代碼。

另一個問題是,雖然Xamarin做得很好,並且正在獲得牽引力,但社區仍然很小。這在您發佈Xamarin應用程序時會造成問題。如果你需要引入其他人來維護它,他們必須知道.NET,C#和Android。發現組合相當困難,我發現我需要更新我的應用程序的所有承包商或顧問都非常昂貴。

那就是隱藏的陷阱。它可以幫助你更快地走出門外,但如果你不是進行更新的人,那麼保留和新的功能開發將會讓你付出代價。

爲什麼我知道這個?我已經寫了Xamarin的兩個應用程序,我最終想要更新。我必須聯繫承包商才能做到這一點,因爲我沒有時間。與Android或iOS開發者相比,它已經非常昂貴了。我最終將這些應用程序從Xamarin移動到Native Android和iOS。

撇開。它是一個驚人的真棒平臺。如果您打算始終處理它,然後使用它。能夠使用C#的強大功能非常棒。在使用C#多年之後,我對Java真的很鄙視。這是個人喜好,但它是什麼。

它的所有關於權衡。

+1

感謝完美的回答:) – CSharper

+0

偉大的答案謝謝。轉換爲原生Android有多麻煩?我會做最初的開發和大的支點,然後讓其他開發人員參與進來。所以我很想從Xamarin開始然後轉換,部分是因爲我是C#流利的,部分是因爲MVVMCross,Task Parallel Library等似乎能夠減少代碼量。在我的情況下,業務邏輯將非常複雜,但渲染到曲面,動畫和自定義手勢也是如此(我將使用最少的本機控件)。 – Chris

+1

@Chris對我來說,轉換爲Android很簡單。免責聲明 - 我已經寫了一些關於Android開發的書 - 所以對我來說有點不同。這真的取決於你的應用程序的複雜程度... –