TurtleSoft

いにしえのiOSアプリ「楽タイマー」を呼びもどす : 4日目

食卓の啓翁桜のつぼみが開きはじめてきた。
父は外出の準備をしている。

Claude Codeが書き出してくれたコードは、僕が1行も直すことなく動作してくれている。

操作遊びに満足したところで、さらにアプリに手を加えていく。
もちろん、自分で書かずにAIに頼むやりかたでだ。

私にはAIプログラミングで意識していることがひとつある。
一度にたくさんの依頼をしないことだ。
最初のプロンプトでたくさんの依頼をしてしまうと、その中のどれかがうまくいっていないことがよくある。
なので、ひとつずつ頼んでいき、うまくいったら保存して次の依頼に進むようにしている。


まずは分と秒の見た目を変えたい。
分を表す数字は真ん中に大きく配置したい。秒は右下に小さくでいい。
遠くからみるとき、残り時間があと何分かが分かればよいからだ。
それと、分の数字は画面いっぱいに表示されるようになって欲しい。

僕はAIに次のように依頼した。

するとコードの一部が変更され、それがiPhoneシミュレータの画面にも反映された。
概ね期待した結果になった。だが、微妙に違う。
思いのほか、分の数字が小さい。
なので、AIにもっと分の数字を大きくしてほしい旨を依頼した。
だが何も変わらない。

この状況を打開するようなプロンプトが浮かんでこない。
さっそく行き詰まってしまった。どうしよう。


悩んでいる素ぶりをしたが、実際にはたいして悩んでいない。
早々にAIに打開してもらうことに見切りをつけ、自分でコードを読みはじめた。
AIプログラミングの評価はするが、AIプログラミングだけでやり切る気概はないのだ。

幸いにもコードはまだ、150行くらいのものだ。
フォントサイズに関わる部分のコードはすぐに見つけられた。フォントサイズが画面いっぱいにならない訳も理解できた。
理由は2つあった。

ひとつは、分の表示エリアと秒の表示エリアが縦積みになっていたこと。
要は空白エリア、分のエリア、秒のエリアが3つ縦積みの構成になっていたのだ。空白エリアがあるのは、分が縦の位置的に真ん中にくるようにしたのだろう。

もうひとつは、エリアをはみ出さないようにフォントサイズを縮小するコードが入っていたこと。
これは他のエリアに干渉してしまうことを避けたのだろう。


AIは「分は真ん中に表示」と「画面いっぱいの大きさで」の依頼を考えた結果、このようなコードになったのだろう。おそらく真ん中に表示する方を先に考えて、その結果の範囲内で画面いっぱいにすることを考えたのではないか。僕の優先度としては、画面いっぱいに表示する方が大事なのだ。

でもこれはコードを解釈しないと気づけないことで、AIプログラミングにコード編集の全てを委ねると気づけなくなってしまう。

iOSアプリケーションのプログラミングの勘所をわかっている人でないと、プロンプトで事前にこのことを伝えるのは難しいだろう。
今の時点でのAIプログラミングは、わかっている人の作業の速度を早める以上のことをさせるのは難しそうだ。


僕はコードを直接編集して直すことにした。
まず、エリアに収まるようにフォントサイズを縮小させるコードを外した。
そして、3分割エリアの積み上げ制をやめ、それぞれのエリアの配置を絶対位置で指定するようにした。分は画面の真ん中に、秒は画面の右下に。
互いの数字が重ならないことが確認できたので、これでよしとする。


AIプログラミングを採用したとしても、コードの内容はきちんと理解しながら作業する必要があることを感じた。そうしないと、コードが大きくなった頃にうまくいかないことが生じても対処できない。

そう思いながら、コードをgit commitした。