Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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.4k
About Flutter Architecture
wasabeef
1
290
2023 Flutter/Dart Summary
wasabeef
0
99
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
200
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
3k
What it Takes to be a Flutter Developer
wasabeef
0
210
FlutterKaigi 2022 Keynote
wasabeef
1
650
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
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
230
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
120
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
720
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.3k
これならできる!個人開発のすゝめ
tinykitten
PRO
0
110
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
130
Microservices rules: What good looks like
cer
PRO
0
1.5k
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.2k
認証・認可の基本を学ぼう前編
kouyuume
0
250
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
420
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Become a Pro
speakerdeck
PRO
31
5.7k
Designing for Performance
lara
610
69k
The Cult of Friendly URLs
andyhume
79
6.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Invisible Side of Design
smashingmag
302
51k
Fireside Chat
paigeccino
41
3.7k
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