0
1

はじめに

コードを修正した後に再度アプリをインストールし直すことなく、
修正したコードを反映してすぐに確認したいことがあります。

元々はInstall Runという名称の機能でしたが、今はApply Changesに変わっています。
このApply Changes機能について記載していきます。

前提とする環境は以下の通り。
・Mac OS Sonoma 14.5
・Android Studio Koala | 2024.1.1

また、公式の参考資料は以下の通り
 https://developer.android.com/studio/run
 https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd

Apply Changes

2つの機能

以下2つの機能があります。
・Apply Changes Restart and Activity
 →そのままの意味で修正内容を実行している端末に反映させActivityを再起動する
・Apply Code Changes
 →修正内容を実行している端末に反映させる

注意事項

・Android Studio 3.5以降でこのApply Changesを使うことができる。
・Android 8.0(APIレベル26)以降を実行しているデバイスでサポートされている

Apply Code Changes:試しにやってみた

テンプレートのサンプルプロジェクトを作成し、以下Snackbarを表示する機能があったとする。
スクリーンショット 2024-07-06 19.09.56.png

上記実装箇所が通る操作を行った場合、以下のように表示される
スクリーンショット 2024-07-06 19.58.44.png

これを以下のように表示テキストを変えて、ファイル保存する。
スクリーンショット 2024-07-06 19.10.52.png

次に、Apply Code Changesボタンを押下し、修正したコードを反映させる。
スクリーンショット 2024-07-06 19.11.09.png

そして、実装箇所が通る操作を行った場合、以下のように表示され表示されるテキストが変わっていることが分かる。
スクリーンショット 2024-07-06 19.59.07.png

Apply Changes Restart and Activity:こちらも試してみた

Resourceファイルを変更した場合、Apply Changes Restart and Activityを使用する必要がある。
スクリーンショット 2024-07-06 19.12.45.png

上記以外に、以下のようなケースもApply Changes Restart and Activityを使用する必要がある。
・FragmentのonCreateViewやonViewCreateのタイミングで実行している処理を変更した場合
・Activityを修正した場合

これは、コードを修正してアプリに反映しても、すでに実行済みの処理であれば反映されないと思われる。

Xcodeにはこういう機能ってあるの?

Xcodeにも似たような機能があると非常に嬉しいのだが、現状は標準機能としては無いっぽい

Injection Plugin for XcodeなどPluginを入れれば同じことが出来るっぽい
(試せてないのでこれは別記事にしようかと)

あとは、FlutterであればHot Reloadという名称で同じことが出来るので便利そうです。
案件によってはPluginを気軽に導入できないので、、Xcode標準機能として備わるのが一番良いんですよね。。

最後に

今までは以下のように行なって来たことが、
0)特定の画面の特定の操作を行なった時にバグを発見
1)特定の画面の特定の実装箇所を修正する
2)シミュレータを起動し、アプリを再インストール
3)特定の画面に辿り着いて、修正箇所を通るような操作を行う
4)期待通りに動かない場合は1)からやり直し

この機能を使うことによって3)の操作が非常に楽になります。
まあ、一発で直せよってことかもしれませんが、状況によっては一発で直しづらい場合もあるし、実装しながらこまめに動きを確認したい時もあります。

こういう時に確認ステップを少しでも減らすことができれば開発効率はアップするので、非常に有用な機能だと思っています。

あとは、謎に修正が反映されない時があるので、その時は素直に再度アプリインストールし直してデバッグ実行し直しですかねー

以上

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1