Slide 1

Slide 1 text

Androidアプリ開発におけるSonarCloud™の活用 モバイルアプリ部を徹底解剖!DAU100万の『Chatwork』を支えるモバイルチームの現場とは?(2023/10/13) 奥澤 俊樹@Chatwork株式会社 SonarCloudは、SonarSource SA社の商標です。

Slide 2

Slide 2 text

自己紹介 ● 奥澤 俊樹(@okuzawats) ● Chatwork株式会社 ○ 2022/09〜 ● Androidアプリエンジニア ○ モバイルアプリケーションアーキテクト ○ Chatwork Android版のアーキテクチャの改善と技術負債解消に取り組んでいます。

Slide 3

Slide 3 text

Androidアプリ開発におけるSonarCloudの活用

Slide 4

Slide 4 text

© Chatwork SonarCloudとは?🤔 - コード品質について自動レビューを行い、継続的インスペクションを実現するためのプラットフォーム。 - SonarSource社の製品。 - SonarLint™: IDE integrated - SonarQube™: self managed - SonarCloud™: as a service - publicリポジトリでは無料で使える。privateリポジトリではコード規模に応じて支払いが必要。 - 支払いの問題が済めば、有効化は簡単。 SonarLint、SonarQube、SonarCloudは、SonarSource SA社の商標です。

Slide 5

Slide 5 text

© Chatwork いろいろな言語、フレームワーク、IaCに対応している👏 画像出典:https://www.sonarsource.com/products/sonarcloud/

Slide 6

Slide 6 text

© Chatwork いろいろな言語、フレームワーク、IaCに対応している👏 画像出典:https://www.sonarsource.com/products/sonarcloud/ Kotlin!

Slide 7

Slide 7 text

© Chatwork SonarCloudで計測できるメトリクス📊

Slide 8

Slide 8 text

© Chatwork SonarCloudで計測できるメトリクス📊 バグの検出

Slide 9

Slide 9 text

© Chatwork SonarCloudで計測できるメトリクス📊 脆弱性・セキュリティ

Slide 10

Slide 10 text

© Chatwork SonarCloudで計測できるメトリクス📊 「コードの不吉な匂い」の検出

Slide 11

Slide 11 text

© Chatwork SonarCloudで計測できるメトリクス📊 カバレッジ ※CIでJaCoCoのカバレッジレポートを作成してアップロードする必要がある。 ※JaCoCoのカバレッジレポートとは数字が異なる(指標が異なる)。

Slide 12

Slide 12 text

© Chatwork SonarCloudで計測できるメトリクス📊 コードの重複の検出

Slide 13

Slide 13 text

© Chatwork Quality Gate👮 Quality Gate ※各メトリクスについて基準を設定し、基準を満たさない時、CIを失敗させることもできる。 ※”Sonar way”と呼ばれるデフォルトのルールがある他、自分でルールを定義できる。

Slide 14

Slide 14 text

© Chatwork CIへの統合🤖 PRに各メトリクスの変化をコメントしてくれる。 Quality Gateの基準を下回った場合は、CIをfailさせることも可能。

Slide 15

Slide 15 text

© Chatwork Code Smellの検出👶 「コードの不吉な匂い」(Kent Beck)を指摘してくれる。 SonarCloud、Androidのこともよく知ってる。

Slide 16

Slide 16 text

© Chatwork 保守性に関するメトリクス🏦 負債を時間換算で算出してくれる。 負債の返済に必要な時間のこと。

Slide 17

Slide 17 text

© Chatwork 複雑度に関するメトリクス🍝 循環的複雑度(Cyclomatic Complexity、Thomas J. McCabe)、認知的複雑度(Cognitive Complexity、SonarSource)を算出してくれる。 以下のURLからWhite Paperを入手できます。 https://www.sonarsource.com/resources/cognitive-complexity/ ※認知的複雑度はSonarSource社が提唱している複雑度のメトリクス

Slide 18

Slide 18 text

まとめ

Slide 19

Slide 19 text

© Chatwork まとめ🎉 - SonarCloudは、コード品質について継続的インスペクションを行ってくれるプラッ トフォーム。Android / Kotlinにも対応している。 - 種々のメトリクスを継続的に計測してくれる。設定したコード品質を満たしている かどうかもわかるようになる。 - PRごとのメトリクスの増減もわかるようになる。差分によってコード品質が悪化す る場合にCIを落とすこともできる。 - SonarCloudを活用することで、コード品質を可視化し、長期的な改善に取り組ん でいくことができるようになる。