TIL - 4 # 폴더블 폰 대응
최근에 Z Flip 5 폴딩 테스트가 핫한 이슈가 되고 있습니다. 위의 영상을 보면서 폴딩 40만번 넘게 버틴 기술력에 감탄했으며, 점점 사용성도 편해지고 기기도 잘 나와서 앞으로도 폴더블 폰이 더욱더 많이 보급될 것 같은 생각이 들었습니다. 하지만 그럴수록 안드로이드 개발자들의 고통은 더 증가 되기 마련입니다 😂 파편화된 기기들이 iOS보다 안그래도 많은데 폴더블 폰까지 대응을 해야된다니.. 그래서 이번에 폴더블 폰은 어떻게 대응을 해야되는지 간단히 알아봤습니다. ### 반응형 디자인 반응형 디자인 경우 레이아웃의 접힌 화면과 펼친화면을 포함해서 다양한 디스플레이 크기에서 제대로 표시되고 작동시키게 할 수 있습니다. 뷰 기반 레이아웃인 경우 `ConstraintLayout` 을, Compose의 경우는 `BoxWithConstraints` 를 사용하여 반응형 디자인을 구현할 수 있습니다. 하지만 단점이 있습니다. 갤럭시 폴드 처럼 접었을 때와 펼첬을 때 화면 크기와 가로세로 비율의 차이가 매우 클 수 있고, 이에 따라 두 상태를 다 커버하기 어렵습니다. ### 적응형 디자인 https://developer.android.com/static/images/guide/topics/large-screens/foldables/fold_unfold.mp4?hl=ko 적응형 디자인은 다양한 화면 크기와 구성에 최적화된 레이아웃을 만듭니다. 예를들어 카메라 앱에서 Z Flip인 경우 90도로 접었을때와 전체 폈을때 레이아웃이 사용자 편의성에 맞춰서 구현이 되어있습니다. 그리고 폴드인 경우에는 펼쳤을때 크기가 테블릿과 유사하기 때문에 메신저 앱에서 왼쪽에 메세지 리스트 오른쪽에는 메시지 창과 같이 각 사용 사례에 맞게 최적화 할 수 있습니다. 따라서 다양한 케이스를 대응해야 하므로 공수가 많이 들며 관리가 어렵다는 점에 있습니다. ### 결론 - 각 서비스별 특성에 따라서 폴더블 대응을 하면 사용자 편의성에서 증가시키고, 이를 통해 사용자 유입에도 도움이 될 수 있다는 생각이 들었습니다. - 예전에는 Fragment로 화면을 분리해서 관리했기때문에 라이프 사이클 및 로직이 얽혀 있고 복잡해서 관리가 쉽지 않았지만 Compose의 도입으로 인해 비교적으로 쉽게 분리 또는 합치는것이 가능하겠다고 생각하게 되었습니다. (물론 비즈니스적인 로직 및 상태 관리가 잘되어있어야 합니다.) 참고하면 좋은 글 - https://developer.android.com/guide/topics/large-screens/learn-about-foldables?hl=ko - https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes?hl=ko -https://developer.android.com/jetpack/compose/layouts/adaptive?hl=ko・댓글 3