28
iOS Swift 3.0 初 & 初 FaceBook SDK

I os swift 3.0 初體驗 & 玩 facebook sdk

  • Upload
    -

  • View
    179

  • Download
    6

Embed Size (px)

Citation preview

Page 1: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗& 玩 FaceBook SDK

Page 2: I os swift 3.0 初體驗 & 玩 facebook sdk

學習主題• 社群成立目的簡介• 自我介紹與哈啦• 功力複習• 程式實作 (Swift)

• 問題與交流

Page 3: I os swift 3.0 初體驗 & 玩 facebook sdk

個人簡介諸葛魔斌工作室:諸葛魔斌科技創作室學歷:高應大 --- 工管系 ( 非資訊科系 )E-Mail : [email protected]官方網站: http://twcts.comFacebook : https://goo.gl/volM7Z粉絲團 : https://goo.gl/LI08wh社群 : https://goo.gl/kjCsz1Line (id) : http://goo.gl/ayGW7dLine@ : http://goo.gl/pQHjWHLine Bot : http://goo.gl/ljdxfVPlay 商店: http://goo.gl/CkVdsdApp Store : http://apple.co/1Qehd64專長: VB(VBA) 、 C# 、 Java(Android) 、 Swift(iOS) 、 PHP 、 Python 、 Conrona 、 Golang 、 Unity 、 MySQL 、 FreeBSD 、 Server 架設、 CAD 、 ……

楊政斌

Page 4: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

Xcode 8 & Swift 3 改版注意事項iOS 10 隱私權限設置iOS 10 對隱私權限更加嚴格,解決辦法都是在 info.plist 文件添加對應的 Key-Value 就可以了。麥克風權限: Privacy - Microphone Usage Description 是否允許此 App 使用你的麥克風?相機權限: Privacy - Camera Usage Description 是否允許此 App 使用你的相機?相冊權限: Privacy - Photo Library Usage Description 是否允許此 App 訪問你的媒體資料庫?通訊錄權限: Privacy - Contacts Usage Description 是否允許此 App 訪問你的通訊錄?藍牙權限: Privacy - Bluetooth Peripheral Usage Description 是否許允此 App 使用藍牙?語音轉文字權限: Privacy - Speech Recognition Usage Description 是否允許此 App 使用語音識別?日曆權限: Privacy - Calendars Usage Description 是否允許此 App 使用日曆?定位權限: Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據定位權限 : Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據,定位的需要這麼寫,防止上架被拒

Page 5: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDKXcode 8 & Swift 3 改版注意事項UICollectionView 性能優化隨著開發者對 UICollectionView 的信賴,項目中用的地方也比較多,但是還是存在一些問題,比如有時會卡頓、加載慢等。所以 iOS 10 對 UICollectionView 進一步的優化。UICollectionView cell pre-fetching 預加載機制UICollectionView and UITableView prefetchDataSource 新增的 API 針對 self-sizing cells 的改進Interactive reordering

在 iOS 10 之前 ,UICollectionView 上面如果有大量 cell, 當用戶活動很快的時候 , 整個 UICollectionView 的卡頓會很明顯 , 為什麼會造成這樣的問題 , 這裡涉及到了 iOS 系統的重用機制 , 當 cell 準備加載進螢幕的時候 , 整個cell 都已經加載完成 , 等待在螢幕外面了 , 也就是整整一行 cell 都已經加載完畢 , 這就是造成卡頓的主要原因 , 專業術語叫做 : 掉幀 .要想讓用戶感覺不到卡頓 , 我們的 app 必須幀率達到 60 幀 / 秒 , 也就是說每幀 16 毫秒要刷新一次 .

iOS 10 之前 UICollectionViewCell 的生命周期是這樣的 :1. 用戶滑動螢幕 , 螢幕外有一個 cell 準備加載進來 , 把 cell 從 reusr 隊列拿出來 , 然後調用 prepareForReuse 方法 , 在這個方法裡面 , 可以重置 cell 的狀態 , 加載新的數據 ;2. 繼續滑動 , 就會調用 cellForItemAtIndexPath 方法 , 在這個方法裡面給 cell 賦值模型 , 然後返回給系統 ;3. 當 cell 馬上進去螢幕的時候 , 就會調用 willDisplayCell 方法 , 在這個方法裡面我們還可以修改 cell, 為進入螢幕做最後的準備工作 ;4. 執行完 willDisplayCell 方法後 ,cell 就進去螢幕了 . 當 cell 完全離開螢幕以後 , 會調用 didEndDisplayingCell方法 .

Page 6: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

Xcode 8 & Swift 3 改版注意事項iOS 10 UICollectionViewCell 的生命周期是這樣的 :1. 用戶滑動螢幕 , 螢幕外有一個 cell 準備加載進來 , 把 cell 從 reusr 隊列拿出來 , 然後調用prepareForReuse 方法 , 在這裡當 cell 還沒有進去螢幕的時候 , 就已經提前調用這個方法了 , 對比之前的區別是之前是 cell 的上邊緣馬上進去螢幕的時候就會調用該方法 , 而 iOS 10 提前到 cell 還在螢幕外面的時候就調用 ;2. 在 cellForItemAtIndexPath 中創建 cell ,填充數據,刷新狀態等操作 , 相比於之前也提前了 ;3. 用戶繼續滑動的話 , 當 cell 馬上就需要顯示的時候我們再調用 willDisplayCell 方法 , 原則就是 :何時需要顯示 ,何時再去調用 willDisplayCell 方法 ;

Page 7: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDKXcode 8 & Swift 3 改版注意事項4. 當 cell 完全離開螢幕以後 , 會調用 didEndDisplayingCell 方法 ,跟之前一樣 ,cell 會進入重用隊列 .在 iOS 10 之前 ,cell只能從重用隊列裡面取出 , 再走一遍生命周期 ,並調用 cellForItemAtIndexPath創建或者生成一個 cell.在 iOS 10 中 , 系統會 cell保存一段時間 , 也就是說當用戶把 cell 滑出螢幕以後 , 如果又滑動回來 ,cell 不用再走一遍生命周期了 ,只需要調用 willDisplayCell 方法就可以重新出現在螢幕中了 .iOS 10 中 , 系統是一個一個加載 cell 的 ,二以前是一行一行加載的 , 這樣就可以提升很多性能 ;iOS 10 新增加的 Pre-Fetching 預加載這個是為了降低 UICollectionViewCell 在加載的時候所花費的時間 , 在 iOS 10 中 ,除了數據源協議和代理協議外 , 新增加了一個 UICollectionViewDataSourcePrefetching協議 , 這個協議裡面定義了兩個方法 :- (void)collectionView:(UICollectionView *)collectionView prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0);- (void)collectionView:(UICollectionView *)collectionView cancelPrefetchingForItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0);

Page 8: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

Xcode 8 & Swift 3 改版注意事項https 的問題iOS 9 中默認非 HTTS 的網絡是被禁止的,當然我們也可以把 NSAllowsArbitraryLoads 設置為YES禁用 ATS 。不過 iOS 10 從 2017年 1月 1 日起蘋果不允許我們通過這個方法跳過 ATS ,也就是說強制我們用 HTTPS ,如果不這樣的話提交 App 可能會被拒絕。但是我們可以通過NSExceptionDomains 來針對特定的域名開放 HTTP 可以容易通過審核。Swif3.0 新增作用域訪問級別 fileprivate 目前有如下訪問級別:公開 (public)內部 (internal)文件外私有 (fileprivate)私有 (private)

Alamofire 經過測試, Alamofire 的 4.0.0 版本僅支持 iOS9+和 Swift3.0.x ,如果想使用Swift2.3 開發的同學可以安裝 Alamofire 的 3.5.0 版本,設置所有的 Use Legacy Swift Language Version 為 Yes 。

Page 9: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

Xcode 8 & Swift 3 改版注意事項Swift 3 語法的變動http://www.appcoda.com.tw/swift3-changes/

http://www.gegugu.com/2016/07/14/16450.html

https://read01.com/4moRGQ.html

Page 10: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDKFaceBook SDK :1. 申請 FaceBook 開發者帳號 https://developers.facebook.com/

2. 建立應用程式3. 建立 Xcode 專案4. 下載 FaceBook SDK

5. 設定 Info.plist

6. FaceBook 應用程式 Bundle Identifier

7. 完成 Xcode 專案

Page 11: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

申請 FaceBook 開發者帳號 https://developers.facebook.com/

確認原個人帳號註冊轉為開發人員帳號

c

Page 12: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 建立應用程式

Page 13: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

c

填入應用程式名稱

Page 14: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

c

c

填入顯示名稱、電子郵件,選擇類別

Page 15: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

FaceBook SDK安裝設定步驟

下載 FaceBook SDK ,並解壓縮

Page 16: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

記住應用程式編號

Page 17: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

選擇「是」

Page 18: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

開啟終端機,進到專案資料夾執行 pod init ,建立 Podfile 文件編輯 Podfile 文件

將連結設定檔拉 ( 複製 )到專案底下

編輯 Info.plist

Page 19: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

貼上 FaceBook 提供之 Info.plist 內容,貼於 </dict> 上方並修改填入專案 ID 和 顯示名稱

Page 20: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

確認是否帶入

Page 21: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

確認 Framework 路徑

Page 22: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

設定 Facebook 連結

Page 23: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

設定 Facebook 連結

Page 24: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

放置 Button

cc

Page 25: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

放置 Button

cc

Page 26: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

選用 Facebook Button

FaceBook 登入連結

cc

Page 27: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

載入 FaceBook 帳號資料

Page 28: I os swift 3.0 初體驗 & 玩 facebook sdk

iOS Swift 3.0 初體驗 & 玩 FaceBook SDK