はじめに
コードを修正した後に再度アプリをインストールし直すことなく、
修正したコードを反映してすぐに確認したいことがあります。
元々は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を表示する機能があったとする。
次に、Apply Code Changesボタンを押下し、修正したコードを反映させる。
そして、実装箇所が通る操作を行った場合、以下のように表示され表示されるテキストが変わっていることが分かる。
Apply Changes Restart and Activity:こちらも試してみた
Resourceファイルを変更した場合、Apply Changes Restart and Activityを使用する必要がある。
上記以外に、以下のようなケースも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)の操作が非常に楽になります。
まあ、一発で直せよってことかもしれませんが、状況によっては一発で直しづらい場合もあるし、実装しながらこまめに動きを確認したい時もあります。
こういう時に確認ステップを少しでも減らすことができれば開発効率はアップするので、非常に有用な機能だと思っています。
あとは、謎に修正が反映されない時があるので、その時は素直に再度アプリインストールし直してデバッグ実行し直しですかねー
以上