昨日のコードを分解して理解を深める

こんにちは。AI副業チャレンジ中の中年おやじです。

―――

今日も Android Developers で勉強しています。
昨日の「Happy Birthday Card」のコードが、どういう構成で動いているのかが気になって、
Geminiに質問しながら全体の流れを整理してみました。

―――

まず、import部分
ここは、他のファイルやライブラリにあるクラスや関数を利用するための“おまじない”のような部分です。
ここで必要な機能を読み込んでから、アプリ全体が動き出します。

次に、class MainActivity
これはAndroidアプリのメインエントリーポイント、つまり「アプリが最初に動き出す場所」です。
その中にある onCreate関数 が、アプリ起動時に最初に実行される関数になります。

―――

そして今回の主役、@Composable fun GreetingText()
これは、画面に表示するUI部品(ここではテキスト)を定義する関数です。

でも、ここでひとつ疑問が。
「onCreateの中にGreetingTextが呼ばれていないのに、なぜ画面に表示されていたのか?」

調べていくと、理由は@Previewアノテーションの付いた BirthdayCardPreview()関数 にありました。
この関数は、実際のアプリではなく
Android Studioのエディタ上でプレビューを表示するためのもの。
つまり、画面に出ていたのは“プレビュー”であって、アプリ本体の動作ではなかったんです。

―――

実際のアプリ画面に反映させるには、
onCreate内のsetContentブロックの中でGreetingTextを呼び出す必要があります。
今回で言えば、Surfaceブロックの中にGreetingTextを記述することで、
ようやくアプリの画面に反映される仕組みになっています。

―――

ここで出てくる Surface は、Jetpack Composeの中でもとても大事な存在。
いわば「UIを配置するためのキャンバス(入れ物)」のようなものです。
背景色を設定したり、影や形をつけたりと、画面の基盤を作る役割を担っています。

さらにもうひとつ、重要なのが Modifier(モディファイア)
英語で“変更する”という意味の通り、UI部品の見た目や動きを調整するための指示書のようなものです。
たとえば、位置を調整したり、余白を取ったり、サイズを変えたりと、
複数のModifierを組み合わせてカスタマイズしていくことができます。

―――

今日はそんな感じで、コードの構造を一つずつ分解しながら理解を深めました。
昨日は「何が起きているのか全く分からない状態」でしたが、
今日は「なるほど、こういう仕組みだったのか」と少しだけ輪郭が見えてきた気がします。

まだまだ道のりは長いですが、
焦らず、一歩ずつ理解していければと思います。

―――