###### tags: `Hackathon` `Clown`
# こたのちきちきお一人ハッカソン
こちらは[公立はこだて未来大学 Advent Calendar 2021](https://adventar.org/calendars/6526)の12日目の記事もといこたの地獄の一日の様子を記録するところです。
昨日はしっしー先輩の[「ゲームと消しかすと多様性」](https://note.com/takehukurou/n/n0fd8f88412e9)でした。パイセンがどんなモチベでゲーム作ってるのか初めて知りました。なんというかちゃんと努力してる人なんだなって改めて実感しましたね。
## ちょっとだけ自己紹介
なんか今年は入学前の新入生が既に参加してたりしていてやった方がいいかなと思って
- 公立はこだて未来大学 システム情報学部 複雑系知能学科 複雑系コース 3年所属です。
- セメスター制のせいで来年卒業研究に着手できなくなり4年を二回することが3年にして決まりました。
- 普段はKotlin(Android, JS, jvm), Java, Processing, Hot Soup Processorというプログラミング言語を触っています。
- 直近では[Nabeatu Counter](https://kota-shiokara.github.io/NabeatuCounter/)というものを作りました。([リポジトリ](https://github.com/kota-shiokara/NabeatuCounter)への導線作ってないや)
- [Youtubeの動画をクリック一つでYoutube Musicで開くChrome拡張](https://twitter.com/kotambourine/status/1395290078411247616?s=20)作ったり、[ProcessingをKotlinでやろうぜ](https://qiita.com/kotambourine/items/470be64a2550f20437e2)みたいなよくわからんことをやってますが一応力入れてるのはAndroidです。
- 誕生日は3月9日です。相手によってミクの日かレミオロメンの曲名だって説明してます。覚えて帰ってね。
- カービィが好きです。最近親や同期の弟などからカービィカフェ行ったよって報告が相次いで怨念を抱えて生きてます。
- [Github](https://github.com/kota-shiokara), [Twitter(うるさい)](https://twitter.com/kotambourine), [Twitter(創作垢って言ってる方)](https://twitter.com/shiokara_create)とか見れば大体わかると思います。一応[インスタ](https://www.instagram.com/kota_bellflower/)も置いておこうかな。
## 経緯
<img src="https://i.imgur.com/6n5gL5n.png">
<br></br>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">20時時点での投票結果を採用します</p>— こた (@kotambourine) <a href="https://twitter.com/kotambourine/status/1469535721849761792?ref_src=twsrc%5Etfw">December 11, 2021</a></blockquote>
<img src="https://i.imgur.com/QrzoO5u.png">
~~鬼どもめ~~
## 本題
はい、ということで作ります。
### テーマ
「自分が普段使いするToDoアプリ」
ただToDo作るだけじゃそら一日で終わりますわって言われておしまいなので、自分が普段使いしたいなって構想練ってたアプリ作りたいと思います。
今日目指すのはMVP(Minimum Viable Product)ってやつですが。
### 具体的に
- 12/12 00:00 ~ 12/12 23:59
- この間何してもいいけどHackMDを[times](https://craftsman-software.com/posts/56)替わりにします。定期的に開いたり更新かけたら進捗状況が見えるかと。
- Androidアプリです。(iOSもうやりたくないしFlutter/dart書けん)
- 理想目標はDeployGateにでも上げようかなって感じです。
- 開発は[このリポジトリ](https://github.com/kota-shiokara/todoy)でやります。
- Jetpack Compose使いたいです。
## アプリに関する決定事項的な?メモ的な?
// TODO: ここにできたアプリの画面とかそういうの置いてこうね~
### 決定事項
- PrimaryColorDark = #FFFFECC7
- PrimaryColorLight = #FFFFBB33
### タスク
// TODO: タスクは見えやすいようにチェックボックスで管理しようね~
<!-- template
- [ ] メイン画面
- [ ] Toolbar
-->
- [ ] アプリ完成
- [ ] 機能
- [x] Taskに詰め込みたいパラメータを考える。
- [ ] Taskの保存
- [x] Task用のViewModel
- [ ] Task用のView(Top画面)
- [ ] 画面
- [ ] Top
- [x] Edit
### 書き散らし
今日のtodoを見たいが強いけど1週、1月に1回やるものとかあるもんな
```kotlin=
// Task用data class
@Entity(tableName = "task_table")
data class Task(
@PrimaryKey val id: Int, // TaskのID, -1の時は未振り分けって判断しよう
val title: String = "", // Taskの名前
val description: String = "", // Taskの説明
val isDone: Boolean = false, // タスクの終了判定
val isRoutine: Boolean = false, // 日課判定
)
```
## 分報
// TODO: 分報はここに書いてこうね~
### 00:00~
- さてやっていきますか。タイムスタンプあった方がいいかな? (0:03)
- 現在のタスクはアプリの機能を考える。 (0:04)
- コンセプトは一日のタスクを強調させるToDoアプリ (0:10)
- 何で機能書いてこうか迷う。新しいことに挑戦するのやめた方がいいな、例えばUML書くとか。 (0:22)
- Primary Colorだけ決まってしまった。#FFBB33 (0:31)
- 画面の前にまずTodoにどんなパラメータを載せたいのか考える。 (0:43)
- あ、Jetpack Composeを書く環境はWindowsで一応あることは確認済み。macbookの方はSDKのバージョンか何かで怒られてるけど...(´;ω;\`)ウッ… (0:45)
### 01:00~
- [figma](https://www.figma.com/file/wnhcRzU1eH5GkF3783AEL5/Todoy)で画面考えながらまずdata classのモデル考えてる。 (1:14)
- Apexやりたい (1:14)
- 一旦書いてみる?? (1:27)
- え、めちゃくちゃ眠いんだけど (1:41)
- android studioでコミットした時コミットメッセージおかしいことになっとる
- Jetpack Compose面白 (1:54)
- 今回のこの記事、確かにアプリ作らないといけないんだど、普通に楽しんでやりたいな (1:54)
### 02:00~
- 生存報告 (2:26)
- Jetpack Compose触ってるだけでだいぶ時間溶ける (2:26)
- Figma使ってる場合じゃねえ (2:26)
- 眠い、ちゃんと睡眠取るの大事、何時に寝よう (2:34)
- Jetpack Compose、モック作ってそれ流し込んだプレビュー作るのとても楽だなあ (2:44)
### 03:00~
- めちゃんこ時間溶けてる。ただめちゃんこ楽しい。これは適当に作ってたCard
- <a href="https://i.imgur.com/pNbcV6Z.png"><img src="https://i.imgur.com/pNbcV6Z.png"></a>
- すげえ!!!!Jetpack Composeまじすげえ!!!何がすごいってPreviewに出してる画面をそのままエミュレーターに出せるんだよ!!! (3:54)
- <a href="https://i.imgur.com/l0ym85t.png"><img height="600px" src="https://i.imgur.com/l0ym85t.png"></a>
- 一旦寝る!! (3:59)
### 04:00~
- 寝る前コミットした。感謝の```git push origin main``` (4:03)
### 16:00~
- おはようございます!!!!!作業開始します!!!!晩御飯とか入れると6時間程度!?!? (16:18)
- card自体の大きさは変えられるからテキストの大きさちょっとでかくしたいね (16:28)
- Jetpack Compose、開発中はだいぶメモリ食いそう (16:37)
### 17:00~
- まずい、とてもやる気が無くなってきてる (17:13)
- Jetpack Composeめっちゃ楽しい (17:37)
- 画面しかできてない、まずい (17:47)
- <a href="https://i.imgur.com/DYYWfVb.png"><img height="600px" src="https://i.imgur.com/DYYWfVb.png"></a>
- やる気がこい (17:59)
### 18:00~
- ご飯食べる、休憩 (18:53)
### 21:00~
- 後二時間半でどこまでやれるんだろうか (21:26)
- ViewModelとJetpack Composeの併用が中々に難しい
### 22:00~
- 諦めたい、後2時間で完成しないというか設計悪かったのが発覚してしまった (22:05)
- 全てを諦めてTodoができる実装だけした (22:57)
<a href="https://i.imgur.com/tVzIBes.png"><img height="600px" src="https://i.imgur.com/tVzIBes.png"></a> <a href="https://i.imgur.com/zytgQxa.png"><img height="600px" src="https://i.imgur.com/zytgQxa.png"></a> <a href="https://i.imgur.com/mBqnrc3.png"><img height="600px" src="https://i.imgur.com/mBqnrc3.png"></a>
### 23:00~
最後の1時間です。
- クリックしたらdoneの処理一応書いたけどなんか描写が上手くいかない... (23:26)
- Unity1Weekきちゃったじゃん (23:27)
- 画面切り替わった時にComposeの再描写行われるから原因はわかる、けど解決方法がわからんになってる (23:34)
- Kuuさんの優しさに触れて泣いた (23:49)
<!--
<a href=""><img height="600px" src=""></a>
-->
<!--
### :00~
-->
## 結果
画面はこちらです。
[![Video thumbneil](https://pbs.twimg.com/ext_tw_video_thumb/1470037690779275264/pu/img/Yjg7ZxtaiLEzcjet.jpg)](https://twitter.com/kotambourine/status/1470037732328341509/video/1)
- タスクが完了した時にクリックするがUIに反映されない。
- と思ったら別画面に行く時に再描写が適用される。
- Tagパラメータの使い道どこ
- 結論としてToDoアプリとしても使えないナニカができました。
# 最期に
対戦ありがとうございました。
はい、アドカレの12日目どうでしたか。中々にあれだったな...
特に12時間ぐっすり寝てたのに関してはまじで人間生活できないんだなって思いました。
~~(通知も電話も目覚ましも貫通ってどうよ)~~
今まで何回かハッカソンに参加したことはありますが、アイデアソンや設計、デザインなど全部チームメンバーにまかせっきりだったんだなって改めて実感しました。今更だけど一緒に学内ハッカソンとかでてくれた人たち本当にありがとう。
それと人間、一人で一日でハッカソンなんてするもんじゃないなと思いました。以上でFUN Advent Calender 2021の12日目の記事を締めたいと思います。
開発は続けていくつもりなのでまあ気になればリポジトリ見ていただければって感じです。
プロジェクトの話は時間あればPart2にでも投げておきます。
12/13日(月)はkazuくんの[シューティングにはまってアケコン作った話](https://kazu8823.hatenablog.jp/entry/akekon)です。
ハードウェアまで触れるの強いよなあ。
# 追伸
アプリ作れに入れた人は名乗りを上げてください。それではお休みなさい。
# アプリ作ったに入れた鬼たち(判明し次第追記するけど別に怒ってないよ)
- かげろん
- kazuくん
-