如何避開iOS 5開發中的陷阱

來源:互聯網
上載者:User

首先一定要關注最新資訊。多去Apple官方網站,像iOS 5的升級,在官網提前很久就已經放出來對應的文檔、新特性說明等。同時還有很多視頻資源,會示範新特性對開發或者設計造成那些影響。還有各種iOS開發相關的論壇,例如CocoaChina,CSDN社區等。

接下來就是對平台的動作採取快速反映,第一時間提供一個版本的更新,這個非常重要,能給使用者非常好的體驗。但是要記住一點:一定要保證穩定性。做iOS應用就要有Apple的風範,快速反映不代表為了快而趕工,應用的穩定性是使用者體驗的前提。所以不要急著使用新特性,開發人員很容易陷入新特性帶來的亢奮中,但是實際上從整個產品的運營來看,本著穩定壓倒一切的原則,一定要謹慎!

最後是覆蓋測試。測試是最有效手段,能夠發現很多問題。全功能的覆蓋測試,需要在上線之前就能夠去維護一套完整的測試方案。這樣每次就照著這個方案走一遍,就會很方便的發現問題。另外一點,要覆蓋全部的裝置和全部的相容系統。雖然理論上不同裝置之間只要系統的版本一樣,應該沒有問題,但是實際總是和理論有所出入的。

每次系統升級後,Apple會列出所有他認為重要的東西,開發人員可以比照著然後一條一條的查漏補缺。同時也應該關注一些其他網站、論壇上,很可能會得到啟發和預警。之前說的其實是一個比較通用的一個大的方面的一個概括。

iOS新特性介紹

iCloud Storage對於開發人員的意義:所有iOS裝置上的檔案都能夠通過Apple提供的iCloud Storage上傳。iCloud Storage上線之後,對本機存放區會有一些強制性的要求。什麼樣的資料可以上傳?首先是使用者產生的資料,或者是不可被重建的可以上傳,剩下的部分要放到Cache裡。按照Apple的Guideline的說法,這類資料是自動的會被備份iCloud Storage上,就要求開發人員盡量的為使用者節省空間的和流量。

慎用ARC,一把雙刃劍:ARC是將之前手動Release的東西在編譯期間自動化,和手動編譯是一樣的。據Apple的宣傳來講,ARC在Release、Return管理的效率上,有很大效能的提升。ARC極大的降低了iOS開發門檻,卻也帶來了一些負面效果。它和Java的記憶體回收機制不同,是攢到一定的程度再去釋放。由此必然導致一些記憶體回收不及時,或者在釋放的時候對效能造成影響。

廉潔認為目前上線的大部分應用記憶體管理比較完善,因此不會對產品有明顯影響。ARC對從C或者C++過來的東西識別上有一些困難,他對這些的應用有一些特殊的聲明。如果應用裡用了很多第三方的類庫全部轉成ARC,是需要一些勇氣的。轉完之後可能大家心裡都沒底,會不會造成什麼問題,還需要詳細、全面的測試。所以新員工謹慎用,維護期的線上的應用盡量用,新應用倒是可以用

Newsstand介紹:Newsstand只是給新聞類的應用提供了一個聚集的場所。它的好處包括:可以提供個人化的封面,每期一個封面,大小可以自己設定。Apple提供了幾種標準,包括雜誌的樣式或者新聞的樣式。另外雜誌類的應用經常要求大量的資料的下載,Newsstand提供了在後台下載和推送機制,避免使用者在開啟應用之後,應用開始下載雜誌內容,導致可能出現的人身傷害事故。

一些其他的新特性:Storyboards對開發人員來講很有吸引力,同樣對已經線上上的應用慎用。而對Coreimage來說,Apple提供了大量的圖象處理的API,真正做起來,門檻有點高,好多圖象的演算法學識很難。像Location Simulation目的在於解決開發人員在開發基於地理位置應用時候實地測試的困難。但是其實不是特別的靈活,僅能夠一定程度上提供這種類比。Instumnets,提供了大量效能分析工具。OpenGL ES為測試和debug都提供了更好的環境。

iOS升級的各種問題以及解決之道

iOS 4中Category這個方式非常流行,而在iOS 5中就不用了。UINavigationBar實際上提供了一個更好的修改背景的方法。為了iOS 4和iOS 5的相容,首先保留Category,這個在iOS 4裡面沒有問題;如果在iOS 5上出現問題,可以去提供系統修改的背景的方。第二個可能比較重要的一個變化。

還有一個就是比較頭疼的玩意兒了。在iOS 5的鍵盤高度不是固定的,例如微博類的應用,IME會直接把輸入框蓋住。Apple還提供了幾個事件,第一通過去註冊一些事件,在他的Userinfo裡面會直接看到。包括取一個Frame或者什麼東西,取到的東西是一個velue的一個值,他不是一個值,他會封裝成ISVELUE。基本上通過這幾個,就能夠處理現有的這些鍵盤上的一些變化。

iOS 5中建議放棄UDID,以後可能會被取消掉。Apple提供了一些替代的方法,比如可以建立自己的UDID,之後可以存到這個NEWUSERDEFAULT裡面。這樣做雖然不是一個唯一的UDID,但基本上不影響統計分析使用的。

在ReleaseNote裡面寫的很清楚,隱藏一個header現在直接返回沒有用。UIPICKERVIEW,就是在第一次選擇的時候,會調用一些程式裡面主動設計他選擇的一個方法。現在iOS 5中不會觸發,需要大家做一些針對性的處理。在iOS 5裡面大家需要主動的設計papovercontroller。

via CMDN Club

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.