開発環境015「初めてのアプリ開発で感じたこと、『てけでっきゅ/TekeDecku』完成までに考えたこと」

はじめに

前回の記事では、Windows 向けアプリ「てけでっきゅ / TekeDecku」が完成したことを書きました。
今回はその続きとして、初めてアプリ開発をしてみて僕が実際に感じたことを書いておこうと思います。

完成報告の記事では、どんなアプリができたのかを中心にまとめましたが、今回はもう少し中身の話です。
なぜこのアプリを作ろうと思ったのか、どういう方針で仕様を決めたのか、開発の中で何を考えたのか、そしてAIを使った個人開発にどんな可能性を感じたのかを、実感ベースで記録します。

初めてアプリを作ろうとしている方や、個人で何か便利なツールを形にしたいと思っている方にとって、少しでも参考になる部分があれば嬉しいです。

今回作ったアプリの位置づけ

今回作った「てけでっきゅ / TekeDecku」は、定型文やテンプレート本文を探して、確認して、クリップボードへコピーするための Windows 向けデスクトップアプリです。
現在のリリース版は 1.0.0 で、ローカル完結で使う前提のツールとして作りました。

最初は、外部アプリの入力欄に直接文字を送るような使い方も考えました。
ただ、そこまでやると便利さは増えても、動作の複雑さや誤操作の可能性も上がります。
最終的には、自動入力やキー送信ではなく、あくまで安全にコピーできる状態を用意することに特化したアプリにしたほうが良いと判断しました。

つまり、このアプリがやるのは「本文を探して、内容を確認して、コピーする」までです。
実際の貼り付けは各アプリ側で Ctrl+V を使ってユーザーが行う前提にしました。
初めてのアプリ開発だったからこそ、できることを増やすより、役割をはっきり絞るほうが大事だと感じました。

技術的な方針を決めたときに考えたこと

初版の技術構成は、Python + PySide6 + SQLite にしました。
デスクトップ GUI ツールとして相性が良く、段階的に組み立てやすく、ローカル保存にも向いているからです。

実行確認では、Windows 側でグローバルの python コマンドが壊れていて少し戸惑いました。
ただ、.venv\Scripts\python.exe -m app.main では問題なく起動できたので、アプリ自体ではなく Python の PATH 周りの問題だと切り分けられました。
こういう点も、実際に手を動かしてみないと分からない部分でした。

初めての開発だと、コードそのものよりも、どこに問題があるのかを見分けることのほうが難しい場面があります。
今回も、起動しないのか、実行環境がおかしいのか、アプリの構造に問題があるのかを一つずつ整理する必要がありました。
その経験だけでも、ただ作るだけではない学びがあったと思います。

UIや仕様を詰める中で感じたこと

今回かなり考えたのは、機能を増やすことよりも、迷いにくい構成にすることでした。
メイン画面は、左にカテゴリ、中央にカード一覧、右に詳細表示、上部に検索や管理ボタン、下部にステータス表示という構成にしています。
「探す」「確認する」「操作する」の場所を分けることで、自然に使える画面を目指しました。

カテゴリ欄には、すべて、お気に入り、未分類、ユーザー追加カテゴリを置く方針にしました。
特に未分類は削除不可、移動不可の特別な扱いにして、整理の基準点として残しています。
こういう細かい仕様は地味ですが、実際に使うときの分かりやすさに直結する部分だと思います。

カード UI も、単なるボタンの並びではなく、説明付きの情報カードとして見せる方針にしました。
本文を主役にして、説明、分類ラベル、コピー操作の順で情報の優先度を決めています。
しかも 1 列固定で、ウィンドウ幅に応じてカード幅だけが伸縮し、勝手に 2 列や 3 列にならないように考えました。

このあたりは、単に動けば良いでは済ませたくない部分でした。
僕自身、使うたびに見づらい UI はそれだけで触らなくなるので、見やすさや役割分担にはかなり意識を向けました。

仕様を広げすぎず、それでも整えることの難しさ

今回の開発で面白かったのは、最小限の便利ツールに見えて、実際には考えることがかなり多かったことです。
テンプレートの登録項目は、最終的に本文・説明・カテゴリを中心に整理し、当初考えていた表示名はやめました。
不要な項目を減らしたほうが、かえって分かりやすくなると判断したからです。

一方で、検索や並び替え、カテゴリ管理、色設定、表示設定など、使い勝手に関わる機能はきちんと入れたいと思いました。
検索対象は本文と説明にし、並び替えはカテゴリ順、本文順、更新日時順、使用回数順を用意しています。
初期表示はカテゴリ順寄りにして、まず整理された一覧として見えるようにしました。

カテゴリ色の扱いも意外と考えることが多く、コード入力ではなく、見て選べる UI にしたいという方向で整理しました。
20色パレット、RGB スライダー、明暗調整、ラベル見本表示まで含めて考えたのは、ただ色を付けるだけではなく、使う人が迷わず選べることを重視したかったからです。

初めての開発では、つい「機能が多いほうがすごい」と考えがちかもしれません。
でも実際には、必要なところは整えつつ、余計な複雑さは増やさない、その線引きのほうがずっと難しいと感じました。

スキンや言語対応まで含めて整えたこと

見た目についても、かなり方向性を考えました。
最終的なスキンは、ビジネス、パステルキュート、ミッドナイトの 3 種類にしています。
派手さを前に出すのではなく、可読性や落ち着き、高級感とやわらかさの両立を意識して整えました。

途中では、もっとピンク寄りでネオン感のある方向も考えましたが、最終的には上品で読みやすい方向に寄せています。
色だけで雰囲気を作るのではなく、余白、情報階層、カード構造、役割分担で洗練さを出すほうが長く使いやすいと思ったからです。

さらに、UI は日本語 / English の切り替え対応も想定しました。
主要 UI 文言やスキン名、未分類表示なども言語に応じて切り替える前提で整理しています。
初めてのアプリなのにそこまで考えるのかという見方もあるかもしれませんが、逆に最初の段階で方針だけでも固めておくと、後から崩れにくいとも感じました。

保存先や安全性まで意識したことで見えたこと

今回のアプリは SQLite を使い、想定保存先は %LocalAppData%\TekeDecku\data\tekedecku.db としました。
初回起動時に自動作成し、設定もローカル保存です。
アプリ本体を消しても、ユーザーデータは自動では消えない想定にしています。

このあたりも、単に動けば良いではなく、実際に使い続ける前提で考えた部分です。
保存場所が曖昧だったり、消してはいけないデータが巻き込まれたりすると、使う側として不安が残ります。
だからこそ、ローカル完結、任意コード実行なし、危険な subprocess なし、SQL はプレースホルダ利用、クリップボードへ本文を入れるのみ、自動貼り付けなし、キー送信なし、外部アプリ制御なし、という形で安全性の整理も行いました。

初めての開発でも、こうした部分を後回しにしなかったのは良かったと思っています。
目立つ機能ではありませんが、安心して使えるかどうかに関わる大事な部分だからです。

配布まで進めたことで実感したこと

開発して終わりではなく、配布まで考えたことで、アプリが一段階現実のものになった感じがしました。
今回は Windows 向けに、ポータブル版 ZIP とインストーラー版 EXE の 2 形式を想定し、バージョンは 1.0.0 としました。

配布方法は BOOTH も少し考えましたが、最終的には Google Drive 配布を選ぶ方針にしました。
また、コード署名なしでの配布になるため、Windows SmartScreen や Unknown Publisher の警告が出る可能性があることも明記する必要があります。
作ることだけでなく、どう説明して渡すかまで考えると、個人開発はかなり実務的だと感じます。

利用条件についても、個人利用のみ許可、再配布禁止、改変版配布禁止、商用利用禁止、無保証、作者は焼魚あまね、という形で整理しました。
このあたりも、最初はあまり意識していなかったのですが、実際に配布するとなると避けて通れない部分でした。

AIと一緒に進める開発の強さを強く感じた

今回いちばん大きかったのは、やはり AI と一緒に進める開発の強さです。
特に、細かい修正にAIが対応してくれることの価値を強く実感しました。

個人で何かを作っていると、「ここを少し直したい」「この文言を整えたい」「ここの見せ方を変えたい」といった小さな調整が大量に出てきます。
しかも、そういう修正ほど後回しにすると全体の質に響きます。
完全に個人だけで進めるなら、調べて試してを繰り返すうちに、何年もかかってもおかしくないと思います。

それが今回は、AIに相談しながら進めることで、判断材料を出しつつ、その場で細かく整えていくことができました。
もちろん、何を作りたいか、どこを良しとするかを決めるのは自分です。
でも、そこに至るまでの手間や試行回数はかなり減らせると感じました。

僕にとっては、アプリ開発が「一部の詳しい人だけのもの」から、「工夫すれば自分でも手が届くもの」に変わった感覚があります。
これはかなり大きな変化でした。

まとめと今後

初めてのアプリ開発を通して、僕は単にひとつツールを作れたというだけでなく、個人開発の進め方そのものをかなり学べたと思っています。
何を作るのかを絞ること、見やすさを優先すること、安全性や保存方法まで考えること、そして配布まで含めて整えること。
その一つひとつが、思っていた以上に大事でした。

「てけでっきゅ / TekeDecku」は、規模としては大きなアプリではありません。
それでも、用途を明確にし、コピー支援に絞り、UIや設定、スキン、言語対応、安全性まで含めて組み立てたことで、かなり納得感のある形にできたと思っています。

今後は、実際に使いながら改善点を見つけて、必要なら 1.0.1、1.1.0 といった形で少しずつ育てていきたいです。
また、今回の経験はこのアプリだけで終わらせず、今後の制作や開発にもつなげていくつもりです。

初めてのアプリ開発は、やる前よりも、やった後のほうがずっと現実的に見えるようになりました。
小さくても、自分に必要なものを一つ完成まで持っていくことには、かなり大きな意味があると感じています。
これから何か作ってみたいと思っている方がいるなら、最初から大きなものを目指しすぎず、役割を絞ったひとつをきちんと形にしてみるのは、とても良い経験になると思います。