7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AndroidAdvent Calendar 2024

Day 9

Surface と Scaffold どっちを使えばいいの

Last updated at Posted at 2024-12-09

はじめに

  • 最近、新規プロジェクト作成時に、Android Studioで生成される雛形コードがScaffold()になっていることが多くないですか?
  • CodelabsのコースではSurface()を使用していることが多いため違いが気になっていました
  • そこでSurface()Scaffold()のどちらを使えばいいのか調べました

結論

  • Scaffold()を使うべし
  • 理由はGoogleがEdge-to-edgeを推奨しているため

Edge-to-edgeとは
公式ドキュメントによると、Edge-to-edgeを有効にするとステータスバーとナビゲーションバーの背後にコンテンツが配置されるようになる
これによりスクリーンの端から端までアプリが描画され、今まで以上に没入感のあるユーザー体験が可能となる

Scaffold

  • Edge-to-edge対応に伴って必要な、上下のシステムバー・カメラノッチ周りの余白を自動調整してくれる

実装例はこちら↓

Surface

  • これらの処理を手動で実装する必要がある
  • WindowInsetsの管理が必要

まとめ

  • 最新のAndroidバージョンとMaterial Designガイドラインに準拠しているのであれば、Scaffoldを使っていれば間違い無いかなと思います
  • 僕はCodeLabのハンズオンをやる時は適宜、Surface → Scaffoldと読み替えています(ちょっとめんどうですが)

併せて読んでおきたい記事

  • Surface や Scaffold を使わない場合どうなるのかがわかる
  • Surfaceの役割がわかる

参考

7
1
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
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?