2021年末頃にAndroid公式ドキュメントにある アーキテクチャガイド が大幅にアップデートされました。 今回はその中でも UI Layerについての章 を取り上げて、アプリにおいてUIの状態をどのように管理するのが適切かについてまとめます。 UIとは? そもそも UI とは、TextやButtonのような視覚的に表現される UI Elements に、ユーザーが目にするべきアプリの状態を示す UI State を反映することで構築されています。 状態とイベントの管理 UI Stateはユーザーインタラクションなどのイベントの発生によって、時間と共に変化していきます。 各イベントを適切にハンドリングしつつ、Data Layerから渡ってきたデータを適切な形に変換する必要があります。 これらをUI Elementsで行うことも可能ですが、責務が集中して複雑度が増し、手に負えなくなっていく
![Androidのアーキテクチャガイドから学ぶ、UIの状態管理手法](https://cdn-ak-scissors.b.st-hatena.com/image/square/35f018d269460020d01fad5a6b50d16059d9ba33/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--hk2CtZrh--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AAndroid%2525E3%252581%2525AE%2525E3%252582%2525A2%2525E3%252583%2525BC%2525E3%252582%2525AD%2525E3%252583%252586%2525E3%252582%2525AF%2525E3%252583%252581%2525E3%252583%2525A3%2525E3%252582%2525AC%2525E3%252582%2525A4%2525E3%252583%252589%2525E3%252581%25258B%2525E3%252582%252589%2525E5%2525AD%2525A6%2525E3%252581%2525B6%2525E3%252580%252581UI%2525E3%252581%2525AE%2525E7%25258A%2525B6%2525E6%252585%25258B%2525E7%2525AE%2525A1%2525E7%252590%252586%2525E6%252589%25258B%2525E6%2525B3%252595%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Arockname%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2ZlOTcyZmY2ZDUuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)