iOS與Android開發之比較

2021-06-18 23:50:32 字數 3132 閱讀 9017

之前的經驗

雖然在軟體開發方面已經有超過12年的經驗,不過henneke說他對ios與android卻沒什麼經驗,從他的角度來看,這兩個平台對他來說處於同乙個水平之上:

在開始開發這個應用時,我完全是個android新手,甚至在這個專案之前我都沒有在電腦上安裝過sdk。同樣,我在ios上也是個十足的新手。我在2023年那陣兒曾建立過兩個簡單的iphone遊戲,不過他們的複雜性無法與gqueues應用相提並論,並且使用的apis也完全不同。從那之後我就再沒碰過ios開發,直到今年3月開始gqueues專案為止。
開發

android

ios又花了兩周時間,他「熟悉了ios開發」。

總的來看,henneke在ios上的學習時間是android上的兩倍。

雖然ios文件的擴散速度很快,不過由於ios 5到ios 6有很多重大的變化(比如說
雖然android開發要對「之前html 5移動web應用所用的後端伺服器同步**」進行完全的重寫,但是相比於ios,henneke為android編寫同樣應用所需的時間減少了10%。下表展示了總體的開發統計:

android

ios

開始時間

2012.9.21

2013.3.2

beta版測試時間

2012.12.22

2013.6.10

應用發布時間

2013.1.31

2013.7.18

專案總時間

4.25個月

4.5個月

等待時間

1周2周

開發時間

870小時(近似值)

960小時(近似值)

beta測試與修復時間

34天38天

beta測試者數量

92人48人

**行數

26,981行

23,872行

1.1 mb

3.5 mb

工具

應用設計

henneke計畫能讓其應用在各種螢幕尺寸上都能夠很容易地進行布局,他發現android平台有「成熟的元件可以幫助開發者支援各種大小」。他使用了relativelayouts,發現「所有的布局都可以通過xml指定,這是設計介面的一種整潔、簡單且高效的方式,也是在ios中建立布局後他所發現的android勝於ios的唯一乙個特性」。

我們希望henneke談談他對android碎片化的看法:

我認為android碎片化有點兒被人們說得過頭了?當然了,這是事實。這是android開發的很差的乙個方面麼?不見得吧。google與android社群已經採取了很多手段來面對這個挑戰,並且取得了成效。官方的支援庫覆蓋廣泛並且還在持續發展。actionbarsherlock是個強大的第三方庫,可以將新的特性帶到舊裝置上。此外,google最近發布的google play services將廠商在碎片化中的作用降低了。使用者不必依賴廠商推送最新版的android就可以獲得最新的特性。這對於android使用者與開發者來說都是乙個巨大的進步。
有趣的是,henneke對於ios布局的體驗卻不是那麼好:

每個ios 6

開發者一樣,為檢視構建精確的約束,只是為了讓ib能夠完全修改我的規格,因為它有「智慧型」系統,可以時時確保準確的布局。我查閱了很多

提示與使用auto layout限制我只能在ios 6(iphone 4與5)上進行開發,之前的版本就不行了,關於這一點henneke說到:

gqueues應用實際上不能安裝和執行在更老的裝置上,這也是我沒有在這些老裝置上測試的原因所在。在開發移動應用時,第一步就是確定要支援哪些os版本。ios 6引入了名為auto layout的新特性,這是對老式布局技術的乙個巨大改進,當然了,它只能用在執行最新版os的裝置上。我決定不再使用老式的結構方法和auto layout共同來建立布局,而只使用auto layout,這能夠極大地降低開發時間。當然了,這意味著gqueues應用將只能執行在使用ios 6的裝置上,不過這已經涵蓋了最近兩年的所有裝置。我覺得乙個人的**如果使用了兩年多,那他肯定就會換了,因此應用的市場並不會受到太大的影響。
其他的設計結論還有:

關於beta測試與發布,henneke說到;

google現在將真實使用者的測試變得更加簡單了,支援在開發者控制台上發布alpha與beta版及階段性發布。

在google play上發布gqueues的過程很愉快。我可以在準備好之後就發布應用,單擊按鈕,30分鐘後,應用就可以在全世界的google play上出現了,使用者可以將其安裝到自己的裝置上。

henneke還對兩個平台上的資料儲存與管理、搜尋、正規表示式、分頁、語音輸入、共享與小部件等內容進行了一系列的分析,感興趣的讀者可以在他的部落格上閱讀這些內容。

最後,henneke並不認為這兩個平台有好壞之分,每個平台都有「自己擅長且成熟的領域,也有一些需要改進的方面」。

我們還向henneke問到他希望ios與android平台上再出現哪些特性:

在ios上,我希望能有siri的api出現,或者至少是語音識別的api。在android上,我希望能與google now進行更深度的整合,這樣真的會很酷。
最後,我們問henneke為何一開始就從html5遷移了過來。根據他的經驗,html5尚不成熟:

我之前是個html5的
由於這篇文章只是乙個既為android又為ios開發應用的個人經歷,因此它並不是為這兩個平台下的最終結論,特別是沒有說哪個平台好,哪個平台不好。儘管如此,henneke的很多觀點都是恰當的,並且表達出了在這兩個最流行的移動平台上進行開發的喜怒哀樂。

檢視英文原文:ios vs. android development

泰澤(Tizen)與安卓 Android 之比較

老實說,我們只要比較一下兩者的開發工具包 sdk即可見分曉。只要我們登入 tizen 的開發者官方 developer.tizen.org tizen sdk 開發包是一套功能全面 用來開發 tizen web 頁面和本機應用程式的工具。它包括 ide 程式 工具 示例 和文件。tizen sdk ...

結構化開發方法與物件導向開發方法之比較

1 結構化方法 結構化方法起源於1960 1980年代。隨著當時軟體工程業的發展,軟體規模逐步擴大。而傳統的以功能和資料為中心的開發方法已經無法適用於大型系統的開發,由此結構化方法運用而生。結構化方法是結構化分析 sa 結構化設計 sd 和結構化程式設計技術 sp 的組合。1.1 結構化分析 結構化...

C 與C之比較

1.函式原型宣告中都可以省略引數名稱,只保留型別名稱 2.空引數和可變引數 fuc c 中表示沒有引數 c語言中表示引數不確定,表示沒有引數是 func void 可變引數 二者一樣 int func int a,引數的型別與個數都不確定 3.返回值 c中宣告函式可以不寫返回值型別,預設為int m...