こんなん徒然草生えるわ

研究であったり、日記であったり、趣味であったり

Twitterのキーボードが引っ込む問題が解決した

約1ヶ月ほど前のことである。Twitterに新機能が追加された。それは「クソリプ防止機能」とも呼ばれ、自分のツイートに返信できるアカウントを制限することを可能にするものだった。

ただこれは引用リツイートまで制限するようなものではなく、

「クソ引用は防げないんだな、ウケる」

などと言っていたのが懐かしい。

発症

そして来る8月12日、「どうせ使わんのやろな……」と思いつつアプリをアップデートした私に、悪夢のようなバグが襲いかかるのであった。

キーボードが、引っ込む。

この時はまだ「どうせアプリ再インストールで直るっしょ」と甘く見ていた。このバグがなぜ発生するかも深く考えることもなく……。

闘病、そして断念

とりあえずアプリを開き直してみる、直らない。

端末も再起動してみる、効果なしだ。

嫌な予感がした。思いつく限りの対処を試してみる。

その後の10日間で問題特定、及び解決に向けて行った処置をここに残しておこう。

  • アプリ再起動→効果なし
  • 端末再起動・OS更新→効果なし
  • キーボードソフト変更→効果なし
  • アプリ再インストール→直後は直るもその後再発
  • アプリストレージの削除→直後は直るもその後再発

ここまでやって、断念した。大抵の偶発的な不具合ならこれらの処置で直る以上、これは何かしらはっきりした原因があって必然として起こっている事象だと考えるのが自然だろう。

とはいえそれが判明した以上、ユーザーであるこちらにはどうしようもないのも事実だ。

そういう経緯で、Twitterデベロッパーがこのバグの存在に気づいて修正を施してくれるまで、こまめにストレージを消しながら耐え忍ぶ覚悟を決めることにした。

解明に向けて

こちらが解決をひとまず断念してから一ヶ月弱、Twitterはアプリの更新を何回か公開してきた。しかしこのバグが直されることはなく、半ば諦めのような感情がじわじわと触手を伸ばし始めてきた。

その一方で、気になる情報もチラホラと提供されるようにもなってきた。

「機種によってバグが出るものと出ないものがある」

「キーボードをGboardに変えると直る」(僕はここ2年ほどずっとGboardを使い続けている)

機種によって差異が出るのは特に興味深かった。極端に古い端末だと最新バージョンのOSが入らないこともあるので、システム由来の問題ではなかろうか、と予想したりもした。

どっちにしてもこちらに触りようはない、早くなんとかしてくれないかなぁと思っていた。

幸運な発見

それは何回目かのストレージリセット後、画像ツイートをするためにストレージへのアクセス権限をTwitterに与えた後のことであった。

症状が再発した。

もしや、と思いTwitterのアプリ設定からストレージへのアクセス権限を外したところ、症状は引っ込んだ。

ついにバグのトリガーを見つけたのだ。これで勝つる。

とはいえ画像がツイートできないのは不便極まるなぁと考えていたところ、更に面白い情報を見つけた。

「キーボードの予測変換の表示を2行から1行に減らすと直る」

ピンと来て、キーボードの設定画面を開いた。

Gboardに予測変換の表示の詳細を変更するような設定項目はない。仕方がないので、私はキーボードの高さを「標準」から「やや低い」に変更した。

f:id:zohar0729:20200910234636j:image


f:id:zohar0729:20200911000026j:image

な……直った……。

 

Twitterにストレージへのアクセス権限を与えても再発の傾向はない。ついに、私はこのバグを撃退することに成功したのである。

バグはなぜ発生したのか

ここからは仮説だが、今回のバグは、ツイート画面の縦方向のレイアウトの余裕が失われたことによって起こったのではないだろうか。

Twitterにストレージへのアクセス権限を与えることで、1文字目を入力する前のツイート画面には画像のサムネイルが表示される。
f:id:zohar0729:20200910233419j:image

見ての通り、画面のレイアウトに余裕がないことが分かる。

これに加えて今回の新機能によって返信対象の選択ボタンが追加された。結果としてツイートの編集画面はほとんど見えなくなっている。どういう実装をしているのかは分からないが、編集中の本文を見せるためにキーボードを強制的に引っ込めさせるようなコードが書かれていたとしても不思議ではない。

この仮説を特に強く支持するのは、キーボードの高さを変更すると症状が出てこなくなるという事実、そして画面が比較的大きめの新機種で症状が出てこないという情報だ。

おわりに

もしこの仮説が本当であったとしても、これ自体は別にTwitterデベロッパー達が責められるべき内容ではない。ただ私達の使っていた端末の縦幅が、彼らの想定より短かったというだけなのだから。

今回の検証にはSHARPAQUOS R Compact(SHV41)を使用した。この端末の画面サイズは4.9inch(2032×1080)である。もしこれ大きいサイズの端末についても同じ症状が発生していて、かつ今回紹介した方法で直ったということがあれば、ぜひお知らせ願いたい。