開発室

2019年3月17日 (日) 23:30時点におけるAdmin (トーク | 投稿記録)による版

ストアアプリ化計画とは

テキストエディタ「Mery」を Windows 10 ストアで公開する計画です。

Windows 10 になってマイクロソフトのフリーソフトに対する風当たりは益々冷たくなり、清廉潔白なフリーソフトでもウイルス扱いされる悲しい時代となりました。

テキストエディタ「Mery」は趣味の日曜プログラミングで開発しているアプリケーションですから、多くの人に使ってもらいたいといった野望はございませんが、プログラミングにおけるアドバイスを頂いたり、ご意見・ご要望をいただいたりして徐々に進めていく開発作業は、ダンジョン探索型の RPG で地下深く潜っていく感じでとても楽しいです。

このまま適当にやっていけるに越したことはないのですが、最近の Windows はデジタル署名なしのアプリケーション、いわゆる野良アプリを片っ端からウイルス扱いしており、Mery も更新のたびに SmartScreen やウイルスチェックソフトで誤検出されてしまうようになりました。

その都度、様々なウイルスチェックソフトのメーカーに検体を送付して、安全認定をもらって対処していますが、それでも更新のたびに誤検出されてしまいます。

これらの作業には非常に時間がかかりますし、プログラミングの楽しさも忘れてしまうほどの面倒くささを伴います。こういったウイルスチェックソフトによる誤検出をなくすためにはデジタル署名というものが必要になります。

デジタル署名とは、正確にはコードサイニング証明書というもので、アプリケーションの配布元を認証し、ウイルス混入などの改ざんがされていないことを保証するものです。

「じゃあ、デジタル署名をつければいいじゃない」

と思うじゃないですか。

このデジタル署名、めちゃくちゃ高いんです。もともと法人向けの仕組みだったこともあってか、年間、6 万~なんていう、個人の趣味でちょっと買ってみるかーとならない価格帯なのです。最近ですと、業界最安値ということで年間 2,1000 円なる業者もあるようですが、2 万円だって高いじゃないですか。

そんな時に教えていただいたのが「ストアアプリ化」だったのです。

ユーザさんのメリット

  • デジタル署名が付くのでセキュリティ的に安心して使えるしウイルスチェックソフトで誤検出されなくなる
  • ストアによる自動更新が可能になる

ユーザさんのデメリット

  • ストアアプリになるので一部の機能が制限される (後述)
  • お金がかかる (後述)

作者のメリット

  • ウイルスチェックソフトによる誤検出の原因、デジタル署名をマイクロソフトが代わりにやってくれる
  • 自動更新機能を実装するためにはハイスペックなレンタルサーバが必要だけど、マイクロソフトが代わりにやってくれる

作者のデメリット

  • お金がかかる

ストアアプリ化計画の詳細

Microsoft ストアで販売されているアプリケーションは、UWP (ユニバーサル Windows プラットフォーム) アプリケーションと呼ばれ、現在、Microsoft が推奨している規格で、普通の PC はもちろん、Windows Mobile や Xbox などでの動作を想定したものになっています。

そこで、デスクトップアプリケーションを UWP アプリっぽくする仕組み "Desktop Bridge" を使えば、Mery も、ストアアプリ (UWP っぽいけど UWP じゃない) として Microsoft の手厚いサポートが受けられるようになるというわけです。

先ほど述べた通り、デジタル署名の付与と自動更新というメリットがあるわけですが、

ご意見・ご要望

内容 状態 備考
タイプライタースクロールで固定位置の設定 検討 検討
Zen モードで半角スペースの記号とかが表示されちゃう 検討 プログラムミスです
Zen モード切り替え時に画面がチラつく 検討 対策を調査中
スクロールバーに検索色付け 検討 基礎はできたけど動作速度が実用レベルに達しない → そこそこ高速化できた → 独自描画のスクロールバーは ThinkPad のトラックポイントで動作しない?
ミニマップが欲しい 検討 面白そうだけど大変そう → スクロールバーに色付け (検索結果、変更行、ブックマーク) ができればミニマップの代わりになりそう
URL のパースで「!」が認識されない 検討 エディタエンジンの仕様。修正可能。
Zen モードのエディタ部分以外の背景色を変更したい 検討 隠しオプションなら実装可能
マクロで Undo ポイントの設定 途中 2.6.15 で対応済。仕様変更を検討中。BeginUndoGroup、EndUndoGroup メソッド?スコープは?などの課題あり
縦書きモードでのマクロの互換性 検討 キー操作をエミュレートしているメソッド (CharRight) とかをどうする?
文書から検索 (フィルタ機能) 検討
コードの折り畳み 検討
検索ツールバー 検討 技術的には可能。アイコン素材がないので困ってる
行番号と本文の余白設定 途中 隠し機能として実装済
マクロからタブの文字列変更 検討
キーボードマップでソートしたい 検討 Delphi だと▽マーク表示とかが大変
マクロでグローバル変数 (tag) の実装 検討 ディクショナリ型変数?Delphi での実装方法が不明
入力補完の自動呼出しのイイ感じ表示 検討 自然な感じで。オプション画面に項目を増やしたくない
1 ページに収まる行数取得 (プラグイン) 検討
単語補完を Tab キーで確定 検討 キー割り当てできるようにしたいけど仕様上困難
長い行で検索したときに右端に余裕を持たせてスクロール 検討 TNotePad の仕様なのであまり触りたくない
タブを閉じた後にアクティブにするタブの設定 (左・右・直近など) 検討 オプション画面がいっぱいなので困ってる
開いているファイルから検索・置換 検討 試作品はできたけど検証がダルい
矩形選択をがんばる 検討 がんばれない
マーカーと通常の検索の同期 保留 同期しないほうが便利なこともある
自動アップデートの実装 保留 サーバ増強、コードサイニングの取得など費用がかかる。そもそもセキュリティ的な問題が大きい。アップデートチェックに留めておくべき→アップデートチェックでもサーバーが落ちてるので勘弁してください
矩形選択で文字入力したときにイイ感じに入力されると良い 保留 作ってみたけど問題多すぎ
トリプルクリックからの論理行選択 保留 物理行選択派な人もいそう
ワークスペース保存・復元 完了 2.6.15 で対応済
集中執筆モード 完了 2.6.15 で対応済 (Zen モード)
プラグインでエンコードと改行コード取得 完了 2.6.10 で対応済
ファイルから検索のコマンドライン引数の増設 完了 2.6.9 で対応済
自動保存、バックアップ機能 完了 2.6.9 で対応済
編集行の強調表示 完了 2.6.9 で対応済
ファイルから検索・置換に「終了したら閉じる」を追加 完了
/mf でアクティブなタブに対してのマクロ発動 完了
EXE アイコンがダサい 完了 2.6.0 で対応済
UTF-16 の BOM 無対応 完了 2.5.5 で対応済
単語分断折り返し 完了 2.6.0 で対応済
ツールバーの大きいアイコンが欲しい 完了 2.6.0 で対応済
自動マーカー、手動マーカー 完了 2.6.0 で対応済
マウスキャプチャ後のスクロールマージンの挙動を秀○さんっぽくしたい 完了
AddFontResource で追加したフォントが DirectWrite で使用できない 完了 2.5.0 で対応済
Tidy HTML5 完了 2.5.0 で対応済
アウトラインのドラッグドロップで並べ替え 完了 2.5.0 で対応済
ウィンドウの縦分割 完了 2.5.0 で対応済
特殊文字入力のインターフェイス考察 完了 特殊文字を入力するマクロを同梱した
書き換え禁止モードをわかりやすくする 完了 タブに鍵マークを表示するようにした
先頭大文字で Don'T になっちゃう 完了 アポストロフィは無視するようにした
最大化→最小化→復元時のファイルの更新チェックを走らせる手段の調査 完了
バイナリなどを開いたときの確認ダイアログで「キャンセル」したい 完了
文字間隔の設定 完了
グレーアイコンが濃すぎる 完了
新規作成時のエンコードの指定方法について検討 完了
ドラッグ中にメッセージボックスを表示させるとフリーズすることがある 完了
起動時引数行番号と一緒に桁番号も指定 完了
単語補完の自動起動 完了 実装したけど誰も使ってなさそうだったので廃止
0x200Fの挙動 完了
画面中央付近でキャレットを固定したい 完了 ScrollMargin を最大値に設定
起動時引数エンコードの指定 完了
起動時引数編集モードの指定 完了
SJIS、UTF8 とかごとの文字コード表示 却下 UTF8 標準化に伴い却下
CSV / TSV 編集機能の研究 却下 Excel で良いんじゃね?
スポンサーリンク