猫モフ Apps - 小説執筆アプリを創ろう - 00. はじめに

猫モフ Apps は、猫をモフモフしながら思いついたアイデアを、バイブコーディングでゆるっと創っていく企画です。
元々、Google AI StudioでWEBアプリの雛形を作成、ローカルでGemini CLIで開発を進めていました。
そして、Google Antigravityの登場で、更に便利に開発を進められるようになりました。
そこで作成したのが、自分で使用するための小説執筆アプリ、novelaid-editorです。
Novelaid Editor の紹介

これは、WEB小説投稿サイト用の小説を書くことのみを想定した、自分で使用するためのアプリです。
基本機能としては、画像の通りですが、以下のようなものがあります。
- 執筆する作品用のフォルダーのファイル一覧表示
- 私の場合、この中に設定と小説の二つのフォルダーに分けています。
- 執筆部分のエディターはVSCodeとかと同じ物を使用しています。
- 単に書くだけなら一番慣れているやつです。
- ルビや傍点の簡易入力などの機能は追加しています。
- セリフと地の文の色つけ
- エピソードの文字数表示
- ステータスバーに表示されています。
- とりあえず、縦書きのプレビュー表示っぽいものも出ます
後はそれなりに動作していそうな感じの特徴的な機能として、
- 登場人物、地名、プロットなどの一覧表示
- 左に並んでいるアイコンから。
- マークダウンファイルにメタデータでマークして表示してます。
- これは、Obsidianでも自作プラグインで対応してたやつ。多分Obsidian標準でも工夫すれば似たことができます。
- ちょっとした表記ゆれとかの校正というかチェック
- 右側のペイン部分
- gitでの保存およびプッシュ
- 結局、小説関連はGitHubにプライベートでバックアップしています。
遊びというか、実験的な機能。動いたり動かなかったり。 生成AIを使用した機能です。とりあえず、ローカルなLMStudioを利用できるようにもしてあります。
- AIとのチャット
- 作業しているファイルの内容について聞けます。
- AIによる校正
- 誤字脱字のチェックとか、校正、講評とか
- 任意の登場人物とのチャット
- 前述の登場人物一覧の登場人物とのチャットが出来ます
面白そうだから組み込んではみてますが、実際にはほとんど使用していません……。
ただ、任意の登場人物とのチャットは思ったより有用な気がしています。
チャットを行い、想定したような喋りややり取りが行われない場合、キャラの練り込みが足りないとも言えそうなので。
まあ、AIが理解できるぐらいにプロットやキャラを練り込めってことなんでしょう。
その他、エディター内に「カクヨム」や「小説家になろう」を表示する機能もつけてみてます。
現状、大雑把にはこんな感じです。
ここまで入れば私の普段使いには問題なくなっています。
このように、ぼちぼち実用に耐えるレベルにはなり、公開するためのマニュアルやら色々体裁を整えるにあたって、どんな機能があって、どういう経緯で今の形になっているのかもまとめた方が良いかなとなりました。
また、バイブコーディングでAIにざかざかと作らせたため、コードや構造の整頓が出来ているとは言えません。
そこで、「そうだ、小説執筆アプリを新しく創ろう!」となりました。
いや、そうはならんやろ! というツッコミはさておき、プログラマーとは車輪の再発明を嫌いつつ車輪の再発明を繰り返す生き物なのです。
まあ、マニュアルも適当なものはAIに作ってもらってますが、適当過ぎて確認もしていないので、ここからの一連の記事をnovelaid-editorのドキュメントとして公開しつつ、皆さんが自分専用の小説執筆をアプリを作成できるように再実装をしていきたいと思います。
筆者について
筆者の本職は、プログラマーです。
ただし、メインはC#のデスクトップ向けアプリケーション開発でWEB関連や一般的な分野でもありません。
そして、Node.js(TypeScript)やRustは初心者です。むしろ、この記事を読んで初めてアプリを作成しようとしている読者と同様の状況です。
そんな私でもバイブコーディングでアプリが作成できるという記事でもあり、また、記事を書きつつ少しは知見を増やそうというのが目的です。
※疑問点やわからない事があれば、他のもう少し詳しい記事を読んでみてください。
また、WEB小説執筆については、おもにカクヨムに投稿しています。
あ、もちろんTALESにも投稿していますよ。
このように、プログラマー視点と執筆者視点での記事が書けたらと思っています。
準備するもの
私の環境が Windows なので、Windows を前提として話を進めます。
ついでに、細かいインストール方法とか解説は省略しますので、詳しいサイト等を参照してください。
- Google Antigravity
- プログラムするためのIDE(エディター)です。
- AIがコードを生成してくれます。
- git for Windows
- ソースコードを管理するためのツールです。
- AIはコード生成に失敗することがありますが、その時にUNDOしてやり直すために使います。
- Gir Extensions
- 個人的にWindowsでオススメのgitのGUIツールです。
- Antigravityにもgitの機能はありますが、別途あったほうが便利です。
- 立ち上げると名前やメール等の初期設定画面が出るのでターミナルから設定しなくてすみます。
- Node.js
- 作成するアプリはNode.jsで動くデスクトップアプリとなります。
多分、これだけあればElectron版のアプリの作成はできる気がします。
Tauri版のアプリを作成する場合は、これに加えてRustも必要になりますので、後述のMORE以降も確認してください。
初心者向けにElectron版で進めていたのですが、トータルではTauri版の方が扱いが簡単かもしれません。
また、足りないものがあったらその都度足して下さい。
次回からは実際にアプリの作成に入ります。
MORE
今後の記事では、MORE以降は有料記事にする予定だったのですが、面倒だったので止めました。 まあ、有料記事の機能を試してみたかっただけなので、気に入っていただけたらチップで応援していただけたら喜びます。
MOREで扱う内容
- 駄文
- 自分の覚書も含めて初心者向けではなさそうなもの
- Tauri版の
novelaid-code-next関連 - 主にプログラマー向けの内容
元々この記事はTauri版でも作ってみようかな、という考えから、始まっています。
しかし、TauriだとNode.jsに加えてRustも必要になるので、プログラマー以外へ勧めるには更に敷居が高そうなので本当の意味の再実装であるElectron版で書くことにしました。
そうした場合にElectron版とTauri版を記事に両方載せると冗長かつ面倒だったので、メインはElectron版として、補足的にMORE以降にTauri版を載せることにしました。
……なのですが、ElectronとTauriでどちらが初心者に優しいかとなった時に、両方試した結果、Tauriで問題ない気がしてきました。exe作成までの部分でTauri版でRustが絡むところがほぼなく、AI任せで問題が発生しなかったためです。
それに対して、Electron版は最初のセットアップあたりが初心者には難しいかもしれません。
追加で準備するもの
Tauriのサイトで必要なものを確認してください。
私の環境では古いながらもRustがインストールされていたのと、基本的な開発環境は整っていたため、何か足りないものがあっても気づいていないかもしれません。