Category Archives: UWP

NugetパッケージのSystem.Speech がv7.0でインスタンス作成時にFailを出すようになった件。(.NET6.0にしたら治った)

Nuget package System.Speech v7.0 initialization fail on .NET5.0

無意識にNugetのパッケージをアップデートし、コンパイルが通らなくなった。常日頃から使っているSpeechを使った仕事用のアプリで使っている、Speechがv7.0からinstanceのnewで落ちる。

.NET 6.0では、System.Speech v7.0は使えている。

.NET 6.0というのがあるのでアップデートした。それで Speech v7.0は無事コンパイルできた。一瞬マイクロソフトのSpeechSynthesisの2024年を意識してのサポート切れかと思ったがまだ使えるらしい。

.NET 5.0と6.0の違いは不明。。。他のコンポーネントの様子を見ることにする。

しかし、UWPではだめのようだ。。。

OneDriveでのTXTファイルの扱いが不自然な件。

最近、OneDriveの同期フォルダにローカルのgitリポジトリフォルダを置いてソースをMacとWinで共有している。今は一人でソースをアップデードしているのでこれで十分たりている。Winからコードをアップデートし、コミットすると同時にOneDriveの常駐アプリが即座にファイルをアップロードし、Macのソースコードもアップデートされる。

WinではUWPのコードを中心にアップデート、PCLの共通ライブラリはどちらからも必要な時にアップデートする。

Android のコードはWin、Macどちらでもエミュレータが使えるので慣れた環境が良いのだけれど、今後のモバイル環境、マシン依存を考えて、MBPでアップデートすることにする。

iPhoneのコードはWinでも更新可能だけれど、Win上でデバッグするとMac上でAppleのシュミレータが起動されてMac上でオペレーションをする事になるので、こちらもMBPに以降する。WinのUWPアプリは圧倒的にダウンロードするが少ないのでiPhone, Android, UWPの優先順位で行く。

そして本題ですが、

OneDriveを使っていて、Win10上でノートパッドを使って.txtファイルをOneDriveの同期フォルダに作成した。そして、iPhone、iPadで同じファイルを更新したかった。

しかし、iOS版のOneDriveで、TXTファイルの開いて内容を見ることはできるのだが、テキストの入力ができない。外部コマンドを見るも、txtファイルをそのアプリに添付するか、ファイルをダウンロードしてローカルに保存しようとする。Appleのメモ帳アプリでもTXTファイルを添付ファイルにされてしまう。

つまり、iOSからは直接OneDriveのファイルは更新できなくなっている。アプリそれぞれのデータファイルとしてしか保存できず。そのアップデートしたテキストもOneDriveに戻すこともできず。

PDFファイルで保存すれば、MSWORDかその他のPDFエディタを開けるけれど、TXTでは対応していない。

その線で次のアプリを考えて見るか。

やっぱりアップデートに時間が取られる

少々愚痴っぽいことを書いてみる。

個人的な事情で約3週間自宅を離れてマシンを起動しない状況でした。帰ってきて、マシンを起動して、設定を変えたか何かの理由でマシンを再起動が必要になり、スタートメニューの再起動欄にアップデートして再起動の選択肢しかない。

仕方なく、アップデートして再起動する。そしてアップデートが始まりそのまま、5分くらいアップデートがはじまる。さらにマシンが起動後、アップデートが10分くらい続く。

今のメインマインがBIOSブートということもあり、OSのディスクからの読み込みに時間がかかる。C:ドライブがSSDなのに、起動が遅い。早くUEFIに乗り換えたいが今はそんな暇はない。とにかくWindowsストアアプリをリリースして、確認することが山ほどある。

クロスプラットフォームでC#がどのくらい使えるのか、そしてダウンロード数はどのくらいなのか。

そして、VisualStudioの起動も試してみたけれど、案の定こちらもアップデートあり。インストーラーを起動してアップデートを起動するがこちらもダウンロードが遅い。OSのアップデートと、開発環境のアップデートでまた1日取られてしまう。

VisualStudioのアップデートがされてしまうと、ターゲットのOSバージョンまで新しい環境が要求される訳で、開発側とユーザー側の両方でアップデートをしないといけない。

アンドロイドでは、アプリのアップデートのためにOSすべてのアップデートを要求されるというのを聞いたことがあるけれど、Windowsもそのうちそういう状況になるのだろうか。

なにもしていないのに、時間だけが過ぎていく・・・

VS2017でUWPを始めてみる

さて、さっそくUWPアプリを作ってみる。

最近のプログラミングの入り口はUIを作るところから入るのだけれど、今までのWPFとは勝手が違い、UWPの場合にはフルHD(1920×1080)用の画面をPC用に作ってから、それぞれのデバイスでも動くようにコントロールのサイズ、配置をしていくのが手順のようだ。

しかし、画面のフォーマットを横長(1920×1080)で書いて、ウィンドウズモバイルの5インチ、6インチに縦画面(1920×1080の250%表示)に最適化していくのだけれど、PC用の横長で表示しているものを同じXAMLを使ってモバイル用の小さい画面に表示できるフォーマットを考えるのに一苦労。C#の処理部分はさっと書いてしまえるのに、これに時間を取られてしまっている。

画面のサイズが違うデバイスで見る画面を一つのXAMLで書くのはちょっとやりにくい。デバイス一つ一つにXAMLを用意してほしかった。しかも画面サイズによって違う処理をするというのもできないみたいだ。

結果から言うと、画面のフォーマットが限られてくるようにしか思えない。Flyoutとか、Popupとか静的に画面に見えていない要素があると操作を覚えにくい。昔から思うけれど、ソフトウェアを起動してマニュアルを見ないと操作がわからない様なUIはクソだ。

UWPに開発者側が以降しない訳が、わかってきた。

けれど、Windows10は死なない。ストアという市場は思ったよりも大きいが、使えるアプリが少ない。ここを狙うのは間違いではないはず。使えるアプリを作るとしよう。

エディタやメモアプリ、日々生活で使うアプリを考えて行くことにしよう。

PS.素直にデスクトップアプリを作って、UWPアプリのパッケージに添付させるデスクトップブリッジで行く方法もありそうだ。