前言:
今天突然心血來潮想寫看看自己對於Xamarin的心得,與轉換到純Swift的過程
如果是想進來看教學的可以直接上一頁了 XD
一、投入iOS開發
原本工作是處理政府相關的WebForm專案,因緣際會下在公司接到有iOS的開發專案,在被
老闆指定(強迫)下必須找解決方案開始做,當時的選擇方案有三個
1.Xamarin.iOS => 使用C#開發,又有.Net的強大支援
2.Cordova => 使用網頁語言開發
3.純原生
在思考後選擇了Xamarin.iOS做為開發平台,持續了約兩年,共開發兩個案子
一個為企業內部使用,另一個已上架
二、資源瓶頸
剛開始的時候因為完全沒有接觸過iOS
Xamarin在當時中文的只有一個Blog有入門教學,而且真的只有入門Hello World而已
再搜尋國外相關的教學也相當的少,陷入了學習的瓶頸
於是這時候開始學會看OC的教學文章自己轉譯到C#上。
Xamarin的賣點之一可以使用強大的.Net第三方library
但是並不是每個都可以使用,必須要支援PCL
.Net自己的則是99%以上都可以正常使用
而iOS原生自己數量龐大的第三方library則是99%都無法使用
iOS原生的library必須有人建立Xamarin的專案使用橋接發布,或是原作者自己另外寫一
套
綜上所述,Xamarin的library數量相當的少,許多功能必須自己手刻
很多時候找到iOS原生有的library但是卻沒辦法用相當痛苦阿!
三、轉Swift
因為原本的專案都進入維護期,又換公司需要開啟新專案,我就毅然決然放棄了Xamarin
投入原生開發
初期相當的不適應,要將原本Xamarin自己寫的library移植到Swift
許多.Net中的糖糖在Swift通通沒了,要不斷的尋找替代方案或是手刻
但是這痛苦的期間也只維持了大約半個月
Xamarin.iOS與原生開發最大的差別在IDE、語言、第三方library,而iOS的開發知識則是
原封不動
例如StoryBoard、Xib、各種View使用方式等等...
藉著原本在Xamarin上學會的相關知識,克服了語言差距順利的開始了純原生的開發
到目前專案已經進行了半年多,深刻覺得原生擁有的資源真的是最多的。
結語:
1.如果你是沒有任何程式經驗想投入iOS開發
建議不要繞遠路直接走原生開發,我推薦 Swift :)
2.如果你是原生的iOS開發者,為了想要使用Xamrin來達成一次開發多平台
你要使用的應該是Xamarin.Forms,這一套特別為了多平台做了相容性開發
但是這種方式或許必須犧牲原生特效、功能,
對於Forms我只有初步使用就覺得難用放棄沒有更深入了解
按照現在趨勢,或許你使用React Native是比較好的方式?
3.如果你是C#的開發者,為了不想換語言所以想選Xamarin
或許在初期一切都是那麼的熟悉,但是一旦碰到App的開發知識就是一片白紙得從頭學
想要針對Xamarin找資源又異常的困難,到最後還是得去翻原生的資源自己轉譯
你原本在C#中不管是WinForm還是WebForm、MVC.Net的知識,在APP開發中九成以上派不上
用場我在開發中最有用的知識只有.Net的多執行續處理
雖然這套在進入Swift後就完全廢掉了
現在Swift對於C#開發者而言已經相當親和,已經不像學習OC那麼的痛苦了
如果這樣還是沒改變你的想法,只能祝福你了:)
QA:
Q:Xamarin要付費嗎?
A:我那個時候Xamarin尚未被M$收購,收費最低就是一年999美金,另外有免費的學生授權
目前微軟有Community版可以直接免費使用,但是要注意條款限制
而如果原本有VS授權的則會直接擁有同級別的Xamarin授權
Q:Xamarin使用的人數多嗎?
A:從104上找職缺的話,全台灣或許還沒超過10家公司有在使用
Q:Xamarin.iOS開發的App可以順利上架嗎?
A:完全沒有問題!
Q:Xamarin需要的IDE與環境
A:Xamarin可以直接掛在Visual Studio上使用,但是開發iOS還是必須要有一台mac當Host
來編譯,推薦直接使用Xamarin Studio在mac上直接編寫