もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら...
description
Transcript of もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら...
![Page 1: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/1.jpg)
iOS8 App Extensions
もしiOS8のカスタムキーボードが
ガジェットのSDKを搭載したら
カスタムキーボードをバーコードリーダーと連携させてみた
2014/10/18 Ver.1.0.0
iOS 8/Swift エンジニア勉強会@ヤフー - connpass
![Page 2: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/2.jpg)
自己紹介
❖プログラム3年ぐらい
❖文系!
❖ iOS / 技術ネタ 初発表@niwatako
![Page 3: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/3.jpg)
B2B向けiOSエンジニアです
![Page 4: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/4.jpg)
モバイルソリューションの
![Page 5: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/5.jpg)
iOS向けハード製品も出しています。
![Page 6: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/6.jpg)
iPhone / iPod touch 装着型、バーコードリーダー
モバイルソリューションの
![Page 7: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/7.jpg)
しかし課題が…
![Page 8: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/8.jpg)
バーコードリーダー製品の課題
アプリへのSDK組み込みが必須。
・SDK搭載の専用アプリを開発するコスト・他社製品からの乗り換え時のSDK差替コスト・一般向けアプリや
Apple標準アプリにはSDKが組み込めない!
![Page 9: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/9.jpg)
そこへiOS8が登場
![Page 10: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/10.jpg)
iOS8 App Extensions
カスタムキーボード独自キーボードの作成が可能に
![Page 11: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/11.jpg)
Before
ピッ(読み取り)
◯
×
SDK
+APP
APP
標準APP
×
SDKなし
SDKなしSDK対応済みアプリでのみ
利用可能
![Page 12: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/12.jpg)
After!?
ピッ(読み取り)
◯
+
APP
APP
標準APP
◯
◯
キーボード
SDKどのアプリでも利用可能
![Page 13: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/13.jpg)
SDKを組込んだキーボードを作れば 全てのアプリで
バーコードリーダーが使える??
でもそんなこと、本当にできるの?
![Page 14: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/14.jpg)
やってみました。
![Page 15: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/15.jpg)
Main subject
#もしガジェ
iOS8 のカスタムキーボードにガジェット(External Accessory)と連携する機能を埋め込むことは出来るのか?
![Page 16: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/16.jpg)
まず カスタムキーボードについて
![Page 17: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/17.jpg)
#もしガジェ
About カスタムキーボード
iOS8 App Extensions
![Page 18: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/18.jpg)
カスタムキーボードは App Extensions の一部Extensionポイント 標準的なApp Extensions
Today(iOSおよびOS X)
通知センターの「今日(Today)」ビューに置いて、 表示内容を即座に更新し、あるいは簡単なタスクを 実行する (このExtensionをウィジェット(widget)と呼 ぶ)
Share(iOSおよびOS X) 情報投稿サイトに記事を投稿して他のユーザと共有する
Action(iOSとOS X、UIありとUIなし)
ホストアプリケーションで表示されるコンテンツを操作または表示する
Photo Editing(iOS)
「写真(Photos)」アプリケーションで写真や動画を編集する
Finder Sync(OS X)
ファイルの同期状態に関する情報をFinderに直接表示します。
ドキュメントプロバイダ (iOS、UIありと UIなし) ファイルのリポジトリにアクセスして管理します。
カスタムキーボード(iOS) iOSシステムキーボードに代わるカスタムキーボードを、あらゆるアプリケーションで使えるようにします。
![Page 19: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/19.jpg)
How to develop?
![Page 20: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/20.jpg)
App Extension の全体像
![Page 21: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/21.jpg)
App Extension は、アプリの中に組み込む形で配布します。
App Extensionを同梱しているアプリのことを、
App Extensionに対して Containing App と呼びます。
Containing App と App Extension は、サンドボックスが別々で独立しています。
App Extension はアプリに同梱して配布 実行時は独立したサンドボックスを持つ
![Page 22: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/22.jpg)
App Extension は、アプリの中に組み込む形で配布します。
App Extensionを同梱しているアプリのことを、
App Extensionに対して Containing App と呼びます。
Containing App と App Extension は、サンドボックスが別々で独立しています。
App Extension はアプリに同梱して配布 実行時は独立したサンドボックスを持つ
エクステンション
エクステンションをバンドルする親アプリ
エクステンションを呼び出して使うアプリ
同梱してAppStoreから配布
![Page 23: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/23.jpg)
カスタムキーボードには 親になるアプリが必要。
![Page 24: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/24.jpg)
用意するもの:既存プロジェクト
![Page 25: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/25.jpg)
用意するもの:既存プロジェクト
![Page 26: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/26.jpg)
続いてアプリに カスタムキーボードエクステンションを
追加します
![Page 27: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/27.jpg)
カスタムキーボードのターゲットを追加
![Page 28: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/28.jpg)
カスタムキーボードのターゲットを追加
![Page 29: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/29.jpg)
カスタムキーボードのターゲットを追加
![Page 30: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/30.jpg)
聞かれたらSchemeをActivate
![Page 31: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/31.jpg)
追加されました!
![Page 32: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/32.jpg)
追加されました!
![Page 33: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/33.jpg)
実行してみます
![Page 34: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/34.jpg)
Run!(Safariで)
![Page 35: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/35.jpg)
※エクステンションは単体では起動できません。
エクステンションを呼び出すHostAppを起動し、
HostApp上でエクステンションを起動します。
Safariを選んで実行してみます。
![Page 36: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/36.jpg)
なにも起きない!
キーボード見えない。。。
![Page 37: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/37.jpg)
シミュレーターの 設定の問題でした
![Page 38: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/38.jpg)
Toggle Software Keyboard
![Page 39: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/39.jpg)
標準キーボードしか出ない!
![Page 40: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/40.jpg)
キーボードは設定画面で追加しないと キーボードを切り替えた時に現れないようです!
デバッグ実行でキーボードを指定してるんだから直接起動したらいいのに。。。
![Page 41: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/41.jpg)
設定でキーボードを追加
設定 > 一般 > キーボード > 他社製キーボード
から、作ったキーボードを有効化
![Page 42: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/42.jpg)
現れた!
灰色のこれ
![Page 43: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/43.jpg)
KeyboardViewController
デフォルトでキーボード切り替えボタンが生成されています。
![Page 44: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/44.jpg)
KeyboardViewController
キーボードでできる事…基本はこれだけ!
入力文字列を渡すまでの間に、どのように文字列を生成するか、加工するかが、
開発者の腕の見せどころ!
![Page 45: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/45.jpg)
続いてガジェットについて
![Page 46: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/46.jpg)
#もしガジェ
About External Accessories
Communicating withan Accessory
![Page 47: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/47.jpg)
ExternalAccessoryFramework
外部機器と接続するにはこのフレームワークが必須です!
![Page 48: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/48.jpg)
Supported external accessory protocols
※ info.plist
さらに、接続する機器のID(Appleに認定された外部機器が持ってる)を指定すると、機器とアプリが連携できるようになります。
![Page 49: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/49.jpg)
これで 特定の外部機器と連携が可能に
あとは機器によって必要なSDKや必要な制御があるのでそれに合わせて実装します。
一般に、外部装置を制御するSDKが機器の開発元から配布されています。
![Page 50: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/50.jpg)
いざ融合
![Page 51: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/51.jpg)
用意するもの:既存プロジェクト
![Page 52: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/52.jpg)
カスタムキーボードのターゲットを追加
![Page 53: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/53.jpg)
追加されました!
![Page 54: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/54.jpg)
External Accessory 対応App ExtensionのKeyboardターゲットに対して
Frameworkの追加とPlistへの記入でAsReaderとの接続に対応
![Page 55: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/55.jpg)
AsReader SDK
@protocol AsReaderManagerDelegate <NSObject> @optional // バーコードデータを通知するメソッド - (void)barcodeData:(NSString *)barcode; @end
@interface AsReaderManager : NSObject<RcpDelegate> // AsReaderManagerDelegateプロトコルを実装したクラスをデリゲートとして保持 @property (assign)id<AsReaderManagerDelegate> delegate; @end
AsReaderManagerDelegateプロトコル
AsReaderManagerクラス バーコードリーダーを制御してくれるクラス
読取りを通知するプロトコル
![Page 56: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/56.jpg)
KeyboardViewController
@interface KeyboardViewController : UIInputViewController <AsReaderManagerDelegate> - (void)barcodeData:(NSString *)barcode; @end
キーボード側で、読み取ったバーコードの値を受け取るためのAsReaderManagerDelegateプロトコルを実装することを宣言
![Page 57: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/57.jpg)
KeyboardViewControllerにSDKを実装
@implementation KeyboardViewController - (void)viewDidAppear:(BOOL)animated{ // SDKのインスタンス化とデリゲートのセット [[AsReaderManager sharedManager] setDelegate:self]; }
- (void)barcodeData:(NSString *)barcode{ // デリゲートで受け取ったバーコードデータをキーボード入力文字として利用 [self.textDocumentProxy insertText:barcode]; } @end
viewDidAppear でSDKをインスタンス化して自身をデリゲートにセット。
![Page 58: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/58.jpg)
KeyboardViewControllerにSDKを実装
@implementation KeyboardViewController - (void)viewDidAppear:(BOOL)animated{ // SDKのインスタンス化とデリゲートのセット [[AsReaderManager sharedManager] setDelegate:self]; }
- (void)barcodeData:(NSString *)barcode{ // デリゲートで受け取ったバーコードデータをキーボード入力文字として利用 [self.textDocumentProxy insertText:barcode]; } @end
バーコードを読み取った時にデータを通知で受け取る。バーコードはそのままキーボード入力としてDocumentProxyに渡す。
![Page 59: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/59.jpg)
うごかしてみた
![Page 60: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/60.jpg)
だめだった
![Page 61: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/61.jpg)
まだできる事がある
※ info.plist
![Page 62: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/62.jpg)
RequestsOpenAccess YES
![Page 63: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/63.jpg)
“フルアクセスを許可”が設定に登場
![Page 64: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/64.jpg)
これでどうでしょう
![Page 65: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/65.jpg)
できた
Safari上のWEB検索フォームで作ったキーボードを使ってみるとバーコード読取ができました!
![Page 66: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/66.jpg)
できた
読み取ったバーコードで検索した結果と、本の表紙が一致!正しくバーコードを読めています
![Page 67: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/67.jpg)
まとめ
❖ カスタムキーボードは簡単に作れた
❖ 出来る事は、文字列入力と1文字削除だけ
❖ ただし裏で結構いろんな処理が実行出来る
❖ Lightning接続した外部機器を制御するのも可
❖ キーボードでゲームしたり遠隔操作したり出来る…?
![Page 68: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/68.jpg)
App Extensions プログラミングガイド
❖ https://developer.apple.com/jp/devcenter/ios/library/documentation/ExtensibilityPG.pdf
❖ 日本語!!
❖ カスタムキーボード (P.71~)
ご興味ある方はぜひこちらもご覧ください。
![Page 69: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/69.jpg)
続編❖ 10/22(水) Potaitotips
❖ 11/01(土) Cocoa勉強会関西 ★AppStoreリリース版担当者登場
❖ 11/15(土) Cocoa勉強会関東
SDKを組み込んだキーボードがAppStoreに公開できるのか?など今後お話できればと思います。
(現在結果待ち…)
![Page 70: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/70.jpg)
(宣伝)
![Page 71: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/71.jpg)
ハードとソフトの融合で 業務の世界に革命を起こしたい
iOSエンジニア募集中
![Page 72: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/72.jpg)
導入企業様、 対応アプリデベロッパー様募集中
![Page 73: もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo](https://reader034.fdocument.pub/reader034/viewer/2022052210/557d6986d8b42a7c638b4824/html5/thumbnails/73.jpg)
ご清聴ありがとうございました