M3がやってたので行ってきた。
サークルが目算で4割くらいしか居ないし、一般参加も少ない(でもそれなりには居た)。 今回は3万円弱くらいで充分だろ……と思っていったのに帰りにはお金ないな……になった。
さすがにちょっと寂しい感じだったので早く正常になるといいですね。
微妙に体調悪いところはあるものの、花粉とか季節の変わり目による影響がでかい。
仕事も原則休み(リモートワーク)になりそうな感じ。えっ、リモートワークって休みじゃないんですか!?
今のところデバイスをいじるようなのはあんまやってないのでそれほど支障はないんだが、家だと寝るか遊ぶかしちゃうから会社に来てるところがあるんで、そういう意味で仕事になるか不安だなあ。
PeerCastStationのUIをなんとかしたい作戦でUno Platformを試してみた。 UWPアプリを作ると、それがAndroidやiOS、Webブラウザでも動いちゃうってやつだ。 今後UWPアプリのUI部分がWinUI 3.0になってデスクトップアプリでも使えるようになる予定なので、それに対応されればWindowsはデスクトップアプリでもそのまま使えるようになるだろうという目算でいじってみる。
とりあえずインストールしてテンプレから新規プロジェクトを作ってみると、UWP版とAndroid版とiOS版とWASM(Web)版のプロジェクトが作られる。あとSharedてプロジェクトがあるので、基本的にはこのSharedてので作っていけばいいようだ。
しかしUWPアプリは作ったことないのでコントロールがよくわからないな。あの左にアイコン出てて切り替えるやつ作りたい。Master/Detailedてやつかな……と適当に作ってみると上手く動いたし、Web版でもすんなり動いてくれた!すげえ!……が、思ったのと違うな。Master/Detailedは左にアイコン出るやつじゃねえらしい。
Community Toolkitに入ってるんだろうかと思ったが、Community Toolkitってどうやって使うの?サードパーティのコンポーネントがそのまま使えそうな気はしねえが……。Uno専用にビルドしないとだめっぽい?めんどくない?と思ったらNuGetのパッケージでプレリリース版としてUno版のが配布されていた。これ使えばいいのね。 しかし入れてから気付くが、左にアイコン出てて切り替えるやつはCommunity Toolkitには入ってないようだ。まじかよ。
というか標準で入ってるNavigationViewてのがそれだった。さすがにこれは標準であるのか。WPFだとこういう便利なのは標準に無かったりするから外部ライブラリだと勝手に思い込んでたぜ。
使い方もそんなに難しくはないのでやってみるが、どうも動きが怪しい。描画がひたすらチラチラしたり、リストの描画が空になったりとバグってるかのような動作だ。標準のコントロールなのに?UnoのWeb版の方がまともな動きするくらいにおかしい。UWPて実はやべえのでは……。
まあそれはおいとくとして、アイコンをつけたりなんだりしていた。NavigationViewのアイテムにアイコンを付けるのが難しくて、NavigationViewItemのIconプロパティを設定しないといけない。MenuItemsSourceとMenuItemTemplateを使うと、NavigationViewItemは勝手に作られるのでIconプロパティを指定しようがないのだ。あれー? 仕方ないのでDataTemplateの中にNavigationViewItemを書いてみると、なんとまともの動いてしまった。NavigationViewItemが二重になるのでは?と思ったがそんなことにもならない。どういう動作してんだこれは……。 だがしかし、UnoのWeb版では上手く動かんかった。やっぱりNavigationViewItemが二重になったようで動作がおかしい。いやこっちの方がまともな動作だと思いますよ。 結局のところ、NavigationViewのメニュー項目は増減しないだろうということでMenuItemsSourceを使うのを諦めてItemsに直接NavigationViewItemをつっこむことにした。まあそれならそれでいいんだけど、MenuItemsSourceとはいったい……。
他にも戻るボタンはあるもののウィンドウにくっついてくれなかったりとどうも動きやらプロパティ名やら使い勝手やらがいろいろ怪しくて、このコントロールはいったい誰が作ったんだろう……という気分にもなった。まあなんとか使うけどさ。
あとAndroidのエミュレータのセットアップになかなか手間取って動かせていなかったが、なんとかエミュレータが動くようになったのでやってみた。 動きはするんだが、アプリ起動に6秒くらいかかる。エミュレータが遅いのかな?と思ったが最初から入ってるサンプルとかはきびきび起動するのでやっぱUno Platformが悪そうに思える。 プラットフォームのバージョンとかいろいろ違うの試そうとか思ったんだが、全然エミュレータの作成が完遂してちゃんと起動してくれないのであんま試せないな。
Web版もキャッシュに入ればいいが、それまではだいぶ起動にかかるのでちょっと気になるところ。キャッシュに入ればそれほどでもないので我慢はできるかなあ。
他にXamarin.FormsをWASMで動かすOouiてのもあるようなので、これも今度試してみよう。置いてあるサンプル見る限りでは起動速いがさて……。