前言 :
最近買了mac 後
興沖沖的灌了VisualStudio for Mac
開始研究誇平台
.
說起跨平台,不得不感謝微軟把Xamarin買下來了w
.
http://stackoverflow.com/questions/23589011/xamarin-vs-mono-vs-monodevelop
然後今天打文章時順便搞懂Xamarin 和Mono的差別
一個是專注行動裝置跨平台(Xamarin),效率聽說根原生app差不多(?
一個是弄出openSource的net.Framework(Mono),好用來在linux上環境執行,所以Unity才能跨平台,不過效率砍半就是了
.
然後順帶一提,osu有出新的版本了 (Osu!Laser)
也可以在VisualStudio for Mac上編譯成功
編譯出來也是.exe,然後用mono去跑
只是跑起來沒有畫面,後來看好像是一些attribute問題
.
然後在mac上編譯出來的.exe在windows 上會閃退 : 3
.
正題 :
如果有 建立過 Universal Windows 和 Portable 兩種方案
就會發現裡面都有 .xaml
如果以MVC架構來說就是View部分(UI介面那塊)
.
Universal Windows 簡單來說是windows 平台專用
.
Portable 是 給所有的的 APP 通吃用
包含View的部分
.
不過兩邊.xaml排版樣式都是用xml就是了
可能是一些using 或是其他地方不同
不才還沒有研究
.
所以如果要建跨平台APP有兩種方法
一種就是所有平台的View(UI部分)都寫一份,然後共用Controller
.
另外一種方法就是建立所有平台的方案後,導入到Portable 這個方案
MVC架構全部共用
就會變成不管是android 還是ios,看到的界面都會差不多
.
兩種方按各有好處
因為不同平台會有一些自己的特性
使用者對於android 和 ios 系統有些操作也會不太一樣
例如像android 流行可以從左側叫出導覽列,也有像Message那樣圓圓的懸浮功能
但ios就沒有
.
如果是要求所有平台所有UI排版都要一致可以考慮用Portable 方案
優點是寫一份就好
但相對的不同平台間就沒有特性了
.
如果不同平台有自己的介面和操作方式
就個別平台建立自己的View了
當然優缺點相反的,如果哪天要增加新功能不同平台的View就要分別實作了
.