Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ノハナ社のレイアウト戦略

HiroYUKI Seto
February 03, 2018

 ノハナ社のレイアウト戦略

2018/2/9
DroidKaigi 2018 DAY02 room1 10:30~
発表の付録3

HiroYUKI Seto

February 03, 2018
Tweet

More Decks by HiroYUKI Seto

Other Decks in Technology

Transcript

  1. DroidKaigi 2018付録3
    ノハナ社

    レイアウト戦略
    株式会社ノハナ 瀬戸優之
    @seto_hi

    View Slide

  2. ノハナ社のレイアウト戦略
    ● レイアウトどうしたらいいの?の
    ノハナ的回答
    ● あくまで参考
    ● みんな違ってみんないい

    View Slide

  3. Q1
    Q. レイアウトエディタ使ってます?
    A. 使ってません
      ・意図しない要素が追加されるリスクが怖い
      ・エンジニアが楽をしても結局はQAコストになる
      ・ConstraintLayoutの属性はそんなに多くないです
       ・覚えましょう
    ※eclipse時代から開発しているのでxmlに慣れすぎている

    View Slide

  4. Q2
    Q. レイアウトのRootはすべてConstraintLayoutですか?
    A. 違います
      ConstraintLayoutな画面は多いですが、
      measure回数が少なくなることと
      保守性を考えて
      レイアウトを組みます

    View Slide

  5. Measure回数
    ViewGroup Measure回数
    FrameLayout 自身のMeasureSpecがEXACTLYなら1回
    それ以外は2回されるViewあり
    LinearLayout WeightがないViewは1回
    WeightをあるViewはだいたい2回
    RelativeLayout 2回
    ConstraintLayout Viewのサイズが固定値なら1回
    そうでなければ2〜最大3回
    ただし別途複数回レイアウト計算が走る

    View Slide

  6. ConstraintLayout利点
    ● 階層が浅くなりやすい
    ○ 自由度が高い
    ○ だいたいのレイアウトに対応できる!すごい!
    ● RootをConstraintLayoutにすると、
    レイアウトを大幅に変更しても対応しやすい
    ● 多機能
    ○ Groupなど

    View Slide

  7. ConstraintLayout欠点
    ● 簡単なレイアウトには計算が多すぎる
    ○ いい感じのレイアウトではmeasureがほぼ2回走る
    ○ 現状の端末では十二分に高速だとは思うが..
    ■ 簡単なレイアウトなので複雑な計算しても高速
    ● 記述が多い
    ○ 例えば縦組みレイアウトなら
    LinearLayoutの方が記述も少なく処理も高速
    人間の目にも優しい

    View Slide

  8. ノハナ流 ViewGroup決定メソッド
    LinearLayout
    RelativeLayout
    CosntraintLayout
    縦 or 横一直線な
    レイアウト
    レイアウトが直近で
    修正される可能性が
    高い
    RelativeLayoutでも
    実現できそう
    YES
    NO
    でもConstraintLayoutを
    使うと楽

    View Slide

  9. Q3
    Q. 独自ViewGroupはいっぱいありますか?
    A. そんなには多くないです
      メンテナンス性を考えるとあまり作るべきでない
      ・どうしても既存のViewGroupでは実現できない
      ・measureとlayoutが複雑になりすぎない
      場合にのみ作るようにしています

    View Slide