[medium.com/mobile-app-development-publication/activities-or-fragments-a-little-sharing-c1ddc1041f79]
이걸 번역, 정리한다.
프래그먼트의 역사
2008년 안드로이드가 처음 나온 당시에는 엑티비티에 모든 뷰를 담고자 했다. 그리고 다른 스크린이 필요하면 그냥 액티비티를 한개 더 만드는 방법을 사용했다.
그러다 안드로이드 3.0에서 프래그먼트가 소개되었다... 프래그먼트는 타블릿을 위한거였다, 타블릿은 화면이 폰보다 크기 때문에 문제였다.
타블릿은 크니까 한 액티비티 안에 프래그먼트가 두개 들어올 수 있는다. 그에 반해 폰은 한 액티비티에 프래그먼트가 한개만 들어올 수 있다. 대신에 폰은 프래그먼트를 스왑 인 , 아웃 할수 있다.
프래그먼트가 소개된후, 폰에서도 사람들은 많이 사용했다.
프래그먼트는 액티비티 처럼 라이프 사이클을 갖는다.
모바일 개발에서 가장 큰 도전 과제는 (특히 안드로이드), 상태 복원이다. 예를 들면 앱이 다시 열릴때 상태가 복원되거나, 시스템이 죽었다 열릴때 다시 복원되는 등. 그래서 라이프 사이클의 관리가 복잡할 수 있다.
추가로 더 말하면, 디바이스를 회전하는 간단한 변화 조차, 프래그먼트는 파괴되었다가 다시 복원될것이다. 예를 들면 네트워크 요청이 디바이스가 회전하는 동안 완료될 수 있지 않는가?
이러한 회전의 고통을 없애기 위해, retainInstance라는 기능의 이름이 있다. [https://stackoverflow.com/a/11318942/3286489]
Navigation Drawer
흠 이후에는 디자인 적인 이유로, 네비게이션 드로어를 사용할때 문제가 있다하는데,
uxmovement.com/mobile/why-mobile-menus-belong-at-the-bottom-of-the-screen/
대충 내용은 , 엄지손가락이 도달할 수 있는 범위가 아래쪽이다 이거임, 왼쪽 내비게이션 드로어가 아닌게 문제인듯.
BottomBar Navigation
내비게이션 드로어의 단점으로 바텀바 네비게이션이 나왔다.
이걸로 바텀바가 항상 보여야하므로, 안드로이드 플랫폼에서는, 액티비티 액티비티 교환이 페이지 변환에서 사용할 수 없게 되었다. (우리가 바텀바를 모양을 지저분하게 할 생각이 아니면, 액티비티를 바꾸면 자꾸 바텀바가 사라졌다, 생겼다 하는 문제 떄문에 그런거 같다.)
그러므로 가능한 방법은 프래그먼트 - 프래그먼트 전환이다. 또는 뷰 - 뷰 전환, 하지만 너무 많은 뷰를 관리하는 것은 메모리 문제가 있을 수 있다.
'잡다한 프로젝트 > 안드로이드' 카테고리의 다른 글
<안드로이드> ios개발자의 안드로이드 개발 공부 1편 (0) | 2022.05.05 |
---|---|
<안드로이드> 자바 - 사진 찍고 저장, 불러오기 (0) | 2020.11.29 |
<안드로이드> android studio에 assets 폴더에 1mb이상 파일 넣고 sqlite로 읽어야된다. (0) | 2020.11.23 |
<안드로이드> fragment에 activity 띄우기 (0) | 2020.10.18 |
<안드로이드 개발> 화면 잘리는 문제 2편: 안드로이드 레이아웃 동적 대응 (0) | 2020.10.11 |