漫画管理アプリ「ほんだな」を作っています。手元にある紙の漫画を、何巻まで持っているかと一緒に記録しておくためのアプリです。
この連載では、開発の記録を追いながら、コードだけでは残らない「なぜそう作ったか」を書いていきます。第0回の今回は、アプリを作ろうと思ったところから、題材に「ほんだな」を選び、作り始める前に「ユーザーのデータを持たない」と決めたところまでの話です。
先にあったのは「Claude Code で作りたい」だった
出発点は、漫画でも本棚でもありませんでした。Claude Code(AI に指示を出しながら、一緒にコードを書き進められる開発ツール)を使って、アプリを1本作ってみたかったのです。
そのために、まず題材を探していました。フレームワークに Flutter を選んだ経緯は、別の記事に書いています。
題材を探していたころ、ある人が、紙の本で集めている漫画をスマートフォンのテキストメモで管理しているのを見かけました。作品名を並べて、持っている巻数を書いておく。新しい巻を買ったら、メモを開いて数字を書き換える。
これをアプリにしたら、ちょうど「あったらいいな」になると思いました。具体的に思いついたのは2つです。
- +ボタンを押すだけで、巻数を1つ増やせる
- 本の表紙がサムネイルで並ぶ
作りたい気持ちが先にあって、そこにちょうど合う題材が見つかった、というのが実際の順番です。既存の漫画管理アプリも、調べずに作り始めています。
最初に決めたこと —— ユーザーのデータを持たない
作り始める前に決めていたことがあります。電子書籍は管理しない。紙の本だけに絞る、ということです。ソーシャル機能(他の人と本棚を見せ合う、ランキングを作る)も、最初から外しました。
どちらも理由は同じで、ユーザーのデータをこちらが持ちたくなかったからです。
電子書籍まで扱おうとすると、外部のサービスとアカウントを連携して、購入履歴を取り込んで……という話になりがちです。ソーシャル機能なら、ふつうは人と共有するためにデータをどこかのサーバーに集めることになります。どちらも、誰かの本棚の記録を、こちらが預かることになる。
預かれば、預かった分だけ守るものが増えます。預かった記録が漏れないように備える、他人がなりすましてログインできないように守る、預かり場所(サーバー)を止めずに動かし続ける。対策はいくらでも積めますが、それよりも、データを持たないことで、リスクそのものを減らすほうを選びました。
電子書籍もソーシャル機能も、あれば便利そうな機能です。外せば、できることは減ります。それでも、この2つは最初から入れていません。
記録は、使う人の手元にだけ置く
「ほんだな」が持っている記録は、どの本を何巻まで持っているか、だけです。その記録は使う人の手元にあって、こちらには届きません。
外とやりとりするのは、次のものだけです。
- 本の情報を調べるときに、ISBN(本ごとに振られた識別番号)やタイトルを、書誌サービス(Google Books・openBD・国立国会図書館)へ問い合わせる
- 本の表紙の画像を取得する
- 使う人が操作したときに、Amazon や Google の検索を開く
利用状況を集める解析の仕組みや、クラッシュ報告の送信は入れていません。記録を預かる独自のサーバーもありません。どの本を何巻持っているかという記録そのものは、どこにも送りません。
その後に作ったものも、この前提の上にあります。電波の無い場所でもそのまま動くこと。バックアップを、こちらのサーバーを通さず、使う人自身がファイルとして持てること。
もちろん、最初から全部を決めていたわけではありません。巻の持ち方のように、作りながら割り切ったこともあります。そちらは後の回で書きます。
むすび
作るきっかけは、Claude Code でアプリを作ってみたいという気持ちでした。題材を探す中で、テキストメモで漫画を管理している人を見かけて、「ほんだな」ができました。その人は、いま「ほんだな」を使い始めています。
そして最初に決めたのは、何を作るかよりも何を持たないかでした。
次回は、最初の版が動いた後の話です。最初に思いついた不便が解けたあと、次に何を作るかをどう決め直したかを書きます。