TweetOverview2.0.3でのキーボードショートカット対応とiPad/キーボードに関する考察

このエントリーをはてなブックマークに追加
はてなブックマーク - TweetOverview2.0.3でのキーボードショートカット対応とiPad/キーボードに関する考察

TweetOverview 2.0.3がリリースされました。
iTunes の App Store で配信中の iPhone、iPod touch、iPad 用 TweetOverview ツイート俯瞰デスクサイドアプリ

今回のバージョンでは、キーボードショートカットに対応しています。
特にiPadでデスクサイドに置いた時に、リンクのウェブページを見ている時に矢印キーでページの上下が出来ればと思い、iOS 7 のキーボードショートカット機能を使用して作成しました。動作でもはこちら

現在対応しているショートカットは以下のものです。

  1. ウェブページ表示中の、↑↓矢印キーによるスクロール
  2. ウェブページ、詳細画面を、⌘+wキーで閉じる
  3. ツイート一覧画面を、← → キーでスクロールする

iPadのキーボードは、Logicoolのウルトラスリムキーボードミニを使っています。iPad miniのサイズでキーボードがうちやすいか心配だったのですが、このキーボードはよく考えられていて、caps-lockを削ったりして、aキーからlキーの幅を確保して、タイピングがしやすくなっています。MacBook風の色もいいですね。同じキーボードの白と黒は9,000円くらいなのに、この色だけセールで4700円ほどになっているみたいで、おすすめです。白とも黒ともマッチしないシルバーなので不人気なのかな?黒とは同じ色ではないですが、キーの色が黒なのでマッチしている気はします。このキーボードにしたのは、まず薄くて軽いことと、次にiPadをたてても使えることです。アプリによっては,たてた方が使いやすいアプリも多いので、このキーボードのように縦向きでも横向きでも使えるのはとても便利です。

技術的には、iOS7で追加されたキー取得のAPIを使用しました。@k_katsumi さんの、サンプルコードを参照しました。
kishikawakatsumi/KeyboardShortcuts
ViewControllerでキーを取得するのですが、childViewControllerを使用していると、最下層(親)のViewControllerにしかキーがいかないので、受け渡しの仕組みを作る必要がありました。また、キーをキャプチャすると、WebViewの入力時にそのキーが効かなくなるので(矢印など)、それもwebViewの入力中のステータスを確認して読み込みたいキーを変えていく必要があります。

APIとして、ボタンを押し続けているステータスや、ボタンのリピートなどがあればさらに良いと思うので、その辺は将来のiOSに期待です。

最後にiPadにおけるキーボードの考察ですが、やはりタッチによる操作中でも、キーボードによる操作は非常に便利であるということが分かりました。スクロール操作を行うために画面にタッチするよりも、キーボードのしたボタンに指を置いて一定量を読んだ後にボンポンキーを押していく方が楽です。また、⌘+wなどは使う人には染み付いているので、その自然な動作がキーボードで出来れば、タッチパネルをタッチするよりも使用感が高いです。もちろんiPadアプリの場合はタッチでの動作がメインになるのですが、キーボードを使用している層には、このようにキーボードショートカット対応してもらえるとうれしい機能がたくさんあると思いました。実際このアプリになれてしまうと、Safariや別のアプリでウェブを見ている時も、ついつい上下ボタンを押してしまうようになりました。

ちょっと癖のあるアプリですが、是非TweetOverviewを使って、追加してほしいキーボードショートカットなどがあったらレポートいただければと思います。

Comments

comments

Powered by Facebook Comments

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">