Movatterモバイル変換


[0]ホーム

URL:


Upgrade to Pro — share decks privately, control downloads, hide ads and more …
Speaker DeckSpeaker Deck
Speaker Deck

Flutter は DCM が 9 割

Avatar for ANDPAD inc ANDPAD inc
February 26, 2025

Flutter は DCM が 9 割

工藤 厚太郎@derakudo
2025 年 2 月 26 日
食べログ x ANDPAD x Sansan モバイル勉強会 #2

Avatar for ANDPAD inc

ANDPAD inc

February 26, 2025
Tweet

More Decks by ANDPAD inc

See All by ANDPAD inc

Other Decks in Programming

See All in Programming

Featured

See All Featured

Transcript

  1. © 2024 ANDPAD All Rights Reserved. 1 FlutterはDCMが9割(諸説あり) 2025/02/26 食べログ

    x ANDPAD x Sansan モバイル勉強会 #2 株式会社アンドパッド 開発部 SWE 工藤 厚太郎
  2. © 2024 ANDPAD All Rights Reserved. Confidential • 2020年1月にアンドパッド入社 ◦

    ~2020年6月まで施工管理アプリのAndroidアプリ開 発 ◦ ~2022年6月まで検査アプリのFlutterアプリ開発 ◦ ~2024年12月まで受発注アプリのFlutterアプリ開発 ◦ 2025年1月からRailsとかVueとかを頑張り始めた • スト6はモダンA.K.I. 工藤 厚太郎 https://x.com/derakudo https://github.com/ham-burger 2 自己紹介
  3. © 2024 ANDPAD All Rights Reserved. Confidential 3

  4. © 2024 ANDPAD All Rights Reserved. Confidential 4 モバイルアプリ(Kotlin/Swift)

  5. © 2024 ANDPAD All Rights Reserved. Confidential 5 Flutterアプリは4+α(開発中)

  6. © 2024 ANDPAD All Rights Reserved. Confidential 6 Flutterの良いところ 1.

    クロスプラットフォーム対応 2. ホットリロード 3. 宣言的UI 4. Googleが提供していて将来性がある
  7. © 2024 ANDPAD All Rights Reserved. Confidential 7 Flutterの良いところ 1.

    クロスプラットフォーム対応 2. ホットリロードが便利 3. 宣言的UI → ComposeやSwiftUIの登場で優位性が減った 4. Googleが提供していて将来性がある → ???
  8. © 2024 ANDPAD All Rights Reserved. Confidential 8 Flutterの良いところ →

    開発生産性と開発体験 1. クロスプラットフォーム対応 2. ホットリロード 3. 宣言的UI 4. Googleが提供していて将来性がある
  9. © 2024 ANDPAD All Rights Reserved. Confidential 9 https://dcm.dev/

  10. © 2024 ANDPAD All Rights Reserved. Confidential 10 DCMって何? •

    > Advanced linter for Flutter development teams. ◦ めっちゃいいLinter • Analyzeがいろんな観点でコードの標準化をサポートしてくれる • 有償ツール ◦ Teamsプランだと$14 per user / month
  11. © 2024 ANDPAD All Rights Reserved. Confidential 11 DCMって何? •

    > Advanced linter for Flutter development teams. ◦ めっちゃいいLinter • Analyzeがいろんな観点でコードの標準化をサポートしてくれる • 有償ツール ◦ Teamsプランだと$14 per user / month →日本語の記事がヒットしない???
  12. © 2024 ANDPAD All Rights Reserved. Confidential 12 Analyze •

    Lint rules • Metrics • Widget analysis • Assets analysis • Project structure analysis https://dcm.dev/docs/rules/riverpod/use-ref-read-synchronously/
  13. © 2024 ANDPAD All Rights Reserved. Confidential 13 Analyze •

    Lint rules • Metrics • Widget analysis • Assets analysis • Project structure analysis https://dcm.dev/features/analyze/
  14. © 2024 ANDPAD All Rights Reserved. Confidential 14 Analyze •

    Lint rules • Metrics • Widget analysis • Assets analysis • Project structure analysis https://dcm.dev/features/analyze/
  15. © 2024 ANDPAD All Rights Reserved. Confidential 15 Analyze •

    Lint rules • Metrics • Widget analysis • Assets analysis • Project structure analysis https://dcm.dev/features/analyze/
  16. © 2024 ANDPAD All Rights Reserved. Confidential 16 Analyze •

    Lint rules • Metrics • Widget analysis • Assets analysis • Project structure analysis https://dcm.dev/features/analyze/
  17. © 2024 ANDPAD All Rights Reserved. Confidential 1. Install a.

    $ brew tap CQLabs/dcm b. $ brew install dcm 2. IDE用Extensionの導入 3. Activation a. $ dcm activate --license-key=YOUR_KEY 4. analysis_options.yaml へルール追記 5. コマンド実行してみる a. $ dcm run --analyze --unused-code lib 17 How to Run DCM Locally
  18. © 2024 ANDPAD All Rights Reserved. Confidential 18 How to

    Run DCM in CI https://dcm.dev/docs/ci-integrations/github-actions/
  19. © 2024 ANDPAD All Rights Reserved. Confidential 19 アンドパッドでは •

    analysis_option.yamlの設定を共有した ◦ 少しずつルールを増やして厳格にしてきている • CIでPRチェックしてfix対象があるとNGにした
  20. © 2024 ANDPAD All Rights Reserved. Confidential 20 • スタイルに関するレビュー指摘が減った

    ◦ アプリ単位で少人数のアプリ開発チームを組む体制だったため、担当者に よって実装スタイルが変わりがちだった ◦ 新入社員やベトナム法人メンバーが増える中で古株の好みやチームの雰囲気 で一貫性を維持するのが大変だった ◦ 他プロジェクトとのスタイル差分が減ってコードを見るハードルが下がった • ルールと対応するドキュメントがあるので、ルール設定時のコミュニケーション も楽だった 所感
  21. © 2024 ANDPAD All Rights Reserved. Confidential そいつがDCMに生まれ変わりました 一緒に使えるようになってます 気持ちはわかります

    標準のLinterとコンフリクトしないの? Q A dart_code_metrics ってなかったっけ? Lintのために有償ツールを使うのはちょっと・・・ Q A Q A 21 よくある質問
  22. © 2024 ANDPAD All Rights Reserved. Confidential 22 ダッシュボード機能が出た https://dcm.dev/blog/2025/02/11/announcing-dcm-dashboards

  23. © 2024 ANDPAD All Rights Reserved. Confidential 23 • 今まではPull

    Request単位の評価だったので、受動的な改善になりがちだった • ダッシュボードで経時変化を追うことで、将来に向けた能動的な改善活動にとり くみやすくなる(はず) ダッシュボード機能が出た
  24. © 2024 ANDPAD All Rights Reserved. Confidential 24 • 今まではPull

    Request単位の評価だったので、受動的な改善になりがちだった • ダッシュボードで経時変化を追うことで、将来に向けた能動的な改善活動にとり くみやすくなる(はず) ダッシュボード機能が出た
  25. © 2024 ANDPAD All Rights Reserved. Confidential 25 • プロジェクトごとに静的解析して結果を確認できる

    ◦ →品質改善用のツールでは? • Code Climate(Quality) のFlutter版と捉えると有償でもアリじゃないでしょう か? ◦ Team $16.67 per mo per seat billed annually • ベータから安定版への変更は3月中旬を予定しているとのこと ◦ 今から稟議etcすればちょうど良いタイミング! Linterではなく・・・
  26. © 2024 ANDPAD All Rights Reserved. Confidential 26 • $

    dcm run --analyze --upload --project={キー} --email={メールアド レス} lib 使ってみた
  27. © 2024 ANDPAD All Rights Reserved. Confidential 27 • $

    dcm run --analyze --upload --project={キー} --email={メールアド レス} lib 使ってみた
  28. © 2024 ANDPAD All Rights Reserved. Confidential 28 • ダッシュボードを見るコンソールが管理者以外アクセスできない

    ◦ 今回は一時的に管理者アカウントを借りて試した ◦ Stable版は開発者アカウントでアクセス可能になると願いたい • --with-details オプションでより詳細結果を見れるそうだが、使ったら500 エラー ◦ Discordで問い合わせ中・・・ ▪ https://discord.com/channels/1115186114865672232/1115190 627903209552/1344138938486358117 注意点
  29. © 2024 ANDPAD All Rights Reserved. Confidential 29 • DCMを使うことでコードの一貫性を強固にできる

    • yamlファイルの共有だけで他プロジェクトも改善できる • ダッシュボードを使えばチームの施策としても取り組みやすくなるはず まとめ

[8]ページ先頭

©2009-2025 Movatter.jp