iOS開發學習筆記(一)


一、必要條件

1、一台運行Snow Leopard(os x 10.6.5或者更高版本)的基於Intel的Macintosh計算機。

2、注冊成為iOS開發人員,下載iOS SDK。

3、下載XCode集成開發環境。

二、開發者選擇:

1、免費的SDK包含一個模擬器,它支持在mac上創建和運行iPhone和iPad程序。但是模擬器不支持依賴硬件的某些特性,如iPhone的加速計或者攝像頭,也不支持將應用程序安裝到實際的iPhone或其他設備上。開發的應用也不能發布到appstore上。如果要實現這些功能,需要注冊另外兩個收費的選項。

2、標准方案是99美元一年。提供了大量的開發工具、資源和技術支持,支持在appstore上發布應用。最重要的是支持在iOS上而不是模擬器上調試和測試代碼。

3、企業方案是299美元一年。面向開發專用的、內部的iOS應用程序的企業。

三、編寫iOS程序用何不同:

1、只有一個應用程序正在運行

在iOS上,特定時間段內僅激活一個應用程序並在屏幕上顯示。從iOS 4開始,當用戶按下home按鈕后應用程序有時可能繼續在后台運行,但是這種情況也只限於特定的場合。
當應用程序未激活或未運行於后台時,它不會引起CPU任何形式的注意,這將導致網絡連接斷開以及其他問題。iOS 4在后台處理能力方面已經有了大幅提升,但要使你的應用程序在這種情況下仍運行良好,還需要你自身的努力。

2、只有一個窗口

在桌面及筆記本電腦操作系統中,多個程序可以同時運行,並且可以分別創建和控制多個窗口。而iOS則有所不同,它只允許應用程序操作一個“窗口”。應用程序與用戶的所有交互都在這個窗口中完成,而且這個窗口的大小就是iOS屏幕的大小,是固定的。

3、受限訪問

計算機上的程序可以訪問其用戶能夠訪問的任何內容,而iOS則嚴格限制了應用程序的訪問權限。
你只能在iOS為應用程序創建的文件系統中讀寫文件。此區域稱為應用程序的沙盒,應用程序在其中存儲文檔、首選項等需要存儲的各種數據。
應用程序還存在其他方面的限制。舉例來說,你不能訪問iOS上端口號較小的網絡端口,也不能執行台式計算機中需要有根用戶或管理員權限才能執行的操作。

4、有限的響應時間

由於使用方式特殊,iOS及其應用程序需要具備較快的響應時間。啟動應用程序時,需要先打開它,載入首選項和數據,並盡快在屏幕上顯示主視圖,這一切要在幾秒之內完成。
只要應用程序在運行,就可以從其下方拖出一個菜單條。如果用戶按home按鈕,iOS就會返回主頁,用戶需要快速保存一切內容並退出。如果未在5秒之內保存並放棄控制,則應用程序進程將終止,無論用戶是否已經完成保存。

請注意,在iOS 4中,這種情況因為一種新API的存在而有所改善。這種API允許你的應用程序在終止前申請多一些的時間來處理。

5、有限的屏幕大小

iPhone的屏幕顯示效果非常出色,從推出到現在,它一直是消費設備中分辨率最高的屏幕。

但是,iPhone的顯示屏幕並不大,你施展的空間要比現代計算機小很多,最新的Retina顯示器(iPhone 4和第4代iPod touch)僅有640×960像素,更老的僅有320×480像素。

而且,現在的尺寸與以前相同,只不過Retina顯示屏為640×960像素,所以不要以為可以放更多的控件或什么了——僅僅是分辨率比以前高了。

iPad稍大一些,是1024×768像素,但也不算很大。與此形成鮮明對比的是,在撰寫本書時,蘋果公司最便宜的iMac支持1920×1080像素,最便宜的筆記本電腦MacBook支持1280×800像素。而蘋果公司最大的顯示器,27英寸的LED Cinema Display,支持超大的2560×1440像素。

6、有限的系統資源

閱讀本書的任何資深程序員可能都會對256 MB內存、8 GB存儲空間的機器嗤之以鼻,因為其資源實在是非常有限,但這種機器卻是真實存在的。或許,開發iOS應用程序與在內存為48 KB的機器上編寫復雜的電子表格應用程序不屬於同一級別,二者之間沒有可比性,但由於iOS的圖形屬性和它的功能,其內存不足是非常容易出現的。

目前上市的iOS的物理內存要么是256 MB,要么是512 MB,當然今后內存還會不斷增長。內存的一部分用於屏幕緩沖和其他一些系統進程。通常,不到一半(也可能更少)的內存將留給應用程序使用。

雖然這些內存對於這樣的小型計算機可能已經足夠了,但談到iOS的內存時還有另一個因素需要考慮:現代計算機操作系統,如Mac OS X,會將一部分未使用的內存塊寫到磁盤的交換文件中。這樣,當應用程序請求的內存超過計算機實際可用的內存時,它仍然可以運行。但是,iOS並不會將易失性內存(如應用程序數據)寫到交換文件中。因此,應用程序可用的內存量將受到手機中未使用的物理內存量的限制。

Cocoa Touch提供了一種內置機制,可以將內存不足的情況通知給應用程序。出現這種情況時,應用程序必須釋放不需要的內存,甚至可能被強制退出。

7、不支持垃圾收集

之前已經說過,Cocoa Touch使用的是Objective-C 2.0,但該語言中的一個關鍵特性在iOS中並不可用:Cocoa Touch不支持垃圾收集。

8、新功能

前面提過,Cocoa Touch缺少Cocoa的一些功能,但iOS SDK中也有一些新功能是Cocoa所沒有的,或者至少不是在任何Mac上都可用的。

  • iPhone SDK為應用程序提供了一種定位方法,即用Core Location確定手機的當前地理坐標。
  • 大部分iOS還提供了一個內置的照相機和照片庫,並且SDK允許應用程序訪問這兩者。
  • iOS還提供了一個內置的加速計(在最新的iPhone、iPod touch中有陀螺儀),用於檢測機子的握持和移動方式。

9、與眾不同的方法

iOS沒有鍵盤和鼠標,這意味着在編程時它與用戶的交互方式和通用的計算機截然不同。所幸的是,大多數交互都不需要你來處理。例如,如果在應用程序中添加一個文本字段,則iOS知道在用戶單擊該字段時調用鍵盤,你不需要編寫任何額外的代碼。

說明 目前的設備支持通過藍牙連接外部鍵盤,這提供了一種不錯的鍵盤體驗並節省了一定的屏幕空間,但這種使用情形仍然非常少。連接鼠標仍然完全行不通。

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM