27
Extension Sharing Custom Keyboard in iOS 8

Keyboard Extension sharing

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

Page 1: Keyboard Extension sharing

Extension SharingCustom Keyboard in iOS 8

Page 2: Keyboard Extension sharing

Grady Zhuo• iOS Developer

• iOS 開發經驗2年

• 使⽤用開發語⾔言:

• Objective-C

• Python

• Swift

Page 3: Keyboard Extension sharing

ExtensionApple’s Plan for a Powerful App Ecosystem

Page 4: Keyboard Extension sharing

什麼是 Extension

• 為特定⺫⽬目的建制的⼆二進位檔

• 不是App

• 透過Apple的Framework程式呼叫 - 不能⾃自已呼叫Extension

• ⾮非App對App的IPC呼叫 - Extension也不是App

• App間呼叫依然採⽤用-[UIApplication openURL:]

Page 5: Keyboard Extension sharing

Extension的運作

Page 6: Keyboard Extension sharing

Extension的運作(獨⽴立)

Containing app

App extension

Host app

Request

Response

Page 7: Keyboard Extension sharing

Extension的運作(間接)

Containing app Shared

resources

Open URL

App extension

Host app

Request

ResponseRead/Write

Read/Write

Page 8: Keyboard Extension sharing

Extension的⽣生命週期

App extension ⽣生命週期

1.使⽤用者選⽤用Extension4.系統刪除Extension

3. 執⾏行載具App中Extension 2.系統啟動選⽤用的Extension

Page 9: Keyboard Extension sharing

Custom Keyboard⾃自已的鍵盤,⾃自已刻!

Page 10: Keyboard Extension sharing

Custom Keyboard• Bundle Configuration as App

• UIKit Framework

• UIInputViewController - as ViewController Life-cycle

• viewDidLoad

• viewWillAppear

• viewDidAppear

• viewWillDisappear

• viewDidDisapper

Page 11: Keyboard Extension sharing

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

Page 12: Keyboard Extension sharing

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:

Page 13: Keyboard Extension sharing

Info.plist Extended Keys

• PrimaryLanguage:鍵盤主要對應的語⾔言 ex. zh-TW, en-US,…

• NSExtensionPrincipalClass:Extension啟動時主要的Class

✦ Swift需完整Namespace

✦ ex. MyModule.KeyboardViewController

✦ 也可⽤用NSMainStoryboard代替

• App Extension Key參考⽂文件

Page 14: Keyboard Extension sharing

PrimaryLanguage

PrimaryLanguage

Page 15: Keyboard Extension sharing

RequestsOpenAccess的功⽤用• 可根據使⽤用者位置與聯絡資訊改善鍵盤

• 可與Server連線

• 可與Keyboard Containing App 進⾏行共通資源的設定

• 可同步⾄至iCloud,使所有裝置都有相同的偏好設定與資源

• 可以透過Containing App 提供In app purchase或GameCenter⽀支援

• 需使⽤用者同意,請參閱Designing for User Trust

Page 16: Keyboard Extension sharing

Demo

Page 17: Keyboard Extension sharing

建⽴立Keyboard Extension

Page 18: Keyboard Extension sharing

1. ⾄至專案設定加⼊入⼀一個新的Target

Page 19: Keyboard Extension sharing

2. 選擇Custom Keyboard

Page 20: Keyboard Extension sharing

3. 設定Extension專案資料

Page 21: Keyboard Extension sharing

4. 按Activate

Page 22: Keyboard Extension sharing

設定鍵盤主要語系為中⽂文

Page 23: Keyboard Extension sharing

5. 開啟Keyboard的Info.plist這裡也可以從專案檔選取Target設定

Page 24: Keyboard Extension sharing

6.展開⾄至NSExtensionAttribute

Page 25: Keyboard Extension sharing

7. 修改PrimaryLanguagezh-TW就是台灣使⽤用的繁體中⽂文

Page 26: Keyboard Extension sharing

Q & A

Page 27: Keyboard Extension sharing

感謝聆聽