AIで知識ゼロからアプリ開発1000時間 #16

#16:ぐだぐだ設計でドタバタ修正劇ばやった話

ざっくり言えば:

こんたにゃ、アプリの状態管理ばやってて、「あれ?なんかおかしいじゃ」ってなった話ばすっぺ。特に「ローカル」と「グローバル」ばゴチャゴチャにしてまって、ChatGPTさ問い詰めながら設計ば直してったじゃ。プログラミング初心者でも、「なんで動いてるか分からね」状態の怖さば伝えたいんず。

…と、その前によ、これが1000時間かげでようやぐ完成させだアプリの画面だ。知識ゼロのおらが、どんげしてここまで作れるようになったが、みんなさ共有したぐてぇな!

ウェブアプリ版

アンドロイド版

■ ルールあるのに守れてねじゃ!

前に作った住み分けのルール、ちゃんとあったんずよ。

{
"ルーティング": "App.js",
"全体で共有する状態": "App.js",
"ローカルな状態": "TaskManager.js",
"ローカルストレージ操作": "App.js(=一元管理)",
"画面固有のロジック": "TaskManager.js"
}

…けど、実際にはTaskManager.jsにローカルストレージの読み書き入ってらった。

useEffect(() => {
const savedTasks = JSON.parse(localStorage.getItem('tasks')) || [];
setTasks(savedTasks);
}, []);

App.jsとTaskManager.js、どっちが正しいデータなのか分からなくなってたんず。


■ ChatGPTと「グローバルとはなんだべ?」の話

こんなやりとりもあったじゃ。

「刑務と詳細、両方の画面で使わねんなら、ローカルでいいんでね?」

ChatGPT:「その通りです」

アプリ内では、コインは「詳細」だけ、ステータスは「刑務」だけ。
つまり、共有なんてすんなくても良がったんず!


■ 結局、TaskManager.jsにまとめたじゃ

考え直してみて、こうなったじゃ。

  • 画面でしか使わねぇ状態 → その画面で管理すべし
  • 状態の保存・読み出し → その画面の中で完結させた方がシンプル

App.jsに持ってったら、見通し悪ぐなってpropsば回しまくることになってまうじゃ。


■ 「なんとなく動いてる」が一番危ない

今回の一番の学び。

アバター変わらねぇ、レベル上がらねぇ、保存されねぇ。
どれも、設計のズレが原因だった。


■ おわりに:判断の基準は「そのデータ、どこで使う?」

ChatGPTが言ってくれた大事な言葉:

「グローバルかローカルかの判断は、“複数画面で使うかどうか”で決めてください」

この一言で、コードの整理が見えてきたんず。

自分でも何作っていいか迷ってる人、こう聞いてみてけろ。

「この情報、どこで使うんだべ?」

それだけで、設計ってだいぶスッキリするんず。

●次の記事
AIで知識ゼロからアプリ開発1000時間 #17
(👉#1)

●ホームページ
アプリ制作1000時間、そのあと追加800時間かけて作ったHPも見てほしいべさ

ゲームに見えるかもしんねぇけんども、これ、ホームページなんだべ。アプリ制作1000時間、そのあと追加で800時間、めっちゃしんどがったけんども、そのおかげで色んなことできるようになったべさ。これからもどんどん更新していぐがら、応援よろしく頼むべ!

ちなみに、このHPのコンセプトは「日本人の勤勉さを取り入れで、世界中の人たぢの夢の設定がら到達までを総合サポートすること」なんだべさ。学習×運動×睡眠×栄養×時間、この5つの軸を使っていぐど。おらも今、これを実践中だべ!

んでもってな、このHPを通じて夢を叶えだ人たぢと一緒に、いずれ世界をひっくり返すような仕事をしたいと思ってんだべ!ただの応援で終わりじゃねぇ。ここで鍛えた力で、みんなと一緒にとんでもねぇことを仕掛けていぐ。

一緒にでっかい夢、つかまねぇが?

コメント