Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 21 Ad

More Related Content

More from Hiroshi Kikuchi (16)

Recently uploaded (20)

Advertisement

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/

×