ノハナ社のレイアウト戦略
by
HiroYUKI Seto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DroidKaigi 2018付録3 ノハナ社 の レイアウト戦略 株式会社ノハナ 瀬戸優之 @seto_hi
Slide 2
Slide 2 text
ノハナ社のレイアウト戦略 ● レイアウトどうしたらいいの?の ノハナ的回答 ● あくまで参考 ● みんな違ってみんないい
Slide 3
Slide 3 text
Q1 Q. レイアウトエディタ使ってます? A. 使ってません ・意図しない要素が追加されるリスクが怖い ・エンジニアが楽をしても結局はQAコストになる ・ConstraintLayoutの属性はそんなに多くないです ・覚えましょう ※eclipse時代から開発しているのでxmlに慣れすぎている
Slide 4
Slide 4 text
Q2 Q. レイアウトのRootはすべてConstraintLayoutですか? A. 違います ConstraintLayoutな画面は多いですが、 measure回数が少なくなることと 保守性を考えて レイアウトを組みます
Slide 5
Slide 5 text
Measure回数 ViewGroup Measure回数 FrameLayout 自身のMeasureSpecがEXACTLYなら1回 それ以外は2回されるViewあり LinearLayout WeightがないViewは1回 WeightをあるViewはだいたい2回 RelativeLayout 2回 ConstraintLayout Viewのサイズが固定値なら1回 そうでなければ2〜最大3回 ただし別途複数回レイアウト計算が走る
Slide 6
Slide 6 text
ConstraintLayout利点 ● 階層が浅くなりやすい ○ 自由度が高い ○ だいたいのレイアウトに対応できる!すごい! ● RootをConstraintLayoutにすると、 レイアウトを大幅に変更しても対応しやすい ● 多機能 ○ Groupなど
Slide 7
Slide 7 text
ConstraintLayout欠点 ● 簡単なレイアウトには計算が多すぎる ○ いい感じのレイアウトではmeasureがほぼ2回走る ○ 現状の端末では十二分に高速だとは思うが.. ■ 簡単なレイアウトなので複雑な計算しても高速 ● 記述が多い ○ 例えば縦組みレイアウトなら LinearLayoutの方が記述も少なく処理も高速 人間の目にも優しい
Slide 8
Slide 8 text
ノハナ流 ViewGroup決定メソッド LinearLayout RelativeLayout CosntraintLayout 縦 or 横一直線な レイアウト レイアウトが直近で 修正される可能性が 高い RelativeLayoutでも 実現できそう YES NO でもConstraintLayoutを 使うと楽
Slide 9
Slide 9 text
Q3 Q. 独自ViewGroupはいっぱいありますか? A. そんなには多くないです メンテナンス性を考えるとあまり作るべきでない ・どうしても既存のViewGroupでは実現できない ・measureとlayoutが複雑になりすぎない 場合にのみ作るようにしています