2024/7/16 個人開発LT スライド
public.icon
大まかの喋りたいことの目次の作成
目次に沿った内容を肉付けしていく
その時に喋りたい内容を全部書いていく、できたら画像も拾っていく
喋りたいことをまとめる
自己紹介
作成のきっかけ
便利な点&面白い点
開発に困った点
開発で意識したこと
実際に友達に使ってみてもらって、どうなのか?
内容の肉付け
作成のきっかけ
旅行にいくヘビーユーザーです
その時にいきたいところなどをLINEのグループに投げていて、いつも旅行が終わった後に、あの旅行ってどこにいったけ?ってなりがち
LINEは会話していくとどんどん流れていくので、後から探すのが困難になっていく
rafutabiという前作になるものはあったけど、わざわざそれを使うよりも、google mapのストックでいいじゃんってなったので、これは没になった 実際に自分が欲しくて作った
便利な点& 面白い点
シェアターゲットピッカーでbotにリンクを投げるか
LINEのグループに投げるだけ
保存のしやすさにはこだわりました
保存期間の設定ができる
開発に困った点
元々DB設計が苦手
久しぶりにDB設計をしたときに、Firestoreは読み取り回数で課金されるので、読み取り回数を減らすように設計するのが難しかった
AIと壁打ちをして、DB設計で時間がとけにくくなった、かつ、自分の勉強になるなって思った
NoSQLなので、なんでも正規化したらいいわけではないので、重複をどこまで許していいようにするか?みたいな
ページネーションの実装
firestoreでorクエリで制限に引っかかっていることに気づかなかった
開発で意識したこと
新しい技術を入れるよりも、自分が一番使える技術を投入して、爆速で作った
スマホで使うことを優先的に考えた使いやすいUX
PCでLIFFなどを見ることは多くないし、自分はスマホでしかみないので、そこは意識しました
linebotからの値は、webhook経由で全て飛んでくるので、エントリーポイント的なファイルを一つ作っておいたら、それを移行するだけで済むので、らく
実際に友達に使ってみてもらって、どうなのか?
code:ts
let q = query(
collection(db, "Links"),
or(where("members", "array-contains", userId), where("userId", "==", userId)),
);
↑これだとダメ
code:ts
let q = query(
collection(db, "Links"),
or(
where("members", "in", userId), where("userId", "==", userId)
),
limit(linksPerPage)
);
これだとOK