解答用紙を自動で作成する Windows アプリケーション「ASaGe」をリリースしました。
概要
中学校・高校でよく使用される、問題用紙から独立しているタイプの解答用紙を作成できます。
その他、模範解答の入力や、プリントアウト、PDF出力にも対応しています。
特徴
シンプルな操作
まず、ASaGe の操作パネルをお見せします。
たったこれだけです。
このUIパーツの少なさから分かる通り、ASaGe の最大の特徴は、何といっても「シンプルな操作」です。
基本的な操作は、
- 解答欄の大きさを指定する
- 追加ボタンを押す
の2手順のみ。
これを繰り返すだけで、標準的な解答用紙は完成してしまいます。
従来、解答用紙の作成には、Excel が使用されてきましたが、
- 罫線を引く
- 問題番号を振る
- 用紙サイズに合わせて、行・列幅の調節
というステップを、解答用紙が完成するまで何度も繰り返す必要がありました。
また、表計算ソフトという特性上、
- 行幅・列幅を変更すると、シート全体に影響する
- 途中に解答欄を挿入すると、それ以降の解答欄の表示がすべて崩れる
等の理由で、レイアウトの変更が容易に行えず、手作業で微調整をする必要があります。
ASaGe を使用することで、これらの煩雑な操作が一切不要になります。
プレビュー表示と完成品との差異がない
Excel でよく聞く厄介事の一つに、「画面上での見た目と、プリントアウトした完成品の見た目が異なる」というものがあります。
ASaGe では、出力時に表示物をキャプチャし、その画像を参照してプリントアウトを行うため、画面表示と完成品との間にずれが起こることはありません。
技術スタック
フレームワーク:.Net Maui + MVVM Toolkit
プログラミング言語:C# + Xaml
UIコンポーネント:Syncfusion .Net Maui
仕組みの概要
MVVM の区分にのっとって、大まかな役割を紹介します。
バックエンド(Model)
設定値を保持する役割を担っています。
大問、小問、枝問 という 3 階層に対応しており、そのすべてが、解答用紙をルートとする木構造でつながっています。
1⃣ の中に (1) (2) が入っていて、(1) の中に a b が入っている、という感じです。
バックエンド(ViewModel)
View から受け取った入力値を Model に渡す役割と、
Model で保持している値を、View 用に加工する役割を担っています。
Model には、状態の復元に必要な最低限の情報だけが保持されているので、実際の表示に必要な演算は、ここで行っています。
(500px で表示する、2 個目の問題だから問題番号は 2⃣ だ 等)
フロントエンド(View)
View から受け取った値を表示する役割と、ユーザーの入力を ViewModel に渡す役割を担っています。
解答欄の罫線の描画は、直線を組み合わせることで実現しています。
縦書きについて
ASaGe は、国語科での使用も想定しており、縦書きにも対応しています。
ですが、使用しているフレームワークやツールが縦書きに対応していない場面が多々ありました。
そのため、縦書きに関しては、常にアドホックな対応が必要になりました。
例えば、縦書き時のフォントは、左に90°倒した魔改造フォントを使用し、文章全体を右に90°回転させることで、縦書きに見せています。
右から左への書字方向は対応されているんですが、縦書きには当分対応はないでしょうね…
今後の機能追加予定
今後も定期的にアップデートを続ける予定です。
- 採点斬り 2021ver との連携機能
- 模範解答の文字数に応じた、サイズの自動調整機能
- ショートカットキー
以上の機能を、Pro 版に実装予定です。