反復型コード開発

モバイル デベロッパーは多くの場合、アプリの UI を一つひとつ開発するのではなく、 一度にすべてを開発するよりも はるかに簡単ですAndroid Studio は、 Jetpack Compose には、検査に完全なビルドを必要としないツール、 値を変更し、最終結果を検証します。

ライブ編集

ライブ編集は、エミュレータでコンポーザブルを更新し、 リアルタイムで分析できますこの機能により、コンテキストの切り替えが最小限に抑えられます。 アプリの作成とビルドの手間を省けるので、コードの記述により長く集中できます。 できます。

<ph type="x-smartling-placeholder">

ライブ編集には次の 3 つのモードがあります。

  • 手動: 手動で push すると、コード変更が適用されます。 Ctrl+'(macOS では Command+'
  • 保存時に手動設定: Ctrl+S(macOS では Command+S
  • Automatic: デバイスまたはエミュレータを更新すると、変更内容がデバイスまたはエミュレータに適用されます。 コンポーズ可能な関数を作成します。

ライブ編集は、UI および UX 関連のコード変更に重点を置いています。メソッド シグネチャの更新、新しいメソッドの追加、クラス階層の変更などの変更はサポートしていません。詳しくは、ライブ編集の制限事項のリストをご覧ください。

この機能は、アプリの作成と実行や Apply Changes の代替ではなく、Compose UI の開発におけるビルド、デプロイ、反復のワークフローを最適化するためのものです。

ベスト プラクティスのワークフローは次のとおりです。

  1. アプリをセットアップして実行できるようにします。
  2. ライブ編集でサポートされない変更(アプリ実行中の新しいメソッドの追加など)を行う必要性が生じるまで、可能な限りの変更をライブ編集で行います。
  3. サポートされていない変更を行った後、実行アイコン ランニング
アイコン をクリックして再起動します。 ライブ編集を再開できます。

ライブ編集を使ってみる

まず、以下の手順で空の Compose アクティビティを作成し、 プロジェクトのライブ編集を行い、ライブ編集で変更を加える

新しいプロジェクトをセットアップする

  1. 始める前に、Android Studio Giraffe 以降がインストールされていることを確認します。 物理サーバーの API レベルが 30 以上である必要があります。

  2. Android Studio を開き、[Welcome to Android Studio] ダイアログで [New Project] を選択します。すでにプロジェクトを開いている場合は、新しいプロジェクトを作成 [ファイル] >新規 >New Project:

  3. [Phone and Tablet] の [Empty Compose Activity] テンプレートを選択し、[Next] をクリックします。

    Android Studio でのテンプレートの選択
    図 1. ] をクリックします。テンプレートから選択できます。ライブ編集の場合 [Empty Compose Activity] を選択します。
    をご覧ください。
  4. [New Project] ダイアログで必要な情報をすべて入力します。具体的には、名前、パッケージ名、保存場所、最小 SDK、ビルド構成の言語です。

    Android Studio で入力したステップ 4 のプロジェクト設定の例
    図 2. プロジェクト設定の例。
  5. [Finish] をクリックします。

ライブ編集を有効にする

  1. 設定に移動してライブ編集を有効にします。

    • Windows または Linux の場合、[File] > [Settings] > [Editor] > [Live Edit] に移動します。
    • macOS の場合、[Android Studio] > [Settings] > [Editor] > [Live Edit] に移動します。
  2. 設定で [Live Edit] オプションを選択し、実行するモードを選びます。

    手動モードでは、ボタンを押すたびにコードの変更がプッシュされます。 Ctrl+'(macOS では Command+')キー手動モードがオン 手動で保存するたびにコードの変更が 適用されます Ctrl+S を使用(Command+S がオン) macOS など)。自動モードでは、コードの変更がデバイスに適用されるか、 エミュレータで変更する必要はありません。

    Android Studio 設定のライブ編集チェックボックス UI
    図 3. ライブ編集の設定。
  3. エディタで、アプリのエントリ ポイントである MainActivity ファイルを開きます。

  4. 実行アイコン UI ボタン をクリックしてアプリをデプロイします。

  5. ライブ編集を有効にすると、画面に最新の緑色のチェックマークが表示される [Running Devices] ツール ウィンドウの右上から次の操作を行います。

    ライブ編集の緑色のチェックマークの UI

変更を加えて確認する

エディタで対応する変更を加えると、仮想テストデバイスまたは物理テストデバイスが 自動的に更新されます。

たとえば、MainActivity の既存の Greeting メソッドを次のように編集します。 次のとおりです。

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

図 4 に示すように、変更はすぐにテストデバイスに反映されます。

<ph type="x-smartling-placeholder">
</ph> デバイスで適用される Greeting メソッドの変更
図 4.ライブ編集の変更が表示されたテストデバイス Greeting メソッド。

ライブ編集のトラブルシューティング

テストデバイスに編集内容が表示されない場合は、Android Studio でエラーが発生した可能性があります。 編集内容が更新されます。ライブ編集のインジケーターが [Out Of Date](期限切れが期限切れ)の場合(図 5 を参照)。これはコンパイル エラーを示します。エラーの詳細と解決方法の提案については、このインジケーターをクリックしてください。

ライブ編集の「Out Of Date」(要更新)アイコン
図 5. ライブ編集のステータス インジケーター。

ライブ編集の制限事項

現在の制限事項は次のとおりです。

  • [Android Studio Giraffe 以降にのみ適用] ライブ編集には Compose ランタイムが必要 1.3.0 以降。 プロジェクトで以前のバージョンの Compose を使用している場合、ライブ編集は 無効です。

  • [Android Studio Giraffe 以降にのみ適用] ライブ編集には AGP 8.1.0-alpha05 または 高くなります。プロジェクトでそれよりも前のバージョンを使用している場合 ライブ編集は無効になります。

  • ライブ編集には、API レベルを搭載した実機またはエミュレータが必要です 30 以上。

  • ライブ編集は関数本体の編集のみをサポートします。関数名やシグネチャの変更、関数の追加または削除、関数以外のフィールドの変更はできません。

  • ライブ編集では、Compose 関数を初めて変更したときにアプリの状態がリセットされます。 できます。これは最初のコード変更後にのみ発生します。アプリの状態は変更されず、 そのファイル内の Compose 関数に対してその後のコード変更によって、リセットされます。

  • ライブ編集で変更したクラスは、パフォーマンスが低下することがあります。まず アプリを評価している場合は、クリーンなリリースビルドを使用します。 向上します

  • 実行したクラスをデバッガで処理するには、フル実行を行う必要があります。 ライブ編集で変更されています。

  • 実行中のアプリをライブ編集で編集すると、クラッシュする可能性があります。その場合は 実行ボタン UI ボタン を使ってアプリを再デプロイできます。

  • ライブ編集では、 ビルドファイルの作成、たとえばバイトコード操作など、 [Build] メニューのオプションを使用してプロジェクトをビルドするときに適用される [Build] ボタンまたは [Run] ボタンをクリックします。

  • コンポーズ可能な関数は、デバイスまたはエミュレータでライブにアップデートされ、 完全な再コンポーズがトリガーされます。完全な再コンポーズでは、更新された関数が呼び出されない場合があります。コンポーズ可能な関数以外の関数については、新しく更新された関数をトリガーするか、アプリを再度実行する必要があります。

  • アプリを再起動してもライブ編集は再開されません。アプリを再度実行する必要があります。

  • ライブ編集はデバッグ可能なプロセスにのみ対応しています。

  • ライブ編集はビルド構成で kotlinOptionsmoduleName にカスタム値を使用しているプロジェクトはサポートしていません。

  • マルチデプロイの導入では、ライブ編集は機能しません。つまり、あるデバイスにデプロイ後、別のデバイスにデプロイすることはできません。ライブ編集が有効なのは アプリがデプロイされた前回のデバイスセットです。

  • ライブ編集はマルチデバイス デプロイ(複数のデバイスへのデプロイ)で ターゲットの [Select Multiple devices] を使って作成されたデバイス デバイスのプルダウン)に移動します。ただし、これは公式にはサポートされていないため、 サポートします。問題が発生した場合は 報告してください

  • Apply Changes/Apply Code Changes がライブ編集に対応していない 実行中のアプリを再起動する必要があります。

  • ライブ編集は現在、Android Automotive プロジェクトをサポートしていません。

ライブ編集に関するよくある質問

  • ライブ編集の現在のステータスを教えてください。

    ライブ編集は Android Studio Giraffe で利用できます。オンにするには [ファイル] > [設定] >編集者 >ライブ編集Android Studio > [設定] >編集者 >ライブ編集)。

  • ライブ編集はどのような場合に使うべきですか?

    ライブ編集は、UX の更新による影響をすぐに確認したい場合に使用します アプリ全体での要素(修飾子の更新やアニメーションなど) 体験できます

  • ライブ編集を使用すべきでないのはどのような場合ですか?

    ライブ編集は、UI および UX 関連のコード変更に重点を置いています。サポートしない 変更(メソッド シグネチャの更新、新しいメソッドの追加、クラスなど)の変更 継承されます。詳しくは、ライブ配信に関する 編集

  • Compose プレビューを使用するタイミング

    個々のコンポーザブルを開発する場合は、Compose プレビューを使用します。プレビュー Compose の要素を可視化し、 影響を軽減できます。プレビューでは UI 要素の表示が さまざまな構成や状態(ダークモード、ロケール、フォントなど) スケールできます。

リテラルのライブ編集(非推奨)

Android Studio は、プレビュー、エミュレータ、物理デバイス内のコンポーザブルで使用されている一部の定数リテラルを、リアルタイムで更新できます。サポートされている型は次のとおりです。

  • Int
  • String
  • Color
  • Dp
  • Boolean

ソースコード内のリテラルを変更しているユーザーの動画とプレビュー
更新中
動的に

値を指定せずにリアルタイム更新をトリガーする定数リテラルを表示できます。 のライブ編集でリテラル デコレーションを有効にして、コンパイルの手順を説明します。 リテラル UI インジケーター:

ライブ編集を有効にする
リテラル

Apply Changes

Apply Changes を使用すると、コードとリソースを更新できます。 エミュレータや実機にアプリを再デプロイすることなく 制限事項)。

コンポーザブルを追加、変更、削除するときはいつでも、変更せずにアプリを更新できます。 [コードの変更を適用] ボタンをクリックして再デプロイします。

ユーザーが [変更を適用] をクリックする
ボタン