Daily〜CustomRenderObjectの話 4

2023/08/15に公開

https://zenn.dev/flutteruniv_dev/articles/1dbc1bbd535917

年月日表示を目指す

Sampleアプリ第三弾は時間的距離と空間的距離を融合したアプリだ。
GitHubのrepository名はdaily-timelineだが
アプリ内に表示されているのはVoygerII。
1977年8月20日に打ち上げられたヴォイジャー2号が
太陽系の星々を経由して、太陽系を離脱し、
シリウスに接近するまで(ここは未来の話)を時間表示しているが、
それは近似的に、距離の表示にもなっている。

なぜ1号ではなく2号かといったら、
アプリの構成を考えていたときに、たまたま
ヴォイジャー2号の通信が回復した、というニュースを見たから。
2023年8月5日 Je suis la(私はここにいるよ) という項目がそれ。

ちなみにヴォイジャー2号はあと数年ですべての電源を失って
二度と通信ができなくなる。
それでもまっすぐに宇宙を飛び続ける。
ヴォイジャー打ち上げの年に理系進学をあきらめた私の、
見果てぬ夢みたいな存在である。
https://github.com/dongri727/daily-timeline/tree/main

視点1、何を変えたか(1)

firebase接続からjson読み込みに戻している。
そのほうが共有しやすいから。

MenuPageに検索窓を残してあるが、
codeはfirebaseの時のままコメントアウトしてあって使えない。
正直に言えば、なにをどう検索するのかわからないので、放置、ということ。
前回ついていたclearボタンは、うっとおしいのでsubmitボタンに併合した。

年月日表示への苦悶と妥協 〜何を変えたか(2)

年月日表示に変えた。
が、見ていただくとわかるように、目盛りが空欄になっている。
そして年月日はラベルに表示されている。
これで「年月日表示」というか?

最小のメモリ1、はピンチアウトでどんどん広げられる。
その空白を見ていると、ここを12分割して、さらに31分割して、
みたいに考えてしまうが、

1は1なのだ。

別に1年じゃなくていい。
Distanceでは10㎝にしたじゃないか。
ということで、1を1日と思うことにした。

つぎは30や31で月を変えたい、という欲求が、当然ある。
そして365か366で年が変わってほしい、みたいな。
が、それが果てしもなくめんどうくさい。
そもそも今の暦が不変の暦というわけでもない。
二万年前の8月15日、って、意味あるか?ということ。
年月日の表示は「目安」ぐらいでいい気もする。

jsonにはpoint[年、月、日]で指定している。
月日を指定しないなら[年、 0、0]だ。
それを
((point[0]-1)*366) + ((point[1]-1)*30.5) + (point[2]).toDouble()
という計算で読んで、10進数の目盛りに貼り付けている。
10進数の目盛りは紛らわしいので表示していないが、pointとしては生きている。
そして年月日はlabelに表示した。

1年が366倍になって、目盛りはどこまで行けるのか?
BigBangは楽勝、BigCrunchやOscillatory universeはむりかもね。
シリウスまでは行ける、アンドロメダ星雲はダメかも。

妥協といえば妥協だが、とりあえずこれでいこう。

視点2、cloneしたら動くか

動きます

・・・多分。環境によるかもしれないが。
内容の変更にかかわるcodeの詳細は、次回。
https://zenn.dev/flutteruniv_dev/articles/b9f6031ced1c43

Flutter大学

Discussion