【UIKit-1】關于使用UIKit進行應用開發

【譯】為避免撕逼,提前聲明:本文純屬翻譯,僅僅是為了學習,加上水平有限,見諒!

關于使用UIKit進行應用開發

學習關于UIKit和Xcode為iOS和tvOS應用提供的基本支持。

概述

UIKit框架提供了你構建iOS或tvOS應用所需要了核心對象。使用這些對象可以在屏幕上展示內容,與這些內容進行交互并管理與系統的交互。應用在他們的基本行為上依賴于UIKit,并且UIKit還提供了許多方法讓你可以自定義適合自己特殊需求的行為。

important
開發iOS或tvOS應用總是從在Xcode——蘋果集成的開發環境,中創建一個項目開始。如果你沒有Xcode,你可以從App Store中下載。你也可以從developer.apple.com下載最新的版本。

Xcode為每一個你創建的應用提供了作為起始點的工程模板。例如,圖1展示了用Xcode中單視圖模板創建的應用結構。工程模板提供了最簡的用戶界面,所以你可以立即構建運行工程并在真機或模擬器上查看運行結果。

圖1

當你構建應用的時候,Xcode會編譯源文件并為你的工程創建應用程序包(app bundle)。應用程序包(app bundle)是一個包含代碼和與應用有關資源的結構化目錄。資源包括圖片資源,storyboards文件,字符串文件和為代碼提供的應用元數據。應用程序包(app bundle)的結構很重要,但Xcode知道要把資源放在那里,所以目前不需要擔心。

必要資源

每一個UIKit應用都必須有以下資源:

  • 應用圖標(App icons)
  • 啟動畫面storyboard(Launch screen storyboard)

系統會把你的應用圖標展示在主屏上面,設置頁面和任何需要區別于其他應用的地方。由于他需要在多個地方,多個設備上使用,所以你需要在Xcode工程的AppIcon圖片資源中提供不同的應用圖標版本,正如圖2所展示的那樣。你的應用圖標應該設計的別具一格,這樣可以幫助你在主屏上迅速識別出你的應用。然而,你可能需要修改圖標的細節以讓它適合你必須提供的不同圖片尺寸。

圖2

LaunchScreen.storyboard文件包含應用的初始用戶界面,它可以是一個啟動畫面(splash screen)或一個實際界面的簡化版。當用戶點擊應用的圖標時,系統會立即顯示啟動界面,讓用戶知道你的應用正在啟動。當應用初始化的時候,啟動界面也可以給它提供封面。當應用完成初始化時,系統會隱藏啟動界面,并顯示應用的真實界面。

必須的應用元數據

系統從應用程序包中的屬性列表(Info.plist)文件中導出關于應用的配置和權限信息。Xcode為每一個新工程模板提供此文件的預配置版本,但有時你可能會修改這個文件。例如,你的應用依賴特定的硬件或者需要使用特定的系統框架,你可能需要在這個文件中添加與這些特性相關的信息。

你對Info.plist文件進行的最常見的一項修改是聲明應用的硬件和軟件需要。這些需求是你如何向系統說明你的應用要運行什么。例如,一個導航應用可能需要使用到GPS硬件來提供分路段導航,如圖3所示。應用商店會阻止應用安裝到不滿足應用要求的設備上。

圖3

更多關于Info.plist文件中key的信息,請看Information Property List Key Reference

UIKit應用的代碼結構

UIKit提供很多應用核心對象,包含那些與系統交互,運行應用主事件循環以及在屏幕上展示內容的對象。對于大部分對象你可能都是原封不動的使用或者僅僅做很小的調整。知道修改那個對象,什么時候修改對實現你的應用很重要。

UIKit應用的結構基于模型-視圖-控制器(MVC)設計模式,其中對象是按照用途劃分的。模型(Model)對象管理應用的數據和業務邏輯。視圖(View)對象提供數據的視覺展示。控制器(Controller)對象在模型和視圖對象之間充當橋梁的角色,適時的在兩者之間傳輸數據。

圖4展示了一個很經典的UIKit應用結構。你提供展示用用數據結構的模型對象。UIKit日工大部分的試圖對象,盡管你可以根據需要為你的數據自定義視圖。你的視圖控制器和應用委托對象負責協調數據對象和UIKit視圖之間的數據交換。

圖4

UIKitFoundation框架提供很多你可以用來定義應用模型對象的基本類型。UIKit提供UIDocument對象來組織屬于磁盤文件的數據結構。Foundation框架定義基本的對象來展示字符串,數字,數組和其他數據類型。Swift Standar Library提供很多在Foundation框架中可用的相同類型。

UIKit提供了應用中控制器和視圖層中的很多對象。特別的,UIKit定義了UIView類,它通常用來在屏幕上展示你的內容,(你也可以使用Metal和其他系統框架直接在屏幕上渲染內容。)UIApplication對象來運行應用的主事件循環并管理應用的全部生命周期。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容