見出し画像

旧仮名キーボード開発記#3|既存のキーボードをしらべる

先行研究の調査(サーベイ)ということで、無料公開されている日本語入力キーボードを触ってみました。

コンセプト上、旧仮名キーボードを多機能化する意志はないのですが、最低限の機能が漏れていると「お話になりません。星1つです。」ということになるので、最低限何が実装されている必要があるのかを見ていきます。

つまり、星5を目指すためというよりは、星1を避けるためというつもりで調査します。

***

触ってみたキーボード

適当に探して見つかった日本語用キーボードをインストールして触ってみました。

Gboard
Googleが出しているキーボード。

Simeji
絵文字入力機能が充実したキーボード。

flick
設定できる機能が豊富なキーボード。

早手キーボード
ショートカット入力重視のキーボード。

FlickSKK
変換操作が独特なキーボード。

ANYTYPE
着せ替えが多めなキーボード。

半角カタカナ
半角カタカナ専用のキーボード。

まわるキーボード
円盤を回して入力するキーボード。

azooKey
以下URLで開発記事が公開されているキーボード https://qiita.com/ensan_hcl/items/0aefbe9c0dbbadd0ee4e

上記のキーボードのほかにも色々インストールしたのですが、クラッシュして動かないものがいくつかあり、それらについては調査対象外としました。キーボードアプリを開発するにあたって、クラッシュする原因も知っておきたいのですが、手がかりがないので原因は分かりませんでした。

見つかった機能

各キーボードアプリの設定画面などを見て機能を洗い出しました。分類して並び替えようと思いましたが、時間がかかりすぎるのでやめました。

・使い方(設定方法、機能紹介など)の表示
・キーボードの着せ替え(テーマ、背景色、フォント)
・キーボードの高さの調整
・キーの色、フォント、文字サイズの変更または調整
・ダークモード対応
・キー配列(テンキー、QWERTYなど)の変更
・数字用テンキーの配列(電卓式、電話式)の変更
・日本語用テンキーの入力方法(フリック式、ガラケー式)の設定
・特殊なキーボード(顔文字専用キーボードなど)の使用または不使用
・片手モード・左右寄せモード
・片手モード時の余白に変換キーを表示(カナ、半角カナ、ローマ字)
・フリック時の吹き出しを表示または非表示
・フリック時のアニメーションの有効化または無効化
・キーの音や振動の設定
・変換候補エリアの行数、スクロール方向などの設定
・変換候補に注釈をつけるかどうかの設定
・特殊な文字(絵文字、半角カナ、全角英数字、装飾英字、西暦和暦変換、Unicode入力変換など)を変換候補に含めるかどうかの設定
・入力する文字をすべて痛文字(変な装飾の付いた文字)にする設定
・変換候補で出したくない文字列の設定(ブラックリスト式)
・変換候補で出したくない絵文字のジャンルの設定
・音声による文字入力(文字、記号、顔文字、改行などのコマンド)
・画像挿入(変換候補に出てくる画像をタップすると、クリップボードにその画像がコピーされるなどで実現)
・クリップボードにコピーされた画像をキーボードアプリ内に蓄積するかどうかの設定
・目当ての画像を変換候補に出すためのコマンド値の設定
・変換候補の案をフォーラムに投稿または利用
・類義語の一覧表示
・変換機能がネットの情報を利用することを許可
・当該キーボード専用のユーザ辞書(単語、定型文、アスキーアートなどの登録)
・外部辞書の取り込み
・iOS本体のユーザ辞書や連絡先を使うかどうかの設定
・ユーザ辞書のバックアップまたは復元
・AIによる文脈解析サジェスト
・入力フォーマット(タイムスタンプなど)の設定
・変換候補の学習機能の有効化または無効化
・連文節変換の学習の有効化または無効化
・履歴(学習データ、入力履歴データ、検索履歴など)のリセット
・設定アプリ内での試し書き
・設定アプリ内でのSNS(小説投稿サイトなど)
・キーコンフィグ
・特定の文字列を入力した際のエフェクト(「クリスマス」と打って雪が舞うなど)の登録
・未確定の文字列は別エリアに表示し、確定されたら実際に入力する設定
・未確定の文字列がない場合に変換候補を表示しない設定
・フリック時、3dタッチで濁音を入力
・変換候補エリアの任意の場所を下スワイプすると最初の候補で確定される
・ジャンル別の文字一覧(矢印一覧、括弧一覧、絵文字一覧など)の表示
・同じ文字を連続で入力すると濁音に変換される設定
・カーソル移動
・文頭まで一気に削除
・Caps Lock
・フリック感度調整
・フリックガイド(例えば、「あ」キーの表面に小さく書かれている「い」「う」「え」「お」のこと)を表示
・英語入力時、最初の文字を大文字にする設定
・使用するスペースの種類(全角、半角)の設定
・空白キーをフリック入力して全角、半角の使い分け
・誤入力補正を使用するかどうかの設定
・アシスタント(ヘルプや変換候補の提案などを行うキャラクター)
・文字の拡大表示
・横画面と縦画面とで設定内容を分ける
・言語の追加
・使用統計情報の共有許可
・位置情報の利用
・ローカルストレージや一時データのクリア
・アプリ評価
・フィードバック送信
・利用規約・ライセンス表示
・プライバシーポリシー
・フルアクセス許可についての説明
・よくある質問
・バージョン情報
・更新情報
・アプリのSNS等でのシェア
・公式サイトへのリンク
・アカウント作成、ログイン
・有料プランへの登録
・金銭支援を募る機能

レビューを見てみる

既存キーボードのレビュー欄に載っている「苦情」と思われるもののうち、意味が分かったものを拾ってきました。

・変換の精度が悪い
・日本語と数字はテンキー配列、英語はQWERTY配列という組み合わせに対応してほしい
・タイピングが速いと入力処理が追いつかない(註1)
・右側のキーボード切り替えボタンのラベルについて、日本語キーボード表示中に「ABC」というラベルにするのではなく「あいう」というラベルにしてほしい(註2)
・日本語キーボードにカギ括弧を入力するためのキーがない(註3)
・空白キー長押しでカーソル移動できる機能が使えない
・空白キー長押しでカーソル移動するとき、カーソルが上下に動かない
・未確定の文字列がハイライトされない
・ブランドマークが常に左上に表示されていてイラつく
・行が下の方になったときにキーボードが下に行かない(註4)
・着せ替えをするとキーの文字が見にくくなる
・iPhone標準のキーボードとキーの配置が異なる(註5)
・1文字ずつカーソルを戻すボタンがない
・QWERTYキーボードにおいて、フリック入力時、タッチアップが画面外だったときに入力が無効になる
・日本語入力中に英語に切り替えると、未確定の文字列がすべて消える
・キーボードの高さを設定できない
・キーボードをしまうボタンがない
・QWERTY配列で記号の面がない
・変換候補の並び順が毎回変わる
・キーボード上部の灰色の部分が大きすぎる
・フリック時のポップアップが大きすぎる
・変換候補の注釈を非表示にしたい
・左括弧を打ったときに右括弧も含んだ変換候補が出てほしい
・数字の1をフリックすると右矢印を出せるが、全方向の矢印が変換候補として出るようにしてほしい
・変換候補を等間隔に揃えてレイアウトしてほしい
・変換候補で、流行りの単語が前に出てきて、よく使う単語が後ろの方に出てくる
・変換候補の全画面表示がほしい
・ガラケー方式に対応してほしい
・広告が邪魔
・個人情報を含む入力値を裏で送信している(註6)
・文字の太さや色を変えられるようにしてほしい
・アプリを消してもキーボードが消えない
・半角カナの長音であるべき文字がマイナス記号として入力される
・日本語入力はテンキー配列ではなくQWERTY配列を使いたいのに対応していない
・地球儀キーを押してもすぐに目的のキーボードが出てこない(註7)

註1:再現せず。フルアクセスを許可すると発生か。
註2:iPhone標準キーボードは、「フリックのみ」の設定をOFFにした場合、このキーボードと同じデザインであるが、ONにした場合、すべてのキーボード切り替えボタンが表示され、表示中のキーボードラベルがハイライトされる仕様。
註3:実際には「や」のキーの左右に割り当てられている(2020年1月23日確認時点)。
註4:再現せず。
註5:どのキーか不明。
註6:プライバシーポリシーにおいて否定。
註7:iPhone自体の仕様または不具合と考えられる。

所感として、変換精度が低いという苦情と求めるキー配列に対応していないという苦情が多い印象でした。

旧仮名キーボードが対応する機能

最低限必要な機能のみを選別し、対応します。

ここでは、最低限必要な機能とは何かを考えていきます。

ある理論によれば、そもそも品質というものには、当たり前品質一元的品質魅力的品質などいくつかの種類があるといいます。このうち「当たり前品質」と最低限度の「一元的品質」だけは満たしておかないと星1認定されるおそれがあることから、旧仮名キーボードでは「当たり前品質」と最低限度の「一元的品質」に分類される機能を優先的に実装することにします。

当たり前品質というのは「あっても特に感謝されないが、なければ不満を抱かせる」というタイプの品質で、たとえば「ひらがなが打てる機能」などがこれにあたります。ひらがなが打てる機能を一生懸命作ったところで「こんなこともできるのか!」などと今さら感激する人は一人もいないと思いますが、感謝されないからといってその機能を作らなければ「キーボードなのに、こんなこともできないのか(半ギレ)」という目に遭います。よって感謝されないと分かっていても、作る必要があります。

一元的品質というのは「あればあるだけ感謝されるし、なければないだけ不満を抱かせる」というタイプの品質で、たとえば「変換候補の精度」などがこれにあたります。定義を見て分かるとおり、最低限レベルのものは作っておかないと星1のもとになるので、やっぱりそれなりの対応は必要です。

魅力的品質というのは「あれば感謝されるが、なくても特に不満は抱かせない」というタイプの品質で、たとえば「設定アプリ内でのSNS機能」などがこれにあたります。あったらあったなりに嬉しいといえますが、ないからといって苦情が来るわけでもないので、対応する優先順位は低いとみなせます。

見つかった機能やレビューで多かった意見を綜合して考えると、以下機能が「当たり前品質」または最低限度の「一元的品質」にあたりそうな気がするので、これらは初版リリースの時点で対応しようと思います。

・使い方(設定方法、機能紹介など)の表示
・キー配列(テンキー、QWERTYなど)の変更
・日本語用テンキーの入力方法(フリック式、ガラケー式)の設定
・当該キーボード専用のユーザ辞書(単語、定型文、アスキーアートなどの登録)
・iOS本体のユーザ辞書や連絡先を使うかどうかの設定
・変換候補の学習機能の有効化または無効化
・履歴(学習データ、入力履歴データ、検索履歴など)のリセット
・未確定の文字列は別エリアに表示し、確定されたら実際に入力する設定
・カーソル移動
・フリック感度調整

このほか、利用規約やプライバシーポリシーなどは必要に応じて対応します。

フルアクセスについては、いわれなきネガティブキャンペーンを展開されるおそれがあるので使わないつもりです。李下に冠を正さず。

次回予告

機能の話はここまでにして、辞書をどうするか考えます。

ちなみに、記事の見出し画像をシリーズで統一していくことにしました(過去分も修正済み)。

つづく。

この記事が気に入ったらサポートをしてみませんか?