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
4
3.5k
Danger for Android
Introduction to Danger for Android
Daichi Furiya (Wasabeef)
October 25, 2017
Tweet
Share
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
6
2.6k
About Flutter Architecture
wasabeef
1
300
2023 Flutter/Dart Summary
wasabeef
0
120
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
220
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
3.1k
What it Takes to be a Flutter Developer
wasabeef
0
230
FlutterKaigi 2022 Keynote
wasabeef
1
680
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
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
570
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
280
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
410
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
470
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
250
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
230
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
450
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
250
CSC307 Lecture 15
javiergs
PRO
0
240
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
270
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.8k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
750
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
83
What's in a price? How to price your products and services
michaelherold
247
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
640
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Design in an AI World
tapps
0
170
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
The SEO Collaboration Effect
kristinabergwall1
0
390
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
550
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