SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Jetpack Compose入門

文字列を画面に表示させてみよう。Composeによる画面作成の基本

Jetpack Compose入門 第1回

WINGSプロジェクト 齊藤 新三[著] / 山田 祥寛[監修]

 Androidアプリ開発において、画面を作成する際、長らくXML記述が利用されてきました。昨今、そのXML記述に代わる後発のJetpack Composeがデファクトスタンダードになりつつあります。さらに、正式リリースから5周年となる2026年に、GoogleはComposeファーストを提唱し、ComposeがAndroidの画面作成の第一の選択肢となりました。本連載では、3回にわたりComposeによる画面作成の入門的内容を紹介していきます。初回は、画面に文字列を表示する方法を紹介しながら、Composeによる画面作成の基礎を紹介します。

宣言的UIであるCompose

 本連載は、Jetpack Compose、略してComposeを紹介していきます。なお、本連載のサンプルソースコードは、こちらから参照できます。

5周年記念のCompose

 Androidアプリ開発では、その最初期から、画面はレイアウト.xmlファイルに記述したXML記述が利用されてきました。これを、ビューベースの画面作成といいます。

 その手法に代わるものとしてGoogleが考え出したのが、全く新しい画面作成方法であるComposeです。Composeは、Kotlinコードのみで画面を作成する方法であり、2019年に実験的にリリースされました。その後、2021年にバージョン1.0として正式リリースされます。

 この原稿を執筆している2026年は、正式リリースから5周年となります。その2026年のGoogle I/Oで、Googleは、Composeファーストを発表しています。今後は、XMLベースの画面部品は全てメンテナンスモードとなり、新規機能は追加されなくなります。もちろん、メンテナンスとしてサポートはされますので、しばらく使い続けることはできますが、これからAndroidアプリを作成する際は、Composeがデファクトスタンダードとなります。

命令的UI vs 宣言的UI

 そのようなComposeの特徴を一言で表すと、宣言的UI(Declarative UI)です。対して、ビューベースのUIを命令的UI(Imperative UI)といいます。

 というのは、画面の表示内容の元となるデータに変更があった場合、表示させる画面部品を取得し、その画面部品への表示を変更するコードをプログラマーが記述する必要があるからです。つまりは、変更命令があって、初めて表示が変更されるUIということです。

 それに対して、宣言的UIの場合は、データが〇〇の場合は、画面は△△の表示となる、というコードをあらかじめ記述します。あとは、データの変更に応じて、画面も自動的に表示が変わります。

図1:命令的UIと宣言的UIの違い(筆者がGoogle Geminiで生成)
図1:命令的UIと宣言的UIの違い(筆者がGoogle Geminiで生成)

 現段階では、イメージしづらいと思いますので、あくまで雰囲気だけ掴んでいただければかまいません。詳細は、実際にコードを交えながら理解していけばよいでしょう。そのため、ここではキーワードだけ紹介して、次に進んでいきます。

Android Studioで選択するテンプレート

 さて、具体的なコードを交えながらComposeの基礎を紹介していこうと思いますが、その前に、Android StudioでComposeによるアプリを作成する際の注意点を紹介します。それは、プロジェクトを作成する際のウィザードの第1画面のテンプレートの選択において、図2のように、Empty Activityを選択する必要がある、ということです。

 他のテンプレート、特に似たような名称であるEmpty Views Activityを選択すると、従来のXMLベースの画面作成となるので注意してください。

図2:AndroidプロジェクトのテンプレートではEmpty Activityを選択
図2:AndroidプロジェクトのテンプレートではEmpty Activityを選択

[NOTE]Android Studioのインストール

 Android Studioのインストール、および、AVD(エミュレーター)の設定など、Android開発環境構築に関しては、誌面の都合上、本稿では紹介しませんので、こちらの記事を参照してください。

次のページ
Composeで画面に文字列を表示

この記事は参考になりましたか?

この記事の著者

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編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー