我們小組正在做一個項目,需要同時提供 iOS 和 Android 版本,不想重複寫邏輯重複界面佈局開發,大家有什麼好方法嗎?HTML5 可能是一種不錯的選擇,還有其他效率更高的選擇嗎?


綜合效率與成本,請兩個程序員都是最佳方案。

iOS程序員跟Android程序員都好招,而如果你要選擇一些小眾的跨平臺框架,程序員的學習成本,招聘成本,試錯成本,都會非常高昂。最終的調試成本也並不會下降。

所以直接招人是最佳方案,相信我,很多公司都試過的,我們也試過的。統一開發的方法有很多,但沒有一種統一開發的方法能比分開開發效率更高,成本更低,進度更快。

至於應用邏輯,目前常見的方法是把邏輯放到平臺端。也就是說無論iOS還是Android都是從平臺取數據的。操作也是提交給平臺的。因而你把伺服器端做好就實現了統一開發。

--

補充一下,為什麼兩個人獨立開發具有更高效率?因為多線程往往就是比單線程效率更高。軟體開發中最大的困境,就是增加人手無法提升開發效率,因為很多事情無法切分。iOS跟Android本來可以兩個人獨立完成,互相不依賴,如果變成一個人去做,他就得順序解決兩個平臺下遇到的問題,效率常常會下降。

畢竟,所有訪問設備的介面都必須用原生的,藍牙,網路,存儲,定位,照相,等等各種功能全都要本地介面,沒法統一,調試也必須在原生平臺上調試,測試也必須兩個平臺測試,所謂的統一開發,很多操作根本省不掉。統一開發相當於把本來能夠天然切分的事情堆給一個人去做,能並行的事情變成串列了,對最終的工期往往不利。

如果你是大公司,去做一些沒有進度要求的基礎平臺,可以用跨端開發框架,反正不趕進度。

不過現實情況,絕大多數管理的想法就是:要快。而為了實現【更快】這個目標,獨立開發常常就是更快的。統一開發只適合不追求開發效率的團隊使用。


如果你個人開發者和創業公司的,你可以選那些跨平臺的框架react native,flutter,xamarin。但最好還是各招一個人,原生開發,別盲目相信國內大廠,像鹹魚那些用flutter其實真的沒必要,他們有那資源,原生可以搞得很好,沒必要折騰,只是為了那所謂的KPI。原生纔是王道。


有,2個程序員,一個寫ios,另外一個寫android。這個辦法是目前最成熟的統一開發技術,為眾多大小公司採用。


如果不是對性能/效果要求較高的,如遊戲,且,仍然需要一些原生效果,建議考慮混合模式(Hybrid)。

PhoneGap框架還是值得考慮,前端jQuery或者Sencha Touch配套:1,開源2,還算主流技術3,邏輯結構/操作:Webapp技術

4,原生效果:那就得寫些原生代碼了


maybe.....xamarin可以?


dropbox有一篇文章,講述了他們放棄了使用C++開發跨平臺通用組件,而選擇在ios和android平臺下分別維護一套sdk的心路歷程。

跨平臺開發成本太高?Dropbox最終寧願將代碼編寫兩次-InfoQ?

www.infoq.cn

facebook會告訴你,當初選擇html5作為跨平臺的開發方式,最後為什麼搞不下去了。

https://www.csdn.net/article/2012-08-24/2809122?

www.csdn.net


Titanium Mobile. 用Javascript 來寫,一套代碼通喫IOS,Android,當然了有一些小的修改,對代碼的維護相當的便利。缺點就是android app的性能不高,用戶體驗不太好,還有就是每次android sdk, xcode升級以後,titanium sdk也需要升級,並且對老版本的sdk兼容性不好

應用調用手機一些原生介面的需求不大時上web那一套就足夠了,否則開發兩套原生app吧,手機端跨平臺框架坑太多


推薦使用RN或Flutter這樣性能好的跨平臺框架,不推薦使用html這樣的偽跨平臺

但是,使用跨平臺技術並不代表你可以少招人,你依然需要ios和android,只不過他們可以用同一套技術同時寫一個項目而已。


Facebook開源的Reactive Native是一個選擇,開發只需要用javascript語言,應用效率據說可達到原生APP的水平
商業化的解決方案是使用 MonoTouch 和 MonoDroid ,當然,它們都不是免費的。

使用跨平臺的引擎來開發應用或者是遊戲比較好,

一次編碼,多個平臺,成本可以降低很多,相應的收益方面相對也是比較客觀。還有:可以擺脫被某一個平臺所綁架
HTML5
可以用kivy, 所有移動端和後臺全用Python瞬間搞定,升級也很容易

小公司,目前用RN,感覺還不錯


可以通過使用Flash Builder4.5的Air進行開發,Air 實現了跨平臺,只寫一套UI和程序就可以了。
推薦閱讀:
相關文章