Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Android Developer Toolsのバグを見つけて直してもらった話

3,734 views

Published on

Connehito Marché #1〜Android市〜 で発表した内容です。
https://connehito-marche.connpass.com/event/76245/

Published in: Software
  • Be the first to comment

  • Be the first to like this

Android Developer Toolsのバグを見つけて直してもらった話

  1. 1. Android Developer Toolsのバグを 見つけて直してもらった話 @kikuchy
  2. 2. Who? ● @kikuchy ● 菊池 紘 ● 株式会社Diverse(ミクシィグループ) ● 新規アプリの開発が凍結されました ● 求む、Androidエンジニア!!(iOSエンジニアも)
  3. 3. 突然ですが
  4. 4. Android Lintのバグを踏みました
  5. 5. val header: Map<String, String> = request.requestHeaders header.forEach { (key, value) -> addHeader(key, value) } ↓ Android Lint reports "Error: Call requires API level 24 (current min is 21): java.util.Map#forEach [NewApi]" for calling kotlin.collections.Map#forEach.
  6. 6. Android Lintの挙動が変 ● kotlin.collection.Map#forEachが、java.util.Map#forEachと勘違いされている ● java.util.Map#forEachはJava 8から ● すなわちAPI Level 24からしか使えない ● ので、「minSdkVersion 21のプロジェクトで使うな」とLintが怒り出した
  7. 7. こまる
  8. 8. 直せる人に直してもらおう
  9. 9. やったこと ● 類似のバグ報告をパクってレポートを出す ● 社内の人に呼びかけて⭐をつけてもらう ● 問題が再現する小さなプロジェクトを用意して添付する
  10. 10. 類似のバグ報告をパクってレポートを出す(1) ● まずどこに報告したら良いのか調べる http://b.android.com/ ● 大項目を選ぶ ○ 今回はAndroid Lintの問題なので Android Developer Tools > Lint ● 似たようなバグがないか探す ○ 今回は “Call requires API level” “NewApi” とかで探した ○ もし同じバグが見つかったら ⭐して神棚にドロイド君を祀る ● 今回は似たようなレポートが見つかった ○ Iterable.forEachがJava8のforEachだと思われてしまう問題
  11. 11. 類似のバグ報告をパクってレポートを出す(2) ● 英語の作文能力がなくても大丈夫 ● タイトルはコピペして一部を変えただけ ● 本文フォーマットも大抵似たようなもの ○ 環境 ○ 再現したコードスニペット ○ エラーメッセージ ● 出した ○ https://issuetracker.google.com/issues/70965444
  12. 12. 社内の人に呼びかけて⭐をつけてもらう ● ずるい? ● 自分たち以外が同じバグに遭遇し、このレポートがその人の目に止まり、 さらにその人が⭐を付けてくれる確率はいかほどか… ● 自分たちで⭐を付けるしか、直してもらえる可能性を上げる方法がほぼ無い
  13. 13. 問題が再現する小さなプロジェクトを添付する ● 「問題が再現するサンプルプロジェクトをくれないか」と言われたので ● 新規プロジェクトを作って、zipで固めて、レポートに添付 ● 最初から用意しておけばよかった
  14. 14. まとめ ● SDKにバグを見つけたら ○ 類似のバグ報告をパクってレポートを出す ■ 他のレポートの体裁をパクっても怒られない ○ 社内の人に呼びかけて ⭐をつけてもらう ■ ⭐の数はパワー ○ 問題が再現する小さなプロジェクトを用意して添付する ■ できるなら最初から添付しておいたほうが良い
  15. 15. 宣伝(1) DroidKaigi 2018のiOSアプリをKotlin/Nativeで作ってます! https://github.com/kikuchy/DroidKaigi2018iOS
  16. 16. 宣伝(2) 弊社DiverseはDroidKaigi 2018の プラチナスポンサーです! なぜか同人誌を配布しますので、 是非お立ち寄りください!! PDFでも公開します。
  17. 17. 宣伝(3) ● DiverseではAndroid(Kotlin, Java), iOS(Swift), サーバー(Ruby, Kotlin) 開発ができるエンジニアを募集中です ● 特に新規事業のiOS開発チームリーダー募集に注力中 ● 自分の力でサービスを成長させることに興味がある方、 お話させてください! DM to @kikuchy or https://diverse-inc.co.jp/recruit/

×