Upload
grady-zhuo
View
249
Download
4
Embed Size (px)
DESCRIPTION
This slide show you how to create a keyboard-extension, that is the new feature for expanding iOS system, by using Xcode 6. And in this slide also explain how keyboard-extensions working and connecting.
Citation preview
Extension SharingCustom Keyboard in iOS 8
Grady Zhuo• iOS Developer
• iOS 開發經驗2年
• 使⽤用開發語⾔言:
• Objective-C
• Python
• Swift
ExtensionApple’s Plan for a Powerful App Ecosystem
什麼是 Extension
• 為特定⺫⽬目的建制的⼆二進位檔
• 不是App
• 透過Apple的Framework程式呼叫 - 不能⾃自已呼叫Extension
• ⾮非App對App的IPC呼叫 - Extension也不是App
• App間呼叫依然採⽤用-[UIApplication openURL:]
Extension的運作
Extension的運作(獨⽴立)
Containing app
App extension
Host app
Request
Response
Extension的運作(間接)
Containing app Shared
resources
Open URL
App extension
Host app
Request
ResponseRead/Write
Read/Write
Extension的⽣生命週期
App extension ⽣生命週期
1.使⽤用者選⽤用Extension4.系統刪除Extension
3. 執⾏行載具App中Extension 2.系統啟動選⽤用的Extension
Custom Keyboard⾃自已的鍵盤,⾃自已刻!
Custom Keyboard• Bundle Configuration as App
• UIKit Framework
• UIInputViewController - as ViewController Life-cycle
• viewDidLoad
• viewWillAppear
• viewDidAppear
• viewWillDisappear
• viewDidDisapper
Keyboard 呼叫流程
Custom Keyboard
Text Input ObjectLorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do ciusmod tempor
incididunt ut labore et dolore
Maecenas
magna aliqua
Running Keyboard
UIInputViewController
Next Keyboard
View
Hello
UIButton
insertText:
Containing App
Custom Keyboard Target
Xcode ProjectApp Extension Target Template
hello
UITextDocumentProxy
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do ciusmod tempor
incididunt ut labore et dolore
Maecenas hello
magna aliqua
Running Keyboard
UIInputViewController
Next Keyboard
View
Hello
textDocumentProxy <UITextDocumentProxy>
UIInputViewController
UIKit Framework
insertText:
Info.plist Extended Keys
• PrimaryLanguage:鍵盤主要對應的語⾔言 ex. zh-TW, en-US,…
• NSExtensionPrincipalClass:Extension啟動時主要的Class
✦ Swift需完整Namespace
✦ ex. MyModule.KeyboardViewController
✦ 也可⽤用NSMainStoryboard代替
• App Extension Key參考⽂文件
PrimaryLanguage
PrimaryLanguage
RequestsOpenAccess的功⽤用• 可根據使⽤用者位置與聯絡資訊改善鍵盤
• 可與Server連線
• 可與Keyboard Containing App 進⾏行共通資源的設定
• 可同步⾄至iCloud,使所有裝置都有相同的偏好設定與資源
• 可以透過Containing App 提供In app purchase或GameCenter⽀支援
• 需使⽤用者同意,請參閱Designing for User Trust
Demo
建⽴立Keyboard Extension
1. ⾄至專案設定加⼊入⼀一個新的Target
2. 選擇Custom Keyboard
3. 設定Extension專案資料
4. 按Activate
設定鍵盤主要語系為中⽂文
5. 開啟Keyboard的Info.plist這裡也可以從專案檔選取Target設定
6.展開⾄至NSExtensionAttribute
7. 修改PrimaryLanguagezh-TW就是台灣使⽤用的繁體中⽂文
Q & A
感謝聆聽