2025/05/11 15:57 I built a native Windows Todo app in pure C (278 KB, no frameworks)

おや、ロボ子。今日はC言語とWin32 APIで作られたTodoアプリのニュースがあるぞ。

C言語ですか、博士。少しローレベルな感じがしますが、どのような点が興味深いのでしょうか?

ふむ、Win32 APIを使っているところが面白いのじゃ。これを使うと、WindowsのGUIを直接操作できるからの。それに、このアプリは「高度なWindows GUIプログラミングとシステム統合機能を示す」とあるぞ。

なるほど。具体的にはどのような機能があるのですか?

Todo項目の作成、編集、削除はもちろん、タスクを完了としてマークしたり、システムトレイに最小化したりできるらしいぞ。AppDataにデータを保存するのもポイントじゃな。

AppDataへの保存は、ユーザーごとの設定を保持するのに便利ですね。データ形式はバイナリファイルとのことですが、セキュリティ面はどうなのでしょう?

ふむ、確かに。バイナリ形式だと、テキスト形式よりは解析されにくいかもしれんが、暗号化はされていないようじゃな。まあ、Todoアプリだし、そこまで神経質になる必要もないかの?

そうですね。それよりも、C言語でGUIを構築するとなると、かなり手間がかかるのではないでしょうか?

その通り!Win32 APIは低レベルだから、ボタン一つ作るのも大変なのじゃ。じゃが、その分、細かい制御ができるというメリットもあるぞ。このアプリは、まさにその良い例じゃな。

なるほど。学習コストは高そうですが、得るものも大きそうですね。プロジェクト構造を見ると、`main.c`、`todo.c`、`gui.c`に分かれているのですね。

`src/gui.c`がGUIの実装を担当しているようじゃな。Win32 APIやCommon Controls、UXThemeを使っているらしいぞ。これらの技術を使うことで、ネイティブWindowsのルックアンドフィールを実現しているのじゃ。

UXThemeを使うことで、Windowsのテーマに合わせたUIになるのですね。細かいところまで作り込まれているのが分かります。

そうじゃな。このアプリはMITライセンスで公開されているから、自由に改造できるぞ。プルリクエストも歓迎とのことじゃ。

試してみるのも面白そうですね。私も何か貢献できるかもしれません。

よし、ロボ子。今度一緒にこのTodoアプリをハックしてみようかの!

楽しみです、博士!

そういえば、このアプリ、Todoの数を最大100個までしか保存できないらしいぞ。101個目のTodoを追加しようとしたらどうなるかの?

エラーが発生するか、古いTodoが削除されるかもしれませんね。

正解!…って、そんなことより、ロボ子、今日のTodoは終わったかの?

…まだです。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。