SlideShare ist ein Scribd-Unternehmen logo
1 von 28
iOS Swift 3.0 初體驗
& 玩 FaceBook SDK
學習主題
• 社群成立目的簡介
• 自我介紹與哈啦
• 功力複習
• 程式實作(Swift)
• 問題與交流
個人簡介
諸葛魔斌
工作室:諸葛魔斌科技創作室
學歷:高應大---工管系(非資訊科系)
E-Mail:chugermobin@gmail.com
官方網站:http://twcts.com
Facebook:https://goo.gl/volM7Z
粉絲團 :https://goo.gl/LI08wh
社群 :https://goo.gl/kjCsz1
Line (id) :http://goo.gl/ayGW7d
Line@ :http://goo.gl/pQHjWH
Line Bot :http://goo.gl/ljdxfV
Play商店:http://goo.gl/CkVdsd
App Store:http://apple.co/1Qehd64
專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、
Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 ……
楊政斌
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 我們需要通過您的地理位置信息獲取您
周邊的相關數據,定位的需要這麼寫,防止上架被拒
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 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方法.
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方法;
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 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);
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。
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
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK:
1. 申請 FaceBook 開發者帳號
https://developers.facebook.com/
2. 建立應用程式
3. 建立 Xcode 專案
4. 下載 FaceBook SDK
5. 設定 Info.plist
6. FaceBook 應用程式 Bundle Identifier
7. 完成 Xcode 專案
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
申請 FaceBook 開發者帳號 https://developers.facebook.com/
確認原個人帳號註冊轉為開發人員帳號
c
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
建立應用程式
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
c
填入應用程式名稱
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
c
c
填入顯示名稱、電子郵件,選擇類別
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK
安裝設定步驟
下載 FaceBook SDK,並解壓縮
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
記住應用程式編號
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
選擇「是」
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
開啟終端機,進到專案資料夾
執行 pod init,建立 Podfile 文件
編輯 Podfile 文件
將連結設定檔拉(複製)
到專案底下
編輯Info.plist
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
貼上 FaceBook 提供之 Info.plist 內容,
貼於 </dict> 上方
並修改填入專案 ID 和 顯示名稱
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
確認是否帶入
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
確認 Framework 路徑
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
設定 Facebook 連結
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
設定 Facebook 連結
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
放置 Button
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
放置 Button
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
選用 Facebook Button
FaceBook 登入連結
cc
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
載入 FaceBook 帳號資料
iOS Swift 3.0 初體驗 & 玩 FaceBook SDK

Weitere ähnliche Inhalte

Andere mochten auch

iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAPiOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAPMing-Sian Lin
 
CocoaPods 使用教學
CocoaPods 使用教學CocoaPods 使用教學
CocoaPods 使用教學ShengWen Chiou
 
Swift Bengaluru Meetup slides
Swift Bengaluru Meetup slidesSwift Bengaluru Meetup slides
Swift Bengaluru Meetup slidesPushkar Kulkarni
 
Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Korhan Bircan
 
Swift - the future of iOS app development
Swift - the future of iOS app developmentSwift - the future of iOS app development
Swift - the future of iOS app developmentopenak
 
The Swift Programming Language with iOS App
The Swift Programming Language with iOS AppThe Swift Programming Language with iOS App
The Swift Programming Language with iOS AppMindfire Solutions
 
Medidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium HighlightsMedidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium HighlightsDonna Locke
 
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08Dennis Sweitzer
 
ios_summit_2016_korhan
ios_summit_2016_korhanios_summit_2016_korhan
ios_summit_2016_korhanKorhan Bircan
 
Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013Brock Heinz
 
Tools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOSTools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOSTeri Grossheim
 
Improving apps with iOS 10 notifications (do iOS 2016)
Improving apps with iOS 10 notifications (do iOS 2016)Improving apps with iOS 10 notifications (do iOS 2016)
Improving apps with iOS 10 notifications (do iOS 2016)Donny Wals
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016PiXeL16
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with SwiftTurnToTech
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)Jonathan Engelsma
 

Andere mochten auch (20)

iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAPiOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
 
CocoaPods 使用教學
CocoaPods 使用教學CocoaPods 使用教學
CocoaPods 使用教學
 
SWIFT 3
SWIFT 3SWIFT 3
SWIFT 3
 
Swift Bengaluru Meetup slides
Swift Bengaluru Meetup slidesSwift Bengaluru Meetup slides
Swift Bengaluru Meetup slides
 
Korhan bircan
Korhan bircanKorhan bircan
Korhan bircan
 
Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)
 
Swift - the future of iOS app development
Swift - the future of iOS app developmentSwift - the future of iOS app development
Swift - the future of iOS app development
 
The Swift Programming Language with iOS App
The Swift Programming Language with iOS AppThe Swift Programming Language with iOS App
The Swift Programming Language with iOS App
 
iOSMumbai Meetup Keynote
iOSMumbai Meetup KeynoteiOSMumbai Meetup Keynote
iOSMumbai Meetup Keynote
 
Medidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium HighlightsMedidata Customer Only Event - Global Symposium Highlights
Medidata Customer Only Event - Global Symposium Highlights
 
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08Jsm2013,598,sweitzer,randomization metrics,v2,aug08
Jsm2013,598,sweitzer,randomization metrics,v2,aug08
 
ios_summit_2016_korhan
ios_summit_2016_korhanios_summit_2016_korhan
ios_summit_2016_korhan
 
Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013Medidata AMUG Meeting / Presentation 2013
Medidata AMUG Meeting / Presentation 2013
 
Tools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOSTools, Frameworks, & Swift for iOS
Tools, Frameworks, & Swift for iOS
 
What's new in Swift 3
What's new in Swift 3What's new in Swift 3
What's new in Swift 3
 
Improving apps with iOS 10 notifications (do iOS 2016)
Improving apps with iOS 10 notifications (do iOS 2016)Improving apps with iOS 10 notifications (do iOS 2016)
Improving apps with iOS 10 notifications (do iOS 2016)
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016
 
Medidata Rave Coder
Medidata Rave CoderMedidata Rave Coder
Medidata Rave Coder
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with Swift
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 7)
 

Ähnlich wie I os swift 3.0 初體驗 &amp; 玩 facebook sdk

Android studio 2.2 初體驗 &amp; 玩 face book sdk
Android studio 2.2 初體驗 &amp; 玩 face book sdkAndroid studio 2.2 初體驗 &amp; 玩 face book sdk
Android studio 2.2 初體驗 &amp; 玩 face book sdk政斌 楊
 
程式設計初體驗
程式設計初體驗程式設計初體驗
程式設計初體驗政斌 楊
 
Firebase Facebook SignIn By SWIFT
Firebase Facebook SignIn By SWIFTFirebase Facebook SignIn By SWIFT
Firebase Facebook SignIn By SWIFTJoan0730
 
Facebook SDK - JavaScript
Facebook SDK - JavaScriptFacebook SDK - JavaScript
Facebook SDK - JavaScriptRyan Chung
 
mobiusDesign 梅比斯數位行銷工作室 作品集
mobiusDesign  梅比斯數位行銷工作室  作品集mobiusDesign  梅比斯數位行銷工作室  作品集
mobiusDesign 梅比斯數位行銷工作室 作品集Leader Chen
 
第一科大Chatbot LUIS
第一科大Chatbot LUIS第一科大Chatbot LUIS
第一科大Chatbot LUISIan Chen
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖Liu Chao
 
Html5研究小组《微周刊》第14期
Html5研究小组《微周刊》第14期Html5研究小组《微周刊》第14期
Html5研究小组《微周刊》第14期PL dream
 
如何變成 iOS App 開發魔法師 (1 小時)
如何變成 iOS App 開發魔法師 (1 小時)如何變成 iOS App 開發魔法師 (1 小時)
如何變成 iOS App 開發魔法師 (1 小時)彼得潘 Pan
 
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC
 
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习Lester,Gaofeng Ruan
 
LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享William Chong
 
部落格製作與數位圖像編修
部落格製作與數位圖像編修部落格製作與數位圖像編修
部落格製作與數位圖像編修guest8a0fc8
 
如何自動化測試Android Deeplink
如何自動化測試Android Deeplink如何自動化測試Android Deeplink
如何自動化測試Android DeeplinkWu Wells
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
《氪周刊:互联网创业必读》(第83期)
《氪周刊:互联网创业必读》(第83期)《氪周刊:互联网创业必读》(第83期)
《氪周刊:互联网创业必读》(第83期)36Kr.com
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_finalWei Sun
 

Ähnlich wie I os swift 3.0 初體驗 &amp; 玩 facebook sdk (20)

Android studio 2.2 初體驗 &amp; 玩 face book sdk
Android studio 2.2 初體驗 &amp; 玩 face book sdkAndroid studio 2.2 初體驗 &amp; 玩 face book sdk
Android studio 2.2 初體驗 &amp; 玩 face book sdk
 
程式設計初體驗
程式設計初體驗程式設計初體驗
程式設計初體驗
 
Firebase Facebook SignIn By SWIFT
Firebase Facebook SignIn By SWIFTFirebase Facebook SignIn By SWIFT
Firebase Facebook SignIn By SWIFT
 
Facebook SDK - JavaScript
Facebook SDK - JavaScriptFacebook SDK - JavaScript
Facebook SDK - JavaScript
 
mobiusDesign 梅比斯數位行銷工作室 作品集
mobiusDesign  梅比斯數位行銷工作室  作品集mobiusDesign  梅比斯數位行銷工作室  作品集
mobiusDesign 梅比斯數位行銷工作室 作品集
 
第一科大Chatbot LUIS
第一科大Chatbot LUIS第一科大Chatbot LUIS
第一科大Chatbot LUIS
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖
 
Html5研究小组《微周刊》第14期
Html5研究小组《微周刊》第14期Html5研究小组《微周刊》第14期
Html5研究小组《微周刊》第14期
 
如何變成 iOS App 開發魔法師 (1 小時)
如何變成 iOS App 開發魔法師 (1 小時)如何變成 iOS App 開發魔法師 (1 小時)
如何變成 iOS App 開發魔法師 (1 小時)
 
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
 
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习
混聚开发模式与应用 兼谈Web2.0时代的数字生活与学习
 
LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享
 
部落格製作與數位圖像編修
部落格製作與數位圖像編修部落格製作與數位圖像編修
部落格製作與數位圖像編修
 
如何自動化測試Android Deeplink
如何自動化測試Android Deeplink如何自動化測試Android Deeplink
如何自動化測試Android Deeplink
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
《氪周刊:互联网创业必读》(第83期)
《氪周刊:互联网创业必读》(第83期)《氪周刊:互联网创业必读》(第83期)
《氪周刊:互联网创业必读》(第83期)
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
ChatBot
ChatBotChatBot
ChatBot
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
Banquet 18
Banquet 18Banquet 18
Banquet 18
 

Mehr von 政斌 楊

iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式政斌 楊
 
iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識政斌 楊
 
深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計政斌 楊
 
Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識政斌 楊
 
iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識政斌 楊
 
Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習政斌 楊
 
Python vs json 玩open data
Python vs json 玩open dataPython vs json 玩open data
Python vs json 玩open data政斌 楊
 
iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習政斌 楊
 
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具政斌 楊
 
Golang 入門初體驗
Golang 入門初體驗Golang 入門初體驗
Golang 入門初體驗政斌 楊
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗政斌 楊
 
Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)政斌 楊
 
iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data政斌 楊
 
再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計政斌 楊
 

Mehr von 政斌 楊 (14)

iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式iOS swift 玩 soket 聊天通訊程式
iOS swift 玩 soket 聊天通訊程式
 
iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識iOS Swift & OCR 玩文字辨識
iOS Swift & OCR 玩文字辨識
 
深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計深入學習 iBeacon 之 iOS swift 程式設計
深入學習 iBeacon 之 iOS swift 程式設計
 
Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識Android Studio & Cloud Vision API 玩圖像辨識
Android Studio & Cloud Vision API 玩圖像辨識
 
iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識iOS swift & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識
 
Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習Android studio 之 i beacon 藍芽應用開發學習
Android studio 之 i beacon 藍芽應用開發學習
 
Python vs json 玩open data
Python vs json 玩open dataPython vs json 玩open data
Python vs json 玩open data
 
iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習iOS swift 之 iBeacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習
 
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具Corona 初探 lua 語言,玩跨平台(iOS &  android) 行動裝置開發工具
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
 
Golang 入門初體驗
Golang 入門初體驗Golang 入門初體驗
Golang 入門初體驗
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗
 
Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)Python 入門初體驗(程式語法)
Python 入門初體驗(程式語法)
 
iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data
 
再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計
 

Kürzlich hochgeladen

EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 

Kürzlich hochgeladen (6)

EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 

I os swift 3.0 初體驗 &amp; 玩 facebook sdk

  • 1. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
  • 2. 學習主題 • 社群成立目的簡介 • 自我介紹與哈啦 • 功力複習 • 程式實作(Swift) • 問題與交流
  • 3. 個人簡介 諸葛魔斌 工作室:諸葛魔斌科技創作室 學歷:高應大---工管系(非資訊科系) E-Mail:chugermobin@gmail.com 官方網站:http://twcts.com Facebook:https://goo.gl/volM7Z 粉絲團 :https://goo.gl/LI08wh 社群 :https://goo.gl/kjCsz1 Line (id) :http://goo.gl/ayGW7d Line@ :http://goo.gl/pQHjWH Line Bot :http://goo.gl/ljdxfV Play商店:http://goo.gl/CkVdsd App Store:http://apple.co/1Qehd64 專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、 Golang、Unity、MySQL、FreeBSD、Server架設、CAD 、 …… 楊政斌
  • 4. 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 我們需要通過您的地理位置信息獲取您 周邊的相關數據,定位的需要這麼寫,防止上架被拒
  • 5. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 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方法.
  • 6. 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方法;
  • 7. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK Xcode 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);
  • 8. 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。
  • 9. 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
  • 10. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK FaceBook SDK: 1. 申請 FaceBook 開發者帳號 https://developers.facebook.com/ 2. 建立應用程式 3. 建立 Xcode 專案 4. 下載 FaceBook SDK 5. 設定 Info.plist 6. FaceBook 應用程式 Bundle Identifier 7. 完成 Xcode 專案
  • 11. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 申請 FaceBook 開發者帳號 https://developers.facebook.com/ 確認原個人帳號註冊轉為開發人員帳號 c
  • 12. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 建立應用程式
  • 13. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK c 填入應用程式名稱
  • 14. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK c c 填入顯示名稱、電子郵件,選擇類別
  • 15. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK FaceBook SDK 安裝設定步驟 下載 FaceBook SDK,並解壓縮
  • 16. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 記住應用程式編號
  • 17. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 選擇「是」
  • 18. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 開啟終端機,進到專案資料夾 執行 pod init,建立 Podfile 文件 編輯 Podfile 文件 將連結設定檔拉(複製) 到專案底下 編輯Info.plist
  • 19. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 貼上 FaceBook 提供之 Info.plist 內容, 貼於 </dict> 上方 並修改填入專案 ID 和 顯示名稱
  • 20. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 確認是否帶入
  • 21. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 確認 Framework 路徑
  • 22. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 設定 Facebook 連結
  • 23. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 設定 Facebook 連結
  • 24. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 放置 Button cc
  • 25. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 放置 Button cc
  • 26. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 選用 Facebook Button FaceBook 登入連結 cc
  • 27. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK 載入 FaceBook 帳號資料
  • 28. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK