hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EBPocket for WinRT(2)

内蔵辞書の検索ができるようになったので、最初のスクリーンショットを公開する。
EDICT2(EPWING)を検索:

検索チャームからの検索:

一見順調なようだが、実はここへきて、ストアアプリの根本的な問題点に直面している。
EBPocket for WinRTでは、ファイルアクセスにC++/CX の Win32API サブセットを使用している。ところが、ストアアプリでは、Win32APIでアクセスできるのは、サンドボックス内のファイルに限られている。
File access and permissions (Windows Runtime apps) | Microsoft Docs
ストアアプリではマニフェストに定義すれば、ドキュメントフォルダやリムーバブル デバイスにもアクセスできるのだが、こちらは専用の非同期API(Windows.Storage API)を使用する必要があるので、ライブラリの全面的な書き換えが必要になってしまう。また、マニフェストのファイルの種類の関連付けで宣言した拡張子しかアクセスできない。すなわち、EPWINGのCATALOGSやHONMONなどの拡張子のないファイルは、(サンドボックス以外に配置した場合、)ストアアプリからはアクセスできない。
今のところ、ストアアプリでEPWINGビューアを作ろうと思うと、「ファイルピッカーでEPWINGのファイルを選択させ、サンドボックスに複写する」方法しかないような気がする。
だが、おそらく多くのユーザが期待しているのは、(本体メモリを節約するために、)外部SDカードにEPWING辞書を入れて運用することではないだろうか。どうやWinRTではこの簡単に見えることが不可能らしい。

Microsoftの意に反してストアアプリがなかなか増えない理由の一つに、開発者側から見た問題点として、WinRTの制限が強すぎるために、開発したいアプリがそもそも作れないという問題もあると思う。