Soft_Job 板


LINE

難得看到討論Xamarin的文章 身為使用Xamarin一年左右的菜比八來分享一下個人看法 並試著用工程師角度和公司角度提供一些想法 前情提要: 在學校只寫過C、Python和極少的C++ 進到公司後開始學習C# 目前語言熟練度 C# > Java = Swift = Obj-C 因為公司是抓原本的工程師們來摸索APP開發 所以造就了現行產品們有原生、有Xamarin、也有Xamarin.Form 又因並不是所有專案都會同時開發及維護 分到哪個專案就要寫哪種語言 所以目前是 Xamarin.雙平台(C#) Xamarin.Form(C#) Android(Java) iOS(Swift&Obj-C) 都能寫的狀況 首先先來簡單說一下Xamarin Xamarin其實分成兩種 一種是Xamarin雙平台 也就是照著平常寫Android和iOS的方式來撰寫APP 只是語言改成使用C# 但整個Life Cycle、Activity/ViewController等等的觀念都跟原生一樣 也同樣使用AXML和StoryBoard或Xib拉畫面 不過無關乎Android及iOS層的資料和資料邏輯層可以共用 也就是這部份只需要一份程式碼就可以了 而另一種是Xamarin.Form 是屬於Xamarin自己的框架 裡面沒有什麼Activity、Fragment、ViewController之類的東西 而是有屬於自己的LifeCycle和Page 畫面使用自己的XAML格式 從畫面到資料都只需要寫一份Code就可以了 真的需要雙平台各自處理的部分 再寫各自的渲染即可 渲染的部分一樣使用C# 使用Xamarin 基本上在手機上的效能表現而言其實並不會比原生差 因為它並不是先把C#轉回原生再使用 而是自己比照原生語言製作了跟底層的溝通 細節有興趣的人可以去查看相關文件及統計資料 工程師角度: 開發的語言與框架能具備 - 好寫 越多語言及框架幫你處理好的東西越好 - 快速 需要寫的東西越少越好,並盡可能的共用 - 穩定 不會莫名其妙壞掉,一更新好了這個壞了那個 對於原本就熟練C#與.NET的人來說 Java、Obj-C和Swift缺少很多慣用的類別及方法可以使用 (個人覺得Java很囉唆,Obj-C有點過時) 雙平台可以共用資料邏輯層很省事 而UI可以只寫一份的話更好 但穩定度確實差原生一截 公司角度: 產品的開發具備 - 快速 工程師需要的開發時間越短越好,不論是開新產品或增加需求 - 穩定 產品越少Bug越好 - 省成本 每次開發需要的工程師數量越少越好 這時候就要看產品特性了 有些產品注重資料的呈現 有些產品則是對畫面及操作的細節講究 對於注重資料呈現但對於畫面及操作細節沒那麼要求的產品 Xamarin(特別是Xamarin.Form)可以做到快速與省成本 而穩定度的欠缺會因對畫面及細節的不要求而影響程度不高 其實是個不錯的選擇 但對於畫面及細節要求的產品 由於Xamarin依舊需要處理大量的渲染 又比較常發生特定版本的某些功能會壞掉的狀況 Xamarin的缺點比優點來得多 使用原生甚至搭配C++開發會是更好的選擇 最後就我而言 其實Xamarin並沒有前幾篇文章下面推噓文講得那麼差 它有優勢但也有缺點 確實業界內使用Xamarin開發的公司不多 但也不是沒有 依需求和團隊狀況考量 不同的公司應該會有不同的選擇 寫到現在一年多 覺得不論是它本身或是VS for Mac都有越來越穩定 個人認為它的未來是可以期待的 (至於一些信仰問題,在這邊不列入討論, 每個人對個語言、框架和公司等等的信仰都不一樣, 雖然這篇文章多少也有一些我的信仰在裡面XD) --
1F:推 yu800910: 順便問一下史蓋到底是不是偽娘?(舉手04/26 10:47
我是喜歡異性的堂堂男子漢好嗎...
2F:推 ruby0509: 對不起 我看成史蓋喜歡堂堂男子漢.... 04/26 11:37
3F:推 apple1969: 看成史蓋喜歡堂堂男子漢 +1 (掩面 04/26 11:45
--



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.104.198
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1535284144.A.647.html
4F:推 aaz123456789: 蠻好奇你怎麼學這套的 網路上資源很少啊 直接看文 08/26 23:20
5F:→ aaz123456789: 檔嗎 08/26 23:20
6F:推 m339606: 推心得! 我在MacDev板也有Xamarin的相關心得,想了解的 08/27 00:12
7F:→ m339606: 話可以參考一下 08/27 00:12
8F:推 neo5277: msdn 08/27 08:56
9F:→ neo5277: 然後有專門研究網站喔 08/27 08:57
10F:推 bf000777966: 老實講我很好奇那個XARAMIN到底是怎樣運作的,它是 08/27 12:13
11F:→ bf000777966: 把整個RUNTIME都搬過去嗎,還是直接編譯成NATIVECOD 08/27 12:13
12F:→ bf000777966: E,如果這樣,一些功能不就沒有了嗎,像是GENERIC 08/27 12:13
13F:推 neo5277: 基本上他還是叫用原生API 08/27 12:26
14F:推 liddle: iOS 上,Xamarin 就是直接編譯為 LLVM IR Code 然後丟給 X 08/27 20:19
15F:→ liddle: code。Android 上就是一個 NDK app。有 runtime。 08/27 20:19
16F:推 m339606: iOS與Android做法不同,推薦還是直接去看管方文檔了解一下 08/28 00:55
17F:→ m339606: 細節比較好 08/28 00:56
18F:→ luluking: 分開學比較實際 除非你只想寫些騙騙人的小東西 09/03 09:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP