LoginSignup
6
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-02-18
  • 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個のルールをマスターしよう
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6