パルカワ2

最近はFlutterをやっています

問いかけの作法:チームの魅力と才能を引き出す技術 を読んだ

問いかけの作法:チームの魅力と才能を引き出す技術作者:安斎勇樹ディスカヴァー・トゥエンティワンAmazon 問いかけというのは非常に重要なことだと思う。 例えば人間が成長するには経験学習が必要で経験学習には内省というのがある。行動をふりかえって知見…

ドキュメントのレビューでレビュイーが求めていること

チームで働くとき、様々なレビューがある。ソフトウェアエンジニアとしてはコードレビューを頼むことが一日に何度もあると思うのだが、最近の僕はドキュメントを書くのが大半の仕事になっていて*1、ドキュメントのレビューをプロダクトマネージャーや他のソ…

インナーチャイルド 本当のあなたを取り戻す方法〔改訂版〕 を読んだ

インナーチャイルド 本当のあなたを取り戻す方法〔改訂版〕作者:ジョン ブラッドショーNHK出版Amazon インナーチャイルドという言葉を初めて知ったので読んだ。 子供(乳児期、歩行期、学童前期、学童期)の頃の経験からどんな大人にもインナーチャイルドは…

ソフトウェア品質知識体系ガイド(第3版): SQuBOK Guide V3 を読んだ

ソフトウェア品質知識体系ガイド(第3版): SQuBOK Guide V3オーム社Amazon SQuBOKというのがあるというのを知って読んでみようと思って読んだ。ソフトウェアの品質マネジメントや品質技術に関連する技法から事例や国際規格などが整理されていて非常に良かった…

新居のにおい問題

今回の家は築15年でめちゃくちゃ古いわけではなく基本綺麗。前に住んでいた家はいい感じの新築だったからか辛いと思うことがまったくなかったのだけど、今の家はくさいところがいくつかあった。見た目はそんな違いはないので気にならないけど、臭いはしんど…

安心してリリースしたい

最近所属するチームが変わって"リリースされるプロダクトの品質担保"について考えている。リリースされるプロダクトということはリリースされる前のプロダクトであり、ユーザーに届く前に品質を担保せえというのが僕の考えることであると理解した。 ユーザー…

ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方 を読んだ

ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方作者:高橋 寿一翔泳社Amazon ソフトウェアテストの基礎はソフトウェアテストの教科書によって理解できたので更に深堀りしたいなと思って社内のおすすめ本一覧にあった…

ソフトウェアテストの教科書 [増補改訂 第2版] を読んだ

【この1冊でよくわかる】ソフトウェアテストの教科書 [増補改訂 第2版]作者:布施 昌弘,江添 智之,永井 努,三堀 雅也SBクリエイティブAmazon ソフトウェアエンジニアとして10年くらいやってきていて単体テストは人並みに書いた経験はあると思うんだけど、…

エンジニアを説明上手にする本 相手に応じた技術情報や知識の伝え方 を読んだ

最近同僚と話したら「説明が大変だ〜」って言ってて「説明って難しいし大変だよな ガハハ」とか言ってたんだけど、そういえばそういう本あんま読んでないなと思ったので読んだ。 エンジニアを説明上手にする本 相手に応じた技術情報や知識の伝え方作者:開米…

日立の掃除機(PV-BH900J)を買った

今までルンバとクイックルワイパーのみだったんだけど、掃除しきれないところもあると感じていたので部屋が広くなったタイミングでスティッククリーナーを買うことにした。 マキタ、パナソニック、ダイソン、シャープなど見てみたが、以下の理由で日立がいい…

1Kから2LDKに引っ越した

引越し先を探すのが大変だったというか条件に合う物件がまったくと言っていいレベルでなかったので半年ほど探してやっとこさ引っ越せた。 最初は東東京の全体で物件を探していたのだけど、都心から外れて千葉に寄ると条件に合う物件は比較的あって、そのあた…

flutter test --coverageが遅い

$ flutter --version Flutter 2.5.1 • channel stable • https://github.com/flutter/flutter.git Framework • revision ffb2ecea52 (9 weeks ago) • 2021-09-17 15:26:33 -0400 Engine • revision b3af521a05 Tools • Dart 2.14.2 原因 github.com 一時的な…

flutter format --set-exit-if-changed .

Github Actionsとかでformat をかけてdiffがあったらエラーにするみたいなのやりたいときがある。 Flutterはこうできる。便利。 flutter format --set-exit-if-changed . dart commandでも同様に動く。便利。 dart format --set-exit-if-changed .

fitbit charge 5を買った

体調が良くもないが悪くもないずっと曇りみたいな状態だけど人生とはそんなもんだろと思ってあんま気にしていなかった。ところが同僚から体調が悪そうなので心配と言われたりしていたのでちゃんとしようという気持ちになってきた。ただどうにかしたいけどど…

Sorted³ 使い始めた

もともとSunsamaを使っていたけど、全然使いこなしてないのに月2000円くらい払っていたので良い感じのがあれば乗り換えるかという気持ちでいたらSorted³ というのを見つけたので使い始めた。 www.sortedapp.com Sorted³のいいところは、雑に楽にスケジュール…

バーン感が足りない

上期の自己評価を書いてる時に半年を振り返って、この半年は大体仕事をこなしただけでつまらなかったということに自分で気づいてハッとなった。 気づくのが遅すぎるというのは置いといて、なんでつまらなかったか考えてみるとやりたいことが出来ていないみた…

Riverpod を使ったアーキテクチャについて考える

前回この記事でRiverpodを使ったMVUアーキテクチャについて書いた。 hisaichi5518.hatenablog.jp が、いくつか問題があるなと気づいた。 UIに関する処理を書く場所がない 複数のStateを同時に扱う場合が考慮されていない(ビジネスロジックを書く場所がない…

Flutter/Dartでcustom lint ruleを作りたい

推奨されないコードを機械的に発見出来る部分は人間がコードレビューなどで指摘するのではなくLinterで気づきたい。 なので、プロジェクトごとにLinterのCustom Ruleを作りたいのだが、DartのLinterはCustom Ruleに対応していない。 github.com このイシュー…

RiverpodでModel-View-Updateを試す

ここ1年くらいFlutterで開発していて、Model-View-ViewModel(MVVM)を採用したけどViewModelの役割が大きいなど色々課題を感じていて、より良い形はないかなとFlux, Reduxなどのドキュメントを見ている。 とは言ってもFluxやReduxなどドキュメント見る限り結…

FlutterのStatefulWidgetの課題と解決方法

FlutterでStateをもたせるには色々あるが、基本はStatefulWidgetを利用する。 StatefulWidgetは以下のようにStateを持ち、Stateの中で値を持ったりsetしたりできる。 StatefulWidget class - widgets library - Dart API class Bird extends StatefulWidget …

なぜRiverpodのFutureProviderを推すのか

RiverpodにはFutureProviderというのがある。 FutureProvider class - riverpod library - Dart API 非常によく出来たAPIだなぁと思ったのでそれのメリット・デメリットと所感をまとめたい。間違えているとかなにかあれば教えてください。 まずFutureProvide…

1つのWidgetの役割をとにかく小さくしたい

第5回 今ならこうするシリーズ。更新を忘れていた。 自分でFlutterのWidgetを作っているときに以下のように値を受け取るWidgetを作りがちだった。 HogeButton(title: "ほげボタン", titleColor: ...); class HogeButton extends StatelessWidget { @override…

_buildWidgetについての考えと今ならどうするか

第4回 今ならこうするシリーズ UIをつくるときにStatelessWidget(またはStatefulWidget)を継承してWidgetを作るのではなく、以下のようにWidgetを返すメソッドを作って切り分けることが出来る。メソッドで切り分けるとクラスを作るよりは比較的楽に作れると…

TextStyleの共通化についての考えと今ならどうするか

第三回 今ならこうするシリーズ FlutterはTextにstyleをあてることができる。今回はそのTextStyleの共通化について書いていく。 const Text("文字", style: ...); TextStyleは以下のように共通化している。こうすることで基本はconstとして呼び出すことが出…

providerについての考えと今ならどうするか

「今ならこうする」をシリーズ化しようと思ってカテゴリを作った。「今ならこうする」は僕基準であって全員そうすべきという話ではない。今回もそう。 Flutterにはprovider packageというのがあり、公式でもprovider + ChangeNotifierの構成がドキュメントに…

ChangeNotifierについての感想

ChangeNotifierというのがFlutterにはあり、ViewModelで継承して使っている。 StateNotifierとよくパフォーマンス面で比較されるValueNotifierというのもあり、そっちは1個のValueしか扱えないがChangeNotifierは複数扱える。なのでValueNotifierやStateNoti…

Flutter for Web で WebView を使う

native_webviewは、WebViewの機能をWebで提供するのは難しいのでWebには今の所対応していない。だが、対応していないプラットフォームでも自前で実装すれば一応動かせるようにはなっている。(というか0.28.0から動かせるようにした) // Webのときのみsetす…

native_webview の integration test

ライブラリのテストは、ほとんどの場合 unit testでいいと思うのだけど native_webviewはiOSのWKWebViewやAndroid の WebViewに依存しているのでunit testではテストが出来ない。 なので、native_webview は integration test (ほとんど Widget testだけど)…

VSCodeのlaunch.jsonからInteliJのrunConfigurationsを自動生成する

毎日のようにはてなスターのスパムがきます。こんにちは。 仕事で作っているアプリは、Flutterを使っておりかつFlavorがたくさんあってそれぞれのFlavorごとにrunConfigurationsを用意している。また今後Flavorは増える予定である。 同僚には、VSCodeを使っ…

TECH STAND #3 で「10XとFlutter」というタイトルで発表した

久しぶりの外部の勉強会で、しかもFlutterの話をするのは初なのでなかなか緊張した。登壇者にはFlutterの人たちはもちろんReact Nativeの猛者がたくさんいて、僕はReact Nativeのことを全く知らないので話を聞くだけでも面白かった。TECH STAND #3 クロスプ…