[ SWIFT ] - 史丹福 StandFord-CS193P-課程1-心得分享-20150720

從今天起將利用10天的時間,看完史丹福 StandFord的SWIFT線上課程,並將課程中的重點記錄如下,以下就是課程1的重點分享:

史丹福 StandFord 課程1-心得分享-20150720

課程觀賞位置:
https://itunes.apple.com/tw/course/developing-ios-8-apps-swift/id961180099?l=zh
 或是直接在itune中搜尋 StandFord

圖1:itunes 搜尋畫面

課程重點:
(1)ios架構:

說明:
iso架構主要分為4層,由下至上代表低階至高階,各層介紹如下:
Core OS】
Core OS是位於iOS系統架構最下面的一層是核心操作系統層,它包括內存管理、文件系統、電源管理以及一些其他的操作系統任務。它可以直接和硬件設備進行交互。作為app開發者不需要與這一層打交道。


Core Service】 
Core Services是核心服務層,可以通過它來訪問iOS的一些服務。
Media是媒體層,通過它我們可以在應用程序中使用各種媒體文件,進行音頻與視頻的錄制,圖形的繪制,以及製作基礎的動畫效果。  

Media】
包含圖形、音頻、視頻等技術

Quartz Core框架:包含Core Animation接口。Core  Animation是高級動畫製作和混合技術,它使用經過優化的渲染路徑實現複雜的動畫和視覺效果。

Media Player框架:應用程序播放視頻和音頻內容。
AV Foundation框架:該框架包含的Objective-C類可用於播放音頻內容。
Core Graphics框架:包含Quartz 2D繪圖API接口。

CocoaTouch 】
Cocoa Touch是可觸摸層,這一層為我們的應用程序開發提供了各種有用的框架,並且大部分與用戶界面有關,本質上來說它負責用戶在iOS設備上的觸摸交互操作。

圖3:ios架構
UIKit框架:UIKit提供了一些程序運行所必須的關鍵對象,使得App能夠捕獲用戶輸入和屏幕上顯示內容。


圖4:UIKit框架類組織架構圖:

在圖中可以看出,responder 類是圖中最大分支的根類,UIResponder為處理響應事件和響應鏈 定義了界面和默認行為。當用戶用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit就生成時間傳送給UIResponder響應鏈,直到鏈中有對象處理這個事件。相應的核心對象,比如:UIApplication  ,UIWindow,UIView都直接或間接的從UIResponder繼承。

MapKit框架:iOS3.0引入該框架,該框架提供一個可被嵌入到應用程序的地圖界面,該界麵包含一個可以滾動的地圖視圖。
Address Book UI框架:iOS3.0引入該框架,可以利用該框架撰寫電子郵件,並將其放到用戶的發件箱隊列等候發送Message UI框架:顯示創建或者編輯聯繫人的標準系統界面


(2)開啟你的Xcode:

在影片中可以看到老師在開啟一個新的專案時,對新專案環境的設定!將app開發過程中比較不會用到的檔案移至Supporting Files中,只保留ViewControler.swift 與Main.storyboard

圖5:新專案畫面
 圖6:調整後的畫面
圖7: ViewController.swft調整前畫面
 圖8: ViewController.swft調整後畫面


(3) Auto Layout:
這裡有很多平常不會注意的重點:
(3.1)物件請盡量對齊藍線,這樣做的好處是可以確保多個物件在不同裝置上的位置一致,不會因螢幕垂直或水平而產生差異。
(3.2)為什麼一開始的Main.storyboard 是正方形?為了等比例的水平和垂直壓縮!
(3.3)以下圖9為例,為何模擬器會看不到0,老師的作法是將模擬器拖拉與Main.storyboard對齊,藉此說明0的位置其實超過模擬器的位置。
圖9:模擬器與實際app畫面比對

(3.4)Auto Layout實際操作:
圖10:Auto Layout設定
 圖11:Auto Layout設定時錯誤畫面
說明:在 storyboard 的畫面上看到兩條特別顏色的線,橘線代表 Constraint 太少,不夠完整,紅線代表 Constraint 太多,產生衝突。唯有把這些可怕顏色的線條清除,App 畫面才能正常呈現。
 圖12:Auto Layout異常畫面
圖13:Auto Layout 異常查詢畫面
圖14:Auto Layout 異常處理畫面

(4)第一個專案:建置計算機
(4.1)建置 Label 與 ViewController 關連
說明:先點選 Assistant editor後,在選取要建立連結的Label物件後,按住control鈕往ViewController拖曳,設定名為display的連結。



(4.2)建置計算機按鈕與ViewController的關聯
新增Label後,將內容改成7,同樣按住Control拖曳產生關連,將Connection方式選取Action!

產生關連後利用複製產生計算計中0~9的按鈕。



在ViewControl中會已小圓點的方式表示連結,將滑鼠停留在圓點上時, storyboard 的畫面上看到連結的物件,由於是利用複製,因此正確的畫面應如下呈現。

(4.3)程式碼說明:
宣告:userIsInTheMiddleOfTypeANumber來判別第一次輸入,藉次避免預設0一直出現的情況。

重點:透過sender傳送點選的Label,讓程式碼更簡潔!
課程1最重要的觀念:option
說明:
option有兩種,有值和沒值,沒值又可稱為nil與''不同
option的宣告方式:加上?
例如:
var display:String?
表示當display有值時,是String類型!
display的取值方式:加上!
例如:
display!

留言

  1. 你好有毅力喔!我希望自己跟你一樣!

    回覆刪除

張貼留言

您好:
歡迎到訪我的Blog,這裡有我的生活經驗、美好的回憶和程式開發經驗分享~
目前努力學習Swift中,希望你會喜歡Swift!
如果可以也請你留言給我一個鼓勵喔!
謝謝

熱門文章