Xamarin 一周體驗營

自從開始接案以來,一直都想找適合自己的 Mobile App 跨平台解決方案,網路上有各種選擇,不管是老牌的 Cordova 或專做遊戲的 Unity,甚至是現在很夯的 React Native,但考慮到自己沒有點太多 JavaScript 技能,只有之前用 hapi.js 做些 RESTful API 的經驗,所以就沒打算採用 React Native 或相關的 JS 跨平台方案。

因為日前學習 Unity 一段時間,自己對 C# 也有一定程度的掌握,且能與 Visual Studio 緊密結合也很不錯,在開發過程中常常看到 Xamarin 這東西,認識了這玩意兒,覺得可以來試作一下,看看上手的感覺如何,就跳坑了。

下面整理一下這周以來的嘗試結果,

舒服的點:

  1. 跨平台真的好棒棒,尤其資料邏輯只要寫一份 Code,省事。
  2. Xamarin.Forms 的架構和 UI Component 挺好理解的,易學不難用。

不舒服的坑:

  1. 編譯環境很容易出問題:不知名的原因,偶爾清除專案再編譯時,就會發生錯誤,然後再按一次編譯就成功了。
  2. Xamarin.Forms 有自己的 XAML 編輯與預覽器,但偶爾就是會卡住不更新頁面,總是得重開檔案或編譯才能看到修改後的版面。
  3. 為了做多國語言,依據官方文件使用 RESX,後來我做了些設定修改後,編譯系統都沒有把新設定套用上去,結果我試著清除專案再重新編譯,才正確。
  4. 想套用 Firebase,但 Firebase 官方不直接支援 Xamarin,雖然 Xamarin 自己有移植一套 Firebase Package,但沒找到官方文件,不清楚配置方式,後來找到一些 blog 教學才初步解決,但又發生設定檔問題,處理這問題大概也弄了一天。
  5. 有些套件是 PCL,可以共用不同平台專案,譬如 Firebase 就是要分別下載 iOS 和 Android 版本,感覺麻煩。
  6. 編譯 Android 常有當機現象,就卡著也不知道在衝三小,偶爾還伴隨編譯錯誤給你看。
  7. Android 模擬器上的啟動速度異常慢,只是幾個垂直排列的文字輸入框和按鈕,結果從開啟程式到可以看到 UI 要等上至少 5 秒以上,很驚人,偶爾會不知為何的卡 20 幾秒還不出現 UI。

結論:

Xamarin 架構舒服,用 C# 來寫也很爽很開心,本來很期待實際應用,但他的開發環境真的是好糟糕,各種困難,無奈我只能先放棄了,希望有人能給些建議,改善這些問題。

圖片來源:

Is Xamarin.Forms Making Traditional Xamarin Obsolete?

發佈留言