hamburger-tech-nits

主にプログラミングのNITSな話

2023-01-01から1年間の記事一覧

FlutterKaigi2023参加メモ

flutterkaigi.jp 基調講演 9年前からあったんだーとか、そういえば昔はOptional無かったなぁとか、知らなかった時期の変遷と懐かしい話とで初のオフライン開催一発目のセッションとしてちょうどよかった。アイスブレークのような感じで、少し一体感が出たよ…

Visual Studio CodeのThemeの一部の設定を変更する

VisualStudioCodeのThemeをMaterial Theme Darker High Contrastにした。 marketplace.visualstudio.com ステータスバーのテキストの色のコントラストが低く、それだけ気になったのでsettings.jsonで設定を上書きした。 元の色 "workbench.colorCustomizatio…

FlutterのTabのラベルの色はLabelStyleで設定できない

api.flutter.dev This does not influence color of the tab labels even if TextStyle.color is non-null. Refer labelColor to color selected tab labels instead. LabelStyleにcolorを設定しても無視される。代わりにLabelColorに色を設定する。 何か理…

FlutterのBottomNavigationItemのデザインをThemeで設定するときは気をつけよう

FlutterのBottomNavigationBarに設定するBottomNavigationItemの色を変更したい。その時にウィジェットのselectedLabelStyleやunselectedLabelStyleを変更すれば値が反映されるが、Themeの設定を変えてもデフォルトのままになり設定は反映されない。というバ…

開発生産性の向上で何をどこまで改善できるのか

開発生産性について盛り上がっている記事が定期的にバズっている。開発生産性が上がること自体は良いのだが、開発以外の生産性も上げないと意味がなかったりするのであまり引っ張られないようにしたい。 特に自社のプロダクトを提供していると、開発だけ早く…

VisualStudioCodeのdart設定

settings.json { "dart.flutterSdkPath": "/Users/mydir/fvm/default" } にしている。プロジェクトごとの設定を作ってそこを参照するようにしたほうが良さそう。 fvmで新しいバージョンをインストールしてもそのままでは反映されないので、その時はVScodeは…

複数バージョンのXcodeをインストールしているMacでCommandLineToolsのバージョンを切り替える

とあるツールのインストール中。 $ brew install tool Error: Your Xcode (13.4.1 => /Applications/Xcode13.4.1.app/Contents/Developer) is too outdated. Please update to Xcode 14.3 (or delete it). Xcode can be updated from the App Store. 業務の…

Sourcetreeでcommitメッセージにブランチ名を挿入する

過去記事 SourceTreeでブランチ名をコミットメッセージの先頭に自動挿入する - hamburger commitメッセージにブランチ名を挿入することで、あとからログを追うときに作業ブランチ名を追いやすくしたいというのがモチベーション。issue番号をブランチ名に関連…

「プログラマー脳」を読んだ

プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ作者:フェリエンヌ・ヘルマンス,水野貴明,水野いずみ秀和システムAmazon 雑なメモ → プログラマー脳 徐々に衰える記憶力その他をどうにかしたくて読んでみた。 認知プロセスを知…

「縁の下のUIデザイン」を読んだ

縁の下のUIデザイン──小さな工夫で大きな効果をもたらす実践TIPS&テクニック WEB+DB PRESS plus作者:池田 拓司技術評論社Amazon 時間が空いたので気分転換 pic.twitter.com/7pS10wVRO3— くどう (@derakudo) 2023年5月29日 トピックに対してデザイン候補とそ…

Flutter3.10でiOSデバイスをワイヤレスデバッグで利用する

iOS側の開発環境を揃える 自分のiPhoneはiOS16.4.1なので、Xcode14.3をインストールした。 Xcodeで接続設定をする iPhoneを有線接続している状態でWindow > Devices and Simulators でDevicesタブを選択し、実機を表示させる。Connect via network のチェッ…

Figmaで複数の要素を同じ幅で親要素いっぱいまで広げる

タイトルが意味わからない感じになってしまった。 要はAndroidのlayout_weightやFlutterのExpanded.flexを活用したようなイメージ こういう構造の これを こうしたい オートレイアウトを設定して、Paddingを0に設定する Shiftを押して両方の要素を選択する …

VSCodeで複数定義した実行前タスクを直列実行する

hamburger-tech.hatenablog.com "dependsOrder": "sequence",を追加することで、dependOnに記載したtaskを順番に実行してくれる。 新しくコードフォーマットのtaskを追加して、pub getを待ってから実行したかったので修正した。 { "label": "Build", "depend…

VSCodeの実行前タスクを複数定義する

flutter runの前に、build_runner build だけでなく pub getも実行しておきたくなった。tasks.jsonは既にあるのでそれを修正する。 hamburger-tech.hatenablog.com tasks配下に実行したいタスクを全て追加する 作成したタスクをまとめるタスクを作成し、ラベ…

VScodeで実行前タスクを定義する

Flutterのビルド前に自動で build_runnerを実行したい。launch.json に preLaunchTaskというフィールドがあるので試してみた。 cmd+shift+Pでコマンドパレットを開く タスクの構成(Tasks: Configure Task)を選択する taskのテンプレートを選択する。全て自分…

VSCodeのintellisenseが効かなかった

^+spaceで起動するはずのintellisenseが効かないため、開発環境をAndroidStudioからVSCodeに移行しようにもできなかった。 Macの入力ソース切り替えと競合していることに気づき、ショートカットを無効化したら解決した。

役割と人、親子関係としてはどっちが上なのか

とあるロールに合致する人をそのロールグループに含めるのと、とある人が上位ロールであることを示すために何らかのロールを付与するのでは、その後の成長具合に違いが出てくるような気がする。なんとなくいい感じに仕事しているからと良い役職を付与されて…

`[cloud_firestore/failed-precondition] Operation was rejected because the system is not in a state required for the operation's execution. If performing a query, ensure it has been indexed via the Firebase console`

FlutterでFirestoreのcollection_groupにwhere条件を設定したクエリを実行したところ、[cloud_firestore/failed-precondition] Operation was rejected because the system is not in a state required for the operation's execution. If performing a quer…

firebase_ui_authで"An unknown error occurred"と表示されてログインできない

開発中のアプリを別デバイスでビルドしたところ、An unknown error occurredと表示されてログインできなくなった。 デバイスが異なるのでフィンガープリントも違うことに気づき、Firebaseコンソールに新たに登録したところ無事解決した。 フィンガープリント…

「Deep Skill ディープ・スキル――組織と人を巧みに動かす 深くてさりげない「21の技術」」を読んだ

Deep Skill ディープ・スキル――組織と人を巧みに動かす 深くてさりげない「21の技術」作者:石川 明ダイヤモンド社Amazon 組織の一員として組織の力を最大限活用するために必要な所作や心得のようなものを21の技術として紹介されていた。確かに会社で成果を出…

RDB形式のFirestore的なサービスが無いのはなぜ?

Firestoreでjoinをしたいと1億回くらい考えている。joinをできないのはRDBではなくNoSQLベースだから。 RDB形式の類似サービスが無いのはなぜなのかという疑問が出てきたので調べていたら、そもそも周辺知識が足りてなかったので朝の自由時間が一瞬で溶けた…

FlutterのCloud Firestore ODMを活用して型安全なリクエストを実行する

Flutterで一般的な使い方でFirestoreにアクセスしようとすると、ドキュメント名やレスポンスを文字列でマッチングする必要があるため、型情報の復元のためのコードを色々書く必要がある。 Cloud Firestore ODMはその名の通りObject Document Mapperで、これ…

Flutterで画面遷移のイベントを検知して別の処理を呼び出す

画面遷移のたびに特定の処理を実行したい時はNavigatorObserverで処理を呼び出せる。 NavigatorObserverのサブクラスを作成する class MyNavigatorObserver extends NavigatorObserver { @override void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) { super</dynamic></dynamic>…

FreezedのUnionの共通フィールドをInterfaceで表現する

pub.dev やりたいこと Kotlinのsealed classでは、共通のフィールドをabstractで定義して子クラスに対して実装を強制できる。大量のフィールドを持つモデルクラスをtypeごとに分割した時など、これによって子クラスの実装漏れをビルドのタイミングで検知でき…

JIRAのオートメーションでピタゴラスイッチをしたい時

JIRAのオートメーションは、デフォルトでは別のオートメーションをトリガーとして起動できない。とあるオートメーションの結果を受けて別のオートメーションを実行したいときは、ルール トリガーを許可のチェックボックスをONにすること。

ソフトウェアエンジニアリングにおける技術力と経験の話

技術力は何かに対応できる力だと思う。ベクトルの大きさの話。 経験があることで、先を見通す力がつくと思う。進んでいった先に目的地があるかどうか、その確率がどのくらいか。確率の高さより、その予測を元にどれだけ戦略を立てられるかが重要。 開発者の…

FlutterのStreamBuilder内で画面遷移させる

StreamBuilderはStreamの結果を元にWidgetを返却する関数であり、voidではない。なのでStreamの結果を評価した結果画面遷移したとしても、普通にNavigationの関数を呼び出すとエラーになる。 StreamBuilder<int?>( stream: intStream(), builder: (context, snapsh</int?>…

Flutterのログ出力にloggerを利用する

pub.dev 開発中のログ出力用にprintを利用すると、リリースビルドでもその情報を出力してしまう。そのため、ロギングライブラリを利用して制御する方法を取るのが一般的。 ネットで雑に調べると、Flutter用のロギングライブラリは代表的なものだけで4~5種類…

Flutterアプリでfirebase_ui_authを使ってGoogleログインを実装する

この記事の続き hamburger-tech.hatenablog.com 参照先のページに別のページのリンクが書いてあり、少し紛らわしかった。ようやく一段落。 pub.dev github.com Googleログインを有効にする メールログインと同様にGoogleログインを有効にする。その後、必要…

AndroidStudioの設定を別端末と共有する

www.jetbrains.com VSCodeに設定の同期機能があるので、IntelliJ系にもありそうだと思って探したら見つけた。これまでsetting.jarファイルをエクスポートしてプライベートリポジトリに登録する運用をしていたので少しショック。 設定手順 専用のリポジトリを…