Skip to content

About

Google Pixelに向けたスマートフォンキーボードの開発

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

phoneKeyboard-googlePixel

Google Pixel 9 Pro / Android 16 (API 36) 向けフリック入力キーボード(IME)。

現在の状態: 設計完了・実装未着手。 仕様は確定しており、実装に着手できる。


実装者はここから読む

順番 ファイル 内容
1 docs/設計書.md 全体設計書。まずこれを通読する
2 docs/spec/FlickMaps.kt フリック割り当ての実装。そのまま :domain に配置する
3 docs/spec/FlickLayoutTest.kt 上の仕様を実行可能にしたテスト。そのまま :domain のテストに配置する
参考 きーぼ/ 参照UI(Simeji)の実機スクリーンショット。英数フリックの一次資料

docs/spec/*.kt は設計書の付録ではなくそのまま動く実装である。 配置先は :domain モジュールの dev.mio.pixelkb.domain.layout パッケージ。 Kotlin 1.9 以降が必要(data object と enum entries を使用)。

最初の一歩

設計書 §15「実装ステップ」の 1〜4 は未確定事項に一切依存しないので、そのまま着手できる。

  1. Gradle マルチモジュール構成、Hilt、InputMethodService の空実装 + マニフェスト宣言
  2. docs/spec/ の2ファイルを :domain に配置してテストを通す
  3. キーパッド描画とフリック判定(この時点で「変換なしフリックキーボード」として実機で打てる)
  4. フリックガイドのオーバーレイ

ステップ3まで到達したら、フリック感度・キー高さ・しきい値を実機で触って詰めること。 数値は設計書 §7.5 に初期値がある。


このアプリの中核

日本語配列(あ/か/さ…)と英数配列(@/ABC/DEF…)は12キーの位置が1対1で対応する。 英数の下フリックが @=1, ABC=2 … '"&-=0 と電話キーパッド配列に一致することから確認した。

このため入力を「どの文字を打ったか」ではなく 「どのキーをどの方向にフリックしたか」=ストローク列として保持すれば、 同一のストローク列を両レイアウトでデコードするだけで要件が満たせる。

StrokeBuffer ──decode(KanaLayout)──→ "とうきょう" ──かな漢字変換──→ [東京, …]
             └─decode(AlnumLayout)─→ "tokyo"     ──英単語予測────→ [tokyo, …]
  • 日本語入力中 → 英数側を [英] バッジ付きの副候補として提示
  • 英数入力中 → かな側を [和] バッジ付きの副候補として提示

StrokeBuffer を唯一の真実の情報源にすること。 かな文字列・英数文字列は常にそこから導出する(キャッシュはしてよいが正としない)。 ここを崩すと本機能が成立しない。詳細は設計書 §4。


踏みやすい地雷

実装前に設計書の該当節を必ず読むこと。

論点 節 要点
Edge-to-Edge 強制 §11.1 Android 16 ではオプトアウト不可。最下段がナビバーと重なる。inset を実行時取得すること
16KB ページサイズ §11.2 Mozc を NDK で使うなら NDK r27+ と max-page-size=16384 が必須
紛らわしい文字 §2.7 〜 は U+301C(U+FF5E ではない)、ー は U+30FC。取り違えると辞書が引けない
正規化の方向 §2.7 辞書引き時のみ正規化する。出力パスでは絶対に正規化しない
フォントスケール §11.5 キーラベルに sp をそのまま使うとレイアウトが壊れる
プライバシー §14 INTERNET パーミッションを宣言しない。パスワード欄では学習を全停止

未確定事項(実装を止めない)

設計書 §17 に詳細。いずれも後から差し替え可能な設計になっている。

  1. クロスモード候補の挿入位置 — 3番目固定を暫定採用。動かしてから調整する類
  2. クロスモード候補の抑制しきい値 — 2ストローク以上かつ辞書前方一致を暫定採用
  3. Mozc 採用可否 — 実装ステップ9まで判断を遅らせられる

参照素材について

きーぼ/ のスクリーンショットは Simeji の実機キャプチャで、英数フリック仕様の一次資料。 きーぼ/記号/ は1枚のみでこれで確定(グリッド本体が未描画だが追加取得はしない)。 記号インベントリは Simeji のパリティを取らず自前で設計する。理由は設計書 §2.5。

About

Google Pixelに向けたスマートフォンキーボードの開発

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors