サードパーティ製キーボードがiPhoneで落ちる理由
iOSはキーボードの機能拡張に、それをインストールしたアプリ本体よりずっと小さいメモリの上限を課します。警告もなく突然キーが真っ白になる理由、入力済みの文字が消えない理由、そして現実的な対処をまとめます。
文章を打っている最中に、追加したキーボードが突然いなくなる。キーが一瞬真っ白になるか、何の断りもなくグレーのApple純正キーボードに戻される。ダイアログも出ず、エラーメッセージも出ません。見た目にはアプリがクラッシュしたのと同じですが、ふつうクラッシュという言葉から連想する理由とは違います。iOSが意図的に設けている壁にぶつかった、というのが実態です。
キーボードの機能拡張には小さいメモリ枠しか与えられない
App Storeから入れたキーボードで入力しているとき、動いているのはアプリ本体ではありません。テキスト入力欄をタップした瞬間にiOSが起動する、機能拡張と呼ばれる別のプログラムです。iOSはキーボードを含むあらゆる機能拡張を、メモリに関しては二級市民として扱います。インストール元のアプリ本体よりも明らかに小さい上限が割り当てられ、その上限はiPhoneのメモリがどれだけ空いていようと動きません。
上限を超えた瞬間、iOSは機能拡張をただちに終了させます。警告も通知もありません。キーが一拍だけ反応しなくなり、その後に静かにシステムの標準キーボードが位置を引き継ぎます。
なぜそこまで厳しいのか
キーボードの機能拡張は、そのとき自分がやっていたこと、たとえばメールを読む、フォームを埋める、メッセージを送るといった作業のすぐ内側で動きます。もしキーボードが好きなだけメモリを使えたら、行儀の悪いキーボードが自分だけでなく、下で開いているアプリのほうを圧迫しかねません。厳しい上限は封じ込めのための仕組みで、何かがおかしくなってもキーボードの中で完結し、下のアプリは無傷のままにするという設計です。
上限を超えさせる典型的な要因
- フル解像度の写真をそのまま展開すること。自分の写真を背景にできるキーボードが、事前に縮小せずに読み込むと、最近のカメラで撮った写真をピクセルに展開するだけで上限を何倍も超えかねません。
- 録音された音声の大きなライブラリを、一度にまとめてメモリへ読み込むこと。必要になったときにコードで音を生成する方式に比べて、抱える量が桁違いになります。
- 常時動き続けるライティング演出が、重なった多数のレイヤーを描き続けること。もともとメモリに余裕の少ない古い機種では、より起きやすくなります。
- 少しずつのメモリの取りこぼし。1打鍵ごとに解放されるべきものが解放されずに積み上がっていく状態で、キーボードを開いた直後ではなく、しばらく打ち続けたあとに落ちる人がいるのはこれが理由です。
単に純正キーボードへ戻る現象とは別物
iOSには、サードパーティ製キーボードがApple純正に主導権を返す、まったく正常な別の理由もあります。パスワード欄、数字キーパッド、そして端末の再起動直後です。これらはすべてのキーボードに対して毎回意図的に起こる、設計どおりの境界です。メモリによる終了は外から見ると似ていますが、起き方が違います。ごく普通のメッセージ欄やメモの途中、境界とは何の関係もない場所で、文の途中に起こります。
すでに入力した文字は消えない
テキスト入力欄そのものは、入力先のアプリのものであってキーボードのものではありません。すでに確定した文字はそのまま保持されます。消えたのはキーボード自身の表示だけです。入力欄をもう一度タップするか、地球儀キーをタップすれば、iOSが機能拡張を新しく読み込み直します。多くの場合、1秒とかかりません。
実際に効く対処
- 地球儀キーをタップするか、入力欄からいったん外れて入り直します。iOSが機能拡張を最初から読み込み直すので、単発の症状ならこれだけで収まります。
- 写真を背景に設定しているなら、いったん外して症状が止まるか確かめます。フル解像度の写真は、その場でキーボードが終了させられる原因として最もよく見かけるものです。
- 複数のアプリにまたがって繰り返し起きるようなら、iPhoneを再起動します。上限そのものは固定ですが、キーボードがその上限にどれだけ近いところで動くかは、他のアプリが何をどれだけ抱えているかに左右されます。再起動はその圧力を一度リセットします。
- キーボードアプリを最新の状態に保ちます。メモリの取りこぼしは開発側で修正できる種類の問題で、新しいバージョンで直っていることがよくあります。
- 古い機種やメモリの少ない機種では、より起きやすいと考えておきます。上限自体が機種によって縮むわけではありませんが、同じ有限のメモリを取り合う他の要素の影響は、もともと余裕の少ない端末ほど早く効いてきます。
よくある質問
入力の途中で急にキーボードが真っ白になります
iOSがすべてのキーボードの機能拡張に課している、厳しいメモリ上限に達した可能性が高いです。上限を超えた瞬間にiOSは警告なしに機能拡張を終了させ、少し後にキーボードが戻ります。最初はシステムの標準キーボードになっていることが多いです。
キーボードが落ちると入力済みの文字も消えますか
いいえ。テキスト入力欄は入力先のアプリのものなので、すでに入れた内容はそのまま残ります。一瞬消えるのはキーボード自身の表示だけです。入力欄をもう一度タップするか地球儀キーを押せば、すぐに戻ります。
これは純正キーボードに切り替わる現象と同じですか
いいえ。パスワード欄や数字キーパッド、再起動直後の切り替わりは、すべてのサードパーティ製キーボードに対して意図的に起こるiOSの動作です。メモリによる終了は、そうした境界と無関係な普通の入力欄で、文の途中に起こります。繰り返し起きるようならiPhoneの再起動が効くこともあります。
自分のキーボードで試す
Kiboは、本物のメカニカルキー音とテーマ、RGBバックライト効果を備えたiPhone向けの無料カスタムキーボードです。アカウント登録も広告もなく、フルアクセスをオフにしたままでも使えます。