読書をできるだけ壊さない読書メモアプリ「Cocoas(ココアス)」を作った

に公開

この記事は95%程度AIによって書かれています。

はじめに

本を読むのが、とにかく好きだ。

コーヒーを片手に、お気に入りの椅子に座って、ページをめくる。
その瞬間が、私にとって何よりも大切な時間。

でも、ずっと悩んでいたことがある。

読書中、心に響くセリフや新しい学びに出会ったとき、
「これは覚えておきたい」と思って、スマホでメモアプリを開く。

すると、なんだか現実に引き戻されてしまう。

さっきまでいた物語の世界から、急に日常に戻されたような、感覚になる。

既存の読書管理アプリも試してみた。
でも、SNS機能やら、読書チャレンジやら、レビュー投稿やら...。

正直、疲れてしまった。

僕はただ、自分の読書体験を静かに記録したいだけなのに。

ある日、ふと思った。

「ないなら、作ればいいんじゃないか?」

そうして生まれたのが、
読書をできるだけ壊さない読書メモアプリ「Cocoas(ココアス)」 だった。

作ったもの:Cocoas(ココアス)

温かみのあるココア色のデザインで、大切な本を管理

「Cocoas(ココアス)」

名前を決めるとき、読書の時間を包み込むような、温かいものにしたかった。冬の夜、本を読みながら飲むココアのような。そんなアプリになればいいなと思って、この名前にした。

どんなアプリ?

作りたかったのは、読書のメモは取れるけどできるだけ読書の邪魔をしないアプリ。
まるで、そばにそっといるかのような空気感のもの。

手書き風メモ機能
読んでいて「これ知らなかった。勉強になったな。」とか「あ、この台詞素敵だな。」って思った瞬間に、何も考えずとりあえず気軽にメモしておける。

できるだけ手書きの温かさを再現したかったから、リングノートをイメージしたUIで
本の世界から離れずに記録できるようにした。

AI要約機能
読み終わった後、散らばったメモたちをAIがそっとまとめてくれる。
自分の読書体験を、優しく整理してくれる相棒みたいな存在。

このおかげでメモは雑でOKになった。

ナレッジグラフ
これは少し実験的な機能。

自分が読んだ本たちが、どんな風につながっているのかを可視化してみた。
意外な発見があって、結構お気に入り。

美しい本棚
「これから楽しむ本」「今読んでいる本」「読み終えた本」「お気に入りの本」。
シンプルに、でも愛着を持って管理できるようにした。もちろん、ココア色で。

Vibe Coding

このアプリはVibe Codingで全て作った。

とりあえず壁打ち

読書アプリのコンセプトを相談

「読書中に感じたことを即座にアウトプットしたいが、スマホを操作したくない」という課題

「読書が好きなすべての人」を対象にとChatGPTに伝えた。

読書中に感じたことをアウトプットしたいけど、
スマホをいじると読書の没入が損われる。このジレンマをどう解決するか。

壁打ちしていたら「雑にメモして後からAI要約」のアイデアが出た

こんな感じで、読書の最中に浮かんだことを、その場でメモしたい。
ChatGPTは、そんな私の思いを理解してくれた。

「読書ジャーナル」形式での読書ログのフォーマットも提案してくれた。

  • タイムスタンプ付きのメモ
  • ハイライト&コメント
  • 関連付け(過去の読書メモとの関連を示して、読書の知識をつなげる)

これって、まさに今の「ナレッジグラフ」機能の原型だ。

要件決まったらあとはプロンプトを投げ続け

ChatGPTが作ったプロンプトをそのままCursorやClaudeCodeに投げた

初めはCursorだったがその後、Claude Codeを使うようになって、開発がさらに加速した。

ChatGPTとの壁打ちで生まれたアイデアを、そのまま伝えるだけで、コードになる。

まるで魔法のようだった。

技術の話もしようか

Deno Deployを使いたかった

正直に言うと、Denoを使ってみたかった。それだけ。

でも使ってみたら、Deno KVがすごく良かった。

// Deno KVのシンプルな使い方
const kv = await Deno.openKv();

// メモの保存
await kv.set(["memos", userId, memoId], {
  bookId,
  content,
  createdAt: new Date().toISOString(),
});

// メモの取得
const memo = await kv.get(["memos", userId, memoId]);

データベースの設定とか、SQLを書くとか、そういうのは今回すっ飛ばした。
Key-Valueストアのシンプルさがぴったりだった。

「このキーに、この値を保存」「このキーの値を取得」。ただそれだけ。シンプルっていいな。

ココア色のUIを作る

モバイルアプリはReact Native (Expo)で、UIはTamaguiで作った。

// Tamaguiでココアテーマを定義
export const cocoaTheme = {
  colors: {
    cocoaMain: '#D2B48C',      // メインのココア色
    cocoaDark: '#8B6F47',      // 濃いココア色
    cocoaLight: '#F5E6D3',     // 薄いココア色
    cocoaBg: '#FDFBF8',        // 背景色
    cocoaText: '#5D4E37',      // テキスト色
  },
};

このココア色のテーマを作るのが、地味に楽しかった。
「もう少し茶色を濃くして...いや、ちょっと明るすぎるか」みたいな感じで、何度も色を調整した。
これまたAIの作ったアイコンを元に直し続けた。

結果として、温かくて優しい、自分でも気に入ったデザインになった。

Vibe Codingって、すごい

今回の開発で一番感じたのは、AIとの「Vibe Coding」の可能性。

「Vibe」っていうのは、ただの技術的なやり取りじゃなくて、一緒に「いい感じ」を作っていくプロセス。

  • ChatGPTには、ひたすら相談した。「読書の邪魔をしないアプリってどう作る?」
  • Claude Codeには、そのVibeをそのまま伝えた。「温かみのある手書き風のUIで」

一人で開発しているようで、一人じゃない。AIと一緒に「いい感じ」を探しながら作る。そんな不思議で楽しい体験だった。

おわりに

「読書をできるだけ邪魔しない読書メモアプリ」

そんなアプリを作った。

読書が好きで、でも読書の時間を大切にしたい人のために。そして、私自身のために。

もし、あなたも「本を読んでいるときは、ただその世界に没入したい」と思うタイプなら、
きっと気に入ってもらえると思う。

あなたの読書体験が、少しでも豊かになりますように。


Cocoas - 読書メモアプリ

読書好きな人と話すのが好きです。
もし使ってみたら、感想を聞かせてください。

それでは、よい読書タイムを。

技術スタック

Discussion