Flutterのパフォーマンス周りでためになる記事

medium.com

 

重い処理はcomputeを使うといいらしい

使ったことがないので覚えておきたい。

シングルスレッド、マルチスレッドあたりの理解ができてないので理解したい

Dart(Flutter)の非同期周り(compute) #Flutter - Qiita

 

他にも、以下のTipsが載っていた

・楽観的なUIを採用する

・急激な切り替えをせず、アニメーションにより滑らかに切り替える

・最初の起動を早くするため、重要でない読み込みはスキップする

 

いかが参考記事として載っていた

 

www.nngroup.com

 

dart.dev

 

docs.flutter.dev

Flutter 3.47がリリースされました

flutter.dev

 

気になるポイント

・スタンドアロン版 material_uiおよび cupertino_uiパッケージ版のバージョン1.0がリリースされたと書いているが、よく理解できていない

Flutter 3.47以降では、iOSの最低バージョンは15になる

個々のUIコンポーネントをプレビューできるFlutter Widget Previewが安定版となった。使ってみたい

シゴできエンジニアの本質をつく考え

シゴできエンジニアの人と課題整理をして思ったこと

シゴできエンジニアの人は、課題の本質がどうすれば解決できるか考えている

私は、お客様からの課題をどう解決するかを考えている

 

また、コントロールをするという意識が高い

【Flutter】 APIエラーを定義するクラスはJSONそのままで保持すると拡張性が上がる

@Freezed(toJson: false)
abstract class ApiError with _$ApiError {
const factory ApiError({
required String code,
required String message,
@JsonKey(readValue: _readExtraJson) Map<String, dynamic>? extra,
}) = _ApiError;
 
const ApiError._();
 
factory ApiError.fromJson(Map<String, dynamic> json) =>
_$ApiErrorFromJson(json);

/// カスタム `toJson` の実装(元のJSONの形に復元)
Map<String, dynamic> toJson() {
return {
'code': code,
'message': message,
if (extra != null) ...extra!,
};
}
}

/// `extra` に元のJSONマップ全体を取り込むための readValue
Object? _readExtraJson(Map<dynamic, dynamic> json, String key) {
final extra = Map<String, dynamic>.from(json)
..remove('code')
..remove('message');
return extra.isEmpty ? null : extra;
}

無意識の補完を抑制しよう

 

■ 問題

仕事や勉強をしていると、内容を無意識のうちに補完してしまうことがあります。

よくある例:
  • 仕様書を読んで曖昧な部分を確認せず、決めつけて実装を始める
  • 説明を聞いて「前にやったやつと同じだろう」と思い込む
  • エラーが出たときに「多分ここが原因だろう」と決め打ちで修正する

実際には細かい仕様や前提を理解していないのに、 「分かった気」になって進めてしまう状態です。

■ なぜ起こるのか

  • 過去の経験をもとにパターンへ当てはめてしまう
  • 曖昧な情報をそれっぽく解釈してしまう
  • 疑問を持つ前に手が動いてしまう(思考のショートカット)
これは能力が低いからではなく、処理効率が高い人ほど起きやすい現象です。

■ 対策

1. トリガーを作る(if-thenプランニング)

無意識を止めるための条件を決めます。

  • 「多分」「おそらく」と思ったとき
  • 仕様書やドキュメントを読み終えたとき
  • 実装を始める直前

→ このタイミングで「本当に理解しているか?」と確認する

2. 分解して曖昧さを潰す

タスクを具体レベルまで分解します。

「ユーザー一覧APIを作る」

・エンドポイントは?(/users? /api/users?)
・GET?POST?
・認証は必要?
・ページネーションある?
・返す項目は?(id, nameだけ? emailも?)

・レスポンス形式は?(JSON構造)
・エラー時の仕様は?

・DB設計はどうなっている?
・既存APIとの違いは?

掘り下げると「あれ?」と思うポイントが出てきます。 そこが“わかっていない部分”です。

3. 説明できるまで理解する

「他人に説明できるか?」で理解度を測ります。

  • 説明中に詰まる=理解不足
  • 記事やメモとしてアウトプットすると効果的

4. 逆質問する(能動的に疑う)

  • この仕様、本当にこれでいい?
  • 別の解釈はない?
  • このケースはどうなる?

受け身だと補完が働くため、意識的に疑うことが重要です。

5. 仮説と事実を分離する

  • 事実:ドキュメントに書いてある内容
  • 仮説:「こういうはず」という自分の考え

仮説を切り分けることで、確認すべきポイントが明確になります。

■ まとめ

  • 無意識の補完は誰にでも起きる
  • 重要なのは「気づく仕組み」を作ること
  • 分解・言語化で「わからない」を見つける