カテゴリー:
Compose を用いた Android アプリ開発の基礎 / ユニット 1: 初めての Android アプリ
閲覧数:13 配信日:2024-10-04 13:45
まとめ
・新しいプロジェクトを作成するには、Android Studio を開き、[New Project] > [Empty Compose Activity] > [Next] をクリックし、プロジェクトの名前を入力して設定を行います。
・アプリの外観を確認するには、[Preview] ペインを使用します。
・コンポーズ可能な関数は、通常の関数と似てはいますが少し異なります。関数名は大文字で始め、関数の前に @Composable アノテーションを追加します。@Composable 関数は何も返しません。
・Modifier は、コンポーザブルを拡張または装飾するために使用します。
コンポーズ可能な関数
コンポーズ可能な関数とは、Jetpack Composeなどの宣言型UIフレームワークで使用される関数のことです。
これらの関数は、UIを構築するために使用され、他のコンポーズ可能な関数を呼び出すことができます。
以下の特徴があります:
1.@Composableアノテーション: コンポーズ可能な関数は、@Composableアノテーションを付けることで宣言されます。このアノテーションは、関数がデータをUIに変換するものであることを示します。
2.引数の受け取り: コンポーズ可能な関数は、引数を受け取ることができ、これによりUIの状態を動的に変更できます。
3.他のコンポーズ可能な関数の呼び出し: コンポーズ可能な関数は、他のコンポーズ可能な関数を呼び出すことでUIの階層を形成します。
4.副作用の排除: コンポーズ可能な関数は、副作用を含まないように設計されており、同じ引数で呼び出された場合に同じ結果を返すことが重要です。
例えば、以下のようなシンプルなコンポーズ可能な関数があります:
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}
この関数は、名前を引数として受け取り、挨拶メッセージを表示するTextウィジェットを出力します。
Modifier
Jetpack ComposeにおけるModifierは、コンポーザブル(Composable)要素の見た目や動作を修飾・構成するための非常に重要なコンセプトです。
Modifierを使用することで、以下のようなことが可能になります:
1.サイズやレイアウトの変更: 例えば、要素の幅や高さを設定したり、余白を追加したりすることができます。
2.背景や境界線の設定: 背景色や背景画像を設定したり、境界線を追加することができます。
3.ユーザーインタラクションの処理: 要素をクリック可能にしたり、ドラッグ可能にしたり、スクロール可能にすることができます。
4.高レベルのインタラクション: 要素をクリック可能、スクロール可能、ドラッグ可能、ズーム可能にすることができます。
例えば、以下のようなコードでModifierを使用して要素を装飾することができます
@Composable
fun ModifierExample() {
Box(
modifier = Modifier
.size(100.dp)
.padding(16.dp)
.background(Color.Blue)
.clickable { /* クリック処理 */ }
)
}
この例では、Boxコンポーザブルに対してサイズ、余白、背景色、クリック可能な動作を設定しています。
コンポーザブル要素
コンポーザブル(Composable)要素とは、Jetpack Composeなどの宣言型UIフレームワークで使用される関数や要素のことです。
これらの要素は、UIを構築するために使用され、他のコンポーザブル要素と組み合わせて使うことができます。以下の特徴があります:
1.@Composableアノテーション: コンポーザブル要素は、@Composableアノテーションを付けることで宣言されます。このアノテーションは、関数がデータをUIに変換するものであることを示します。
2.再利用可能性: コンポーザブル要素は、他のコンポーザブル要素と組み合わせて再利用することができます。これにより、コードの重複を避け、メンテナンスを容易にします。
3.状態管理: コンポーザブル要素は、状態を管理し、UIの動的な変更を反映することができます。
4.宣言的UI: コンポーザブル要素は、UIを宣言的に記述するため、コードが読みやすく、理解しやすくなります。
例えば、以下のようなシンプルなコンポーザブル要素があります:
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}
この関数は、名前を引数として受け取り、挨拶メッセージを表示するTextウィジェットを出力します。