Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Keyboard Extension sharing

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Keyboard Extension sharing

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.

Avatar for Grady Zhuo

Grady Zhuo

July 28, 2014

Other Decks in Programming

Transcript

  1. 什麼是 Extension • 為特定⺫⽬目的建制的⼆二進位檔 • 不是App • 透過Apple的Framework程式呼叫 - 不能⾃自已呼叫Extension

    • ⾮非App對App的IPC呼叫 - Extension也不是App • App間呼叫依然採⽤用-[UIApplication openURL:]
  2. Custom Keyboard • Bundle Configuration as App • UIKit Framework

    • UIInputViewController - as ViewController Life-cycle • viewDidLoad • viewWillAppear • viewDidAppear • viewWillDisappear • viewDidDisapper
  3. Keyboard 呼叫流程 Custom Keyboard Text Input Object Lorem 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 Project App Extension Target Template hello
  4. 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:
  5. Info.plist Extended Keys • PrimaryLanguage:鍵盤主要對應的語⾔言 ex. zh-TW, en-US,… • NSExtensionPrincipalClass:Extension啟動時主要的Class

    ✦ Swift需完整Namespace ✦ ex. MyModule.KeyboardViewController ✦ 也可⽤用NSMainStoryboard代替 • App Extension Key參考⽂文件
  6. RequestsOpenAccess的功⽤用 • 可根據使⽤用者位置與聯絡資訊改善鍵盤 • 可與Server連線 • 可與Keyboard Containing App 進⾏行共通資源的設定

    • 可同步⾄至iCloud,使所有裝置都有相同的偏好設定與資源 • 可以透過Containing App 提供In app purchase或 GameCenter⽀支援 • 需使⽤用者同意,請參閱Designing for User Trust