ToDoリストアプリをレベルアップ 17日目 2024/10/23(お金持ちまでの道のり)

英国紳士風のお金持ちアンドロイドの絵です。 プログラミング

先日の”今の段階では、「とりあえず動いていればOK」と考え、実際に動作するコードをどんどん活用していくのが良いアプローチです。by ChatGPT”というアドバイス通り、今日はどんどん進みます。新しいコードを見て、説明はもちろんできませんが何となく書いてあることは理解できます。あの地獄の4日間は無駄じゃなかったということです。ということで今日も張り切っていきましょう!

初めての人はお金持ちまでの道のり:0日目をまず読んでみてください!よろしくお願いします★

色・優先度&期限の選択・ボタン・内容の編集(Level 2)

最初の状態から変わったことは、色・優先度レベルの選択・期限の選択・ボタンの大きさ・断念ボタンを押したときの確認・目標の内容と期限を一画面で編集の6点です。一番めんどくさかったのが最後の「目標の内容と期限を一画面で編集」です。もともとは編集ボタンを押すと、目標の編集画面が出て、その編集が終わってから期限の編集画面が出てきます。ただそれを一緒にしたかっただけなのに。。。

ということで以下がToDoリストアプリ(Level 2)のスクショとそのコードです。

なんか見た目が非常にダサいです。ということでかっこよく改良していきます。

文字をゲームっぽくする(Level 3)

ゲームっぽい文字にしてみました。日本語にしたかったのですが、何度やっても日本語でゲームっぽい文字が表示できませんでした。

リマインドを付ける(Level 4)

functionの関数は順番が自由なので、functionが並んでいるところあたりにコピペするだけです。

パソコンを開く度にリマインドされるのではなく、このHPを訪れた時にリマインドされます。ここの常連でないと全く意味のない機能です。。

・一日前
if (timeDiff > 0 && timeDiff <= 24 * 60 * 60 * 1000)
・一週間前
if (timeDiff > 0 && timeDiff <= 7 * 24 * 60 * 60 * 1000)
・一カ月前(30日目)
if (timeDiff > 0 && timeDiff <= 30 * 24 * 60 * 60 * 1000)
・一年前(365日前)
if (timeDiff > 0 && timeDiff <= 365 * 24 * 60 * 60 * 1000)

JavaScriptでは関数の順番は比較的自由に決めることができます。特に 関数宣言functionで定義されたもの)は ホイスティング(hoisting)という仕組みにより、スクリプト内のどこに書かれていても使用することができます。つまり、関数を呼び出すコードが関数の定義より前にあっても、正常に動作します。

端末に合わせたレスポンシブデザイン(Level 5)

デフォルトのレスポンシブデザイン(PCや大きな画面向け)の下にコピペするだけです。これで端末に合わせてデザインが変更され、ユーザーフレンドリーなサイトになります。

この設定はこのアプリ限定ではなくHP全体に設定すべきコードなので、アプリ内のコードには載せず、HPの追加CSSにコピペしました。

ボタンのホバーエフェクト(Level 6)

二つのグループのボタンにホバーエフェクトをかけようと思ったら失敗しました。以下のようにifっぽく設定するみたいです。

#click-btn内に"Click"ボタンがあり、#todo-app内に"Done!","Give up","Edit"ボタンがある。上記のコードのようにifっぽく別々に設定したらうまくいった。

ChatGPT曰く、何かと競合している可能性が高いとのこと。本来はnotを使う必要はないらしい。恐らくHPのヘッダーのボタンを避けてコードを書いたから、それでこんなことになっているのではと予想している。これが先日ChatGPTが言っていた「とりあえず動けば良い」の好例だと思う。

CSSコードの記入順は基本的に自由。スタイルの競合が発生する場合があるので、優先順位(Specificity) によってどのスタイルが適用されるかを気にする必要がある。

優先順位(Specificity)
1.インラインスタイル(HTMLタグ内に直接書かれたスタイル):
2.IDセレクタ: #id
3.クラスセレクタ、属性セレクタ、擬似クラスセレクタ: .class, input[type="text"], :hover
4.タグセレクタ(要素セレクタ): div, p, button
5.すべての要素セレクタ(ユニバーサルセレクタ): *

※もし同じ要素に対して複数のスタイルが適用される場合、後から書かれたスタイルが優先される

視覚的にわかりやすいアイコンの使用

Font Awesome(アイコンライブラリ)

HTMLの<head>内にFont Awesome(アイコンライブラリ)のリンクを追加します。

ボタンにアイコンを追加

変更前

変更後(アイコンを使用)

変更前と変更後のコードをChatGPTに書いてもらうと、コードの訂正は楽だし、何がどう変わったかも視覚的にすぐ確認でき、作業がかなり捗るのでオススメです。

ダークモード対応

ダークモードとは、ユーザーインターフェースの配色を暗い色に変更する設定モードのことです。通常、明るい背景(白や薄い色)に黒や濃い色のテキストを表示するライトモード(通常モード)と対比され、ダークモードでは暗い背景(黒や濃い灰色など)に明るい色のテキストが表示されます。ダークモードは、視覚的な疲れを軽減し、特に低照度の環境で画面を見る際に目に優しいと言われています。

この設定もこのアプリ限定ではなくHP全体に設定すべきコードなので、アプリ内のコードには載せず、HPの追加CSSにコピペしました。

ちなみに最終的に出来上がったのが以下のコードです。

本日の感想

今日はこれの他に、時間であいさつが変わるコードの改良もしました。ChatGPTのアドバイス通り、100%の理解を目指さずスピードを重視したつもりです。でもやっぱり最初からこれをやっていたら、コードの流れとかを全く理解できなかったと思うので、最初は時間をかけてコードを読み込んだ方がいいような気もします。

ここに初めて来た人はゼヒ0日目を読んでください。プログラミング知識0のおじさんがお金持ちになるまでのプランと熱い思いが載っています。私と一緒に運要素を排除したゴリゴリの脳筋プレイでお金持ちを目指しませんか?

0日目の記事はこちら
お金持ちまでの道のり:0日目

コードの読み方が全く分からないという方は以下の記事がオススメです。コードの読み方の説明が一番詳しく書かれてある記事です。

ToDoリストアプリの作成 12-15日目 2024/10/18-21(お金持ちまでの道のり)

コメント

タイトルとURLをコピーしました