はじめに
普段の作業をもっと快適にするために、Pythonで使いやすさにこだわったタブ型・プレビュー付きの検索アプリ「FileSearchExplorer」を開発しています。
これまでにいくつかのバージョンアップを重ね、機能追加や不具合修正を行ってきましたが、今回はさらに大量のファイルをスムーズに捌くための大型アップデート「v0.3」をリリースしました。
使い勝手の向上や、より安全に使い続けるための内部設計の見直しなど、アプリの完成度をグッと高める強化を行ったのでご紹介します!
GitHubリポジトリはこちら:
https://github.com/Unknown777hello/FileSearchExplorer
v0.3での主な進化ポイント
-
大量のファイルもスムーズに扱う高速化
大量の検索結果が表示される際、画面が重くならないよう表示処理を大幅に高速化しました。
また、インデックスデータベース(SQLite)のファイル名(name)に検索用のINDEXを追加したことで、キーワード検索がこれまで以上にサクサク動くようになっています。
拡張子フィルタの判定や、CSVエクスポートの処理速度もまとめて引き上げました。 -
いつでも止められる検索キャンセル機能
「間違えて予定と違うフォルダを指定して検索しちゃった!」というときのために、検索キャンセル機能を搭載しました。長くなりそうな処理もいつでも安全に中断できます。 -
データベースの最適化(VACUUM)機能
インデックスDBは使っているうちに内部に隙間ができて肥大化していくものです。そこで、アプリ内からデータベースを綺麗に整理してパフォーマンスを維持できる「VACUUM機能」をインデックス管理画面に追加しました。 -
無限ループを防ぐ安全対策の強化
ショートカットに似た仕組みである「シンボリックリンク」や「Windowsのジャンクション」が、お互いを指し合って無限ループ(循環参照)になっていても、アプリがフリーズすることなく安全にスキップできるよう、対策をガチガチに強化しました。 -
内部の書き込み・ログの改善
設定を変更するたびに毎回ディスクへ書き込むのではなく、変更をまとめて効率よく保存するように見直しました。また、万が一エラーが起きた際も原因がすぐわかるよう、検索やインデックス作成、CSV出力などのエラーをログに記録する仕組みを導入しています。
開発の裏話:ライセンスを「独自ライセンス」に変更しました
今回から、配布ライセンスをMITから「独自ライセンス」へと変更しました。
個人でのご利用はこれまで通り完全無料ですし、コードの学習目的などでの逆コンパイルや改変も自由です!
ただ、せっかく自分で作った大切なアプリなので、予期せぬ場所への再アップロードを防いだり、改変版を出すときは名前を変えてクレジットを残してもらう、といった「アプリを大切に育てるための最低限のルール」を決めさせていただきました。
(※詳細はリポジトリのREADMEをご確認ください)
最後に(WindowsならPython不要で動きます)
Python環境がないPCでも、Windows環境(10/11 64bit)ならReleasesからzipをダウンロードするだけでそのまま単体で動きます。
機能がどんどん充実して、いよいよ「自分だけの最強検索ツール」として仕上がってきました。
バグ報告や「こんな機能が欲しい!」といったフィードバックは、引き続きGitHubのIssuesでお待ちしています。ぜひスターもポチッとお願いします!
最新版のダウンロード(Releases):
https://github.com/Unknown777hello/FileSearchExplorer