Ryoichi Izumita

Ryoichi Izumita

SwiftUIのViewModelをPropertyWrapperなstructで作成してみる実験

SwiftUIのViewModelには一般的にObservableObjectのクラスが利用されますが、Viewへの組み込みやViewのEnvironment/EnvironmentObjectの参照が行いにくいことが問題になります。 ViewModelから直接Viewの環境のEnvironment/EnvironmentObject使えるようにしたりViewが自動的にViewModelを保持する方法としてViewModel自体をPropertyWrapperとして作成する方法を試してみました。 具体的な実装は以下のようになります。 struct ContentView: View { @ContentViewModel var viewModel var body: some View { Button(viewModel.text) { viewModel.changeText("changed") } } } @propertyWrapper struct ContentViewModel:

GitHubのProjectBetaを使い始めた

GitHubでBetaの方のProjectを使い始めた。 これまでIssueの * 優先順位 * 見積り をLabelで管理していたのをProject(Beta)のCustom Fieldで管理するように変更したらProject(Beta)のViewで多角的に眺められるようになった。 他にもIteration機能が便利。 問題は各所で日本語入力の確定でテキストフィールドの確定になってしまうこと。結構イライラする。そういう場合は別のところで書いてコピーするしか無いかも。

トラックボールの選び方・使い方

トラックボールを以前から利用していて、現在使っているのはELECOMのDEFT PRO [https://amzn.to/3kL9JKA]です。DEFT PROはおすすめのトラックボールです。 トラックボールについていくつか私の経験をもとに解説してみたいと思います。 親指タイプと非親指タイプ トラックボールには親指で操作するタイプと人差し指や中指で操作するタイプがあります。 親指タイプは親指を酷使して、拇指球が疲労し一日が終わると凝り固まってしまいました。 トラックボールで疲労軽減のためには親指をできるだけ使わずに操作することが重要です。 親指以外で操作するトラックボールは疲労が少ないです。DEFT PROのような人差し指タイプですが、私は人差し指から小指まで使って玉を転がしています。 ただ、ホイールを親指で操作するとそれなりに疲労します。DEFT PROは設定アプリの出来が悪いこともあり、Macでステアーマウス [http://www.plentycom.jp/steermouse/index.html] というマウスのカスタマイズアプリを利用しています。

[Flutter] StatefulBuilderの使い所

StatefulBuilderはビルダーのsetStateを実行するとビルダークロージャで作成しているWidgetが再構築されるWidgetである。 ビルダークロージャ外に存在する変数をsetStateで更新して再構築に反映させることができる。 状態を利用できるようにするWidgetといえる。 -------------------------------------------------------------------------------- StatefulBuilderのドキュメントに「platonic widget」とある。The use of term "platonic" is confusing · Issue #48137 · flutter/flutter [https://github.com/flutter/flutter/issues/48137]などからすると、simpleと受け取っておくと良さそう。 ---------------------------------------------------------------------

SimpleGWTのバージョン007を公開

Dart/FlutterのテストでGiven When Thenスタイルのテストをシンプルに書けるライブラリsimple_gwt [https://pub.dev/packages/simple_gwt]の最新バージョン0.0.7を公開しました。 変更はand関数の単独使用で例外を発生させる修正と、pub.devのPub Points減点項目の対応です。 Pub Pointsは満点の130になりました。 もしよかったら使ってみ、さらにもしよかったらLikeしてください。