Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Danger for Android
Search
Daichi Furiya (Wasabeef)
October 25, 2017
Programming
3.5k
4
Share
Danger for Android
Introduction to Danger for Android
Daichi Furiya (Wasabeef)
October 25, 2017
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
6
2.8k
About Flutter Architecture
wasabeef
1
320
2023 Flutter/Dart Summary
wasabeef
0
130
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
230
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
3.1k
What it Takes to be a Flutter Developer
wasabeef
0
250
FlutterKaigi 2022 Keynote
wasabeef
1
710
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.5k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.2k
Other Decks in Programming
See All in Programming
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
2k
AIエージェントの隔離技術の徹底比較
kawayu
0
460
Inside Stream API
skrb
1
620
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
330
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
AIとRubyの静的型付け
ukin0k0
0
520
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
430
Oxcを導入して開発体験が向上した話
yug1224
4
280
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
440
The NotImplementedError Problem in Ruby
koic
0
320
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Ethics towards AI in product and experience design
skipperchong
2
300
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
How STYLIGHT went responsive
nonsquared
100
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Embracing the Ebb and Flow
colly
88
5.1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
260
So, you think you're a good person
axbom
PRO
2
2k
Google's AI Overviews - The New Search
badams
0
1k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Designing for humans not robots
tammielis
254
26k
Design in an AI World
tapps
1
220
Transcript
Danger × Android wasabeef Potatotips #44
About me 降矢 大地 (Daichi Furiya) Google Developer Expert @wasabeef_jp
wasabeef
None
コードレビューの自動化をCI上で行う Android Lint, Swift Lint, ESLint, HLint, CheckStyle Format.......
Danger
General
Kotlin lint (Ktlint)
Android Lint
Android Lint
Plugins
Plugins
How to Set Up
Gemfile / Dangerfile の用意 bundle install Bundle exec danger Danger
Gemfile
Gemfile gem "danger" gem "danger-android_lint" gem "danger-findbugs" gem "danger-checkstyle_format"
Dangerfile
Dangerfile for PR # WIP warn("Work in Progress") if github.pr_title.include?
“WIP" # BIG PR warn("Big PR > 1000") if git.lines_of_code > 1000 # NO ASSIGN has_assignee = github.pr_json[assignee] != nil warn("No Assign", sticky: false) unless has_assignee
Dangerfile for Android Lint # Android Lint android_lint.gradle_task = "app:lint"
android_lint.report_file = “path/lint-results.xml” android_lint.filtering = true android_lint.lint(inline_mode: true)
Dangerfile for ktlint # checkstyle for ktlint github.dismiss_out_of_range_messages checkstyle_format.base_path =
Dir.pwd checkstyle_format.report “path/ktlint-report.xml”
Gradle for configurations { ktlint } dependencies { ktlint 'com.github.shyiko:ktlint:0.10.0'
} task ktlint(type: Exec) { commandLine 'java', '-cp', configurations.ktlint.join(System.getProperty('path.separator')), 'com.github.shyiko.ktlint.Main', '--reporter=checkstyle', 'src/**/*.kt' def outputDirectory = "$buildDir/reports" def outputFile = "${outputDirectory}/ktlint-report.xml" ignoreExitValue = true doFirst { new File(outputDirectory).mkdirs() standardOutput = new FileOutputStream(outputFile) } } https://ktlint.github.io/
Execution
Execution // Single bundle exec danger // Multiple bundle exec
danger --dangerfile="app/Dangerfile" --danger_id=1 bundle exec danger --dangerfile="tv/Dangerfile" --danger_id=2
Conclusion
Thank you. twitter.com/wasabeef_jp wasabeef.jp github.com/wasabeef