最初にぶつかった壁「デュアルモニター対応」
こんにちは。
前回は、Snappyを作ろうと思ったきっかけについてお話ししました。今回は、開発を始めて最初に直面した大きな壁、「デュアルモニター対応」について書いてみようと思います。
シングルモニターでは問題なし
最初の試作品は、思っていた以上に順調でした。
画面をドラッグして範囲を選択し、そのままコピーや保存ができる。
基本的な機能はすぐに完成し、「これなら意外と早く完成するかも」と思っていました。
ところが…。
デュアルモニターで事件発生
開発用PCを普段使っているデュアルモニター環境で動かしてみると、すぐに異変に気付きました。
画面をドラッグすると、
「なぜ?」
シングルモニターでは正常なのに、デュアルモニターだけで発生する不具合です。
ここから原因探しが始まりました。
原因はWindowsのDPI倍率
調査を進めていくと、犯人はWindowsの表示倍率(DPIスケーリング)でした。
例えば、
このような設定になっていると、Windows内部では座標の扱いが変わるため、単純な座標計算では正しい位置を取得できません。
最初は「座標がズレているだけ」と思っていましたが、実際にはWindowsがモニターごとに異なる倍率で画面を管理していることが原因でした。
解決まで試行錯誤
何度もプログラムを書き直し、テストを繰り返しました。
100%・125%・150%・175%など、さまざまな組み合わせで検証し、不具合を一つずつ修正。
「これで直った!」と思っても、別の環境では再びズレる…。
そんなことの繰り返しでした。
開発は思っていた以上に地道な作業ですが、その分、一つ問題を解決できた時の達成感は格別です。
より多くの環境で快適に
Snappyは、自分だけが使えれば良いソフトではありません。
さまざまなモニター環境やWindowsの設定でも、ストレスなく使えることを目標にしています。
細かな部分ほど目立ちませんが、こうした積み重ねが「使いやすいソフト」につながると考えています。
次回予告
次回は、開発を進める中で欠かせない存在となったAIとの共同開発についてご紹介します。
AIをどのように活用しながらSnappyを進化させているのか、その裏側をお届けします。
今後もSnappyの開発ブログをよろしくお願いいたします!


