Pro Yearly is on sale from $80 to $50! »

ペダルのある生活 / The Pedal

473b12ebcfb79adfaef97796e94fc25c?s=47 Hiron
April 27, 2018

ペダルのある生活 / The Pedal

Mobile Act OSAKA #4で発表したスライドです。

473b12ebcfb79adfaef97796e94fc25c?s=128

Hiron

April 27, 2018
Tweet

Transcript

  1. ペダルのある生活 2018/04/27 Mobile Act OSAKA #4

  2. なぜか土曜日 エライ人

  3. 自己紹介 • ひろん(一宮 浩教) • Twitter、GitHub、Qiita、
 SlideShare、Speaker Deck: ➡hironytic •

    株式会社 MetaMoJi(徳島勤務)
  4. None
  5. 音楽関係の法人様 • 楽譜の共有に利用したい

  6. iRig BlueTurn http://hookup.co.jp/products/ik-multimedia/irig-blueturn お荷物の
 お届けでーす

  7. iRig BlueTurn • Bluetooth接続のハードウェアキーボードとして 動作する - MODE 1: ↑/↓ -

    MODE 2: Page Up/Page Down - MODE 3: ←/→
  8. どうなるのか考える ハードウェアキーボードに対応すればよい /以上 http://amzn.asia/iPpfS6t

  9. ハードウェアキーボード対応(iOS) • UIKeyCommand • ファーストレスポンダーでUIKeyCommandオブジェ クトの配列を返せばよい extension UIResponder { @available(iOS

    7.0, *) open var keyCommands: [UIKeyCommand]? { get } }
  10. UIKeyCommandを返す class ViewController: UIViewController { override var canBecomeFirstResponder: Bool {

    return true } override var keyCommands: [UIKeyCommand]? { return [ UIKeyCommand(input: UIKeyInputUpArrow, modifierFlags: [], action: #selector(pageUp)), UIKeyCommand(input: UIKeyInputDownArrow, modifierFlags: [], action: #selector(pageDown)), UIKeyCommand(input: UIKeyInputLeftArrow, modifierFlags: [], action: #selector(pageUp)), UIKeyCommand(input: UIKeyInputRightArrow, modifierFlags: [], action: #selector(pageDown)), ] } @objc func pageDown() { /* ࣍ͷϖʔδ΁ */ } @objc func pageUp() { /* લͷϖʔδ΁ */ } }
  11. PageUp、PageDownは? • APIで定義されていない • Stack Overflowに答えがあった(*) - 文字列 "UIKeyInputPageUp", "UIKeyInputPageDown"

    - Undocumented APIの使用になるかどうかは
 知らんけど * https://stackoverflow.com/a/44321674/4313724 (たぶん大丈夫。知らんけど)
  12. UIKeyCommandを返す override var keyCommands: [UIKeyCommand]? { return [ UIKeyCommand(input: UIKeyInputUpArrow,

    modifierFlags: [], action: #selector(pageUp)), UIKeyCommand(input: UIKeyInputDownArrow, modifierFlags: [], action: #selector(pageDown)), UIKeyCommand(input: UIKeyInputLeftArrow, modifierFlags: [], action: #selector(pageUp)), UIKeyCommand(input: UIKeyInputRightArrow, modifierFlags: [], action: #selector(pageDown)), UIKeyCommand(input: "UIKeyInputPageUp", modifierFlags: [], action: #selector(pageUp)), UIKeyCommand(input: "UIKeyInputPageDown", modifierFlags: [], action: #selector(pageDown)), ] }
  13. ハードウェアキーボード対応(Android) class MainActivity : AppCompatActivity() { override fun onKeyDown(keyCode: Int,

    event: KeyEvent?): Boolean { when (keyCode) { KeyEvent.KEYCODE_DPAD_UP, KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_PAGE_UP -> { pageDown() return true } KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_PAGE_DOWN -> { pageUp() return true } else -> { return super.onKeyDown(keyCode, event) } } } private fun pageDown() { /* ࣍ͷϖʔδ΁ */ } private fun pageUp() { /* લͷϖʔδ΁ */ } }
  14. 報告   ぼく「このペダルの場合、追加のSDKも特に必 要ありませんでした。お客様はこのペダルを使わ れるんですよね?」   エライ人「さあ?Amazonで最初に見つかった のを買ってみただけ」   ぼく「えっ・・・!?」

  15. まとめ • iRig BlueTurnはハードウェアキーボード • iOSでは UIKeyCommand を使う • Androidでは

    onKeyDown() を使う