こんにちは。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を組み合わせてカスタマイズしていくことができます。
―――
今日はそんな感じで、コードの構造を一つずつ分解しながら理解を深めました。
昨日は「何が起きているのか全く分からない状態」でしたが、
今日は「なるほど、こういう仕組みだったのか」と少しだけ輪郭が見えてきた気がします。
まだまだ道のりは長いですが、
焦らず、一歩ずつ理解していければと思います。
―――