JetpackCompose日記(深いレイアウト階層を恐れないほうが実践的か?)【株式会社ライトコード】
弊社エンジニアの記事になります。
以下のような、文字を線で囲ったレイアウトを作りたい場合
Modifierの順番を工夫することで実現できる。
1@Composable
2fun MyLabel1() {
3 Text(
4 modifier = Modifier
5 .padding(all = 4.dp) // 外側のpadding
6 .border(
7 width = 2.dp,
8 color = Color.Blue
9 )
10 .padding(all = 8.dp), // 内側のpadding
11 text = "Border付きテキスト1"
12 )
13}
ただ、これはあまり実践的ではないと思います。
Modiferへの設定順番を利用した書き方だが・・・
「.padding(all = 4.dp)」が枠線の外側なのか内側なのか、パッと見では分からないことが大問題。
JetpackComposeのいいところは
「パッと見でどのようなViewが定義されているのかがわかること」なので
この書き方では、その利点を殺していると言える。
より実践的なのは?
レイアウトの階層を深くしたほうが、誰が見ても分かりやすいですよね。
1@Composable
2fun MyLabel2() {
3 Box(
4 modifier = Modifier
5 .padding(all = 4.dp)
6 .border(
7 width = 2.dp,
8 color = Color.Blue
9 )
10 ) {
11 Text(
12 modifier = Modifier
13 .padding(all = 8.dp),
14 text = "Border付きテキスト1"
15 )
16 }
17}
ComposeのConstraintLayoutのDevelopersにも記載されている通り
注: View システムでは、大規模で複雑なレイアウトを作成する場合、ConstraintLayout を使用することが推奨されていました。これは、ネストされたビューよりもフラットなビュー階層の方がパフォーマンスに優れているためです。しかし、深いレイアウト階層を効率的に扱える Compose では、このような懸念はありません。
と記述されているので
わかりやすさ優先で、レイアウトの階層を恐れずに深くしていきましょう。
…
記事の続きは下のリンクをクリック!
https://rightcode.co.jp/blogs/45114
エンジニア積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
エンジニア、デザイナー、営業など積極採用中です!
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「スマホアプリエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「エンジニアリングマネージャー」「営業」などを積極採用中です!
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
【コーポレートサイト】https://rightcode.co.jp/
【採用募集】https://rightcode.co.jp/recruit(こちらからの応募がスムーズ)
【wantedlyぺージ】https://www.wantedly.com/companies/rightcode