Composeで画面に文字列を表示
概論はここまでにして、早速、コードを交えながらComposeの使い方を紹介していきましょう。
本稿のゴール
本稿では、最終的に図3の画面を作成します。画面の真ん中にカードのように挨拶の文字列が表示されています。単に文字列の表示ですので、データに応じて画面表示が変わるという宣言的UIの本質までは至りませんが、それでもComposeによるAndroidアプリの基礎的な内容は紹介できます。
テンプレートコードの読み解き
Android StudioでEmpty Activityテンプレートでプロジェクトを作成すると、MainActivityというクラスが作成されています。このクラスが、アプリが起動した時に表示される画面を表します。そのコードを抜粋掲載したものが、リスト1です。
class MainActivity : ComponentActivity() { // (1)
override fun onCreate(savedInstanceState: Bundle?) { // (2)
super.onCreate(savedInstanceState) // (3)
enableEdgeToEdge() // (4)
setContent { // (5)
FirstComposeTheme { // (6)
: // (7)
}
}
}
}
リスト1は、画面を表示させるために最低限必要なコードと理解してください。
まず、画面を表示するためのクラスは、アクティビティクラスといい、(1)のようにComponentActivityを継承して作成します。MainActivityは、このテンプレートでアプリの起動時に利用されるアクティビティとして設定されています。MainActivityという名前自体に特別な意味があるわけではありません。
そのアクティビティクラスでは、まず(2)のように、onCreate()メソッドをオーバーライドします。このメソッドは、アプリが起動した際にまず呼び出されるメソッドであるため(3)のように、親クラスのonCreate()を実行した上で、初期処理を記述します。
それらの初期処理のうち、定型コードとして記述しておかなければならないのが(4)と(5)です。(4)のenableEdgeToEdge()の実行は、ステータスバーなどのシステムバーを透明にして画面を広く利用するための設定コードであり、これを、このメソッド名の通り、エッジツーエッジといいます。
そして、一番大切なのが(5)のsetContent()メソッドの実行です。このメソッドの引数ラムダ式の中で、画面表示に必要なコードを記述することで、画面が表示されるようになります。それが(7)のコードです。
ただし、画面にアプリのテーマを適用させるためには(6)のように(7)のコードをテーマを表すクラス(のインスタンスの生成コード)でラップする必要があります。このクラスは、通常、プロジェクト名+Themeという名称で自動生成されています。リスト1のサンプルは、FirstComposeというプロジェクト名で作成しているので、FirstComposeThemeというクラス名になっています。
[NOTE](7)にもともと記述されていたコード
プロジェクト作成直後に、リスト1の(7)に記述されていたコードは、Composeのスキャフォールドという仕組みを利用するためのコードです。こちらは、本稿の範囲を超えますので、割愛することをご了承ください。
文字列の表示はText()関数
テンプレートコードの解説はこのあたりにしておいて、実際にコーディングしてみましょう。(7)の部分にあらかじめ記述されていたコードを、丸々リスト2のように書き換えてアプリを実行してみましょう。すると、図4のように表示されます。
FirstComposeTheme {
Text("こんにちは、しんちゃんさん!")
}
画面に文字列を表示させるには、Text()関数を実行し、その引数として表示する文字列を渡します。この引数の正式名称は、textですので、Kotlinの引数名を指定できる文法に従い、次のように記述するのが一般的です。
Text(text = "こんにちは、しんちゃんさん!")
なお、このように画面のパーツを作成するための関数のこと、コンポーザブル(Composable)といいます。のちの節で、コンポーザブルを自作する方法を紹介します。
この記事は参考になりましたか?
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
