Help us understand the problem. What is going on with this article?

DroidKaigi2016メモ:Android Lintで正しさを学ぼう

More than 1 year has passed since last update.
  • DroidKaigiのメモ書きを随時アップロードしていきます
  • スライドは上がり次第こちらに貼ります

スライド上がっていたので公式の内容は以下をご参照ください。
http://www.slideshare.net/Nkzn/androidlint-droidkaigi?ref=http://unsolublesugar.com/20160218/134940/

発表者

  • @Nkzn
  • Yukiya Nakagawa
  • 農業生産者向けサービス「アグリノート」

対象者

  • Androidプログラミングのベストプラクティスが分からない
  • 品質を保証する

Android List?

  • 構文解析ツール
  • Google公式
  • 222個のルール
    • Category, Severity(危険度), Priority
  • Googleによるアンチパターン集

初学者がやりがちなミス

  • LinearLayoutに並べたビューが表示されないのはなぜ?(orientation)
    • 慣れたらやらなくなるミス
    • horizontalの場合も明示的にちゃんと書こう
  • SharedPreferenceが保存されない
    • commit()をちゃんと書こう.
    • commit()で書いたけどなぜか黄色くなる...?
    • commit()の返り値を保存していないことでWarningが起こってる
    • apply()を使う
  • Toastがでない
    • show()を呼んでないだけ
  • なんかこのボタン押しづらい
    • ButtonOrder
    • キャンセルのようなものは左、本来やりたくなかた操作を続ける「OK」のようなものは右に置く
    • おまけ:API Level13まではOKが左で正しかった
  • このアプリ英語化して問題
    • 日本語直書きNG
    • レイアウトXML
    • AndroidManifest.xml
    • メニューXML
    • Javaに日本語をベタ書きしても検出されない
    • 文字列リソースに抜き出すメリット
    • 多言語化するときにリソースを変更するだけで置き換えられる
    • プロトタイピングでベタ書きしたものを、後からAndroid Studioのクイックフィックスを使って文字列リソース化
    • レイアウトファイルのソートってどうしてますか?
    • 場合によってソートすべし、必須だとは思わない

アプリが管理していた個人情報が別のアプリから見えていた!

  • AndroidManifext.xml
  • ExportedContentProvider
  • Dropboxの2011年の話がよくネタになっている
  • providerタグには必ずandroid:exported="false"を付けましょう!

初学者がやりがちなミス part.2

  • EditテキストでなんかめっちゃWarning出てるんだけど!
    • TextFields
  • アイコンで怒られる?
    • この辺から静的解析の領域を抜けてくる...
    • ステータスバーやActionBarの色をマテリアルデザイン
  • 3点リーダをピリオド3つで書くとwarning
    • Typograpy
    • フォントによってはピリオドを都合よく...と見えてくれるかどうか分からない
    • 3点リーダ文字として書く、ISOの文字番号を使う

エンジニアの言い分

  • Googleが良くないこととして回避しているので、相対的にアプリの品質は上がる

品質指標に使う場合

  • 優先度が低いルールは事前に設定でignoreしておく
  • プロジェクトごとに大切にするルールを切り分ける

エンジニアの方へ

  • abortOnError, checkReleaseBuildsはfalseにしないで!
  • Android Studioがソースコードに黄色いのとか赤いのとか付いてたら、マウスオーバーして何が起きてるかみよう!
  • 直し方を聞こう、知ろう
  • 200個のルールをマスターしよう
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away