잡다한 프로젝트/안드로이드

<안드로이드> Fragment vs Activity 차이

studying develop 2020. 12. 26. 14:02

[medium.com/mobile-app-development-publication/activities-or-fragments-a-little-sharing-c1ddc1041f79]

 

이걸 번역, 정리한다.

 


프래그먼트의 역사

 

2008년 안드로이드가 처음 나온 당시에는 엑티비티에 모든 뷰를 담고자 했다. 그리고 다른 스크린이 필요하면 그냥 액티비티를 한개 더 만드는 방법을 사용했다.

 

https://medium.com/mobile-app-development-publication/activities-or-fragments-a-little-sharing-c1ddc1041f79

 

 

그러다 안드로이드 3.0에서 프래그먼트가 소개되었다... 프래그먼트는 타블릿을 위한거였다, 타블릿은 화면이 폰보다 크기 때문에 문제였다.

 

타블릿은 크니까 한 액티비티 안에 프래그먼트가 두개 들어올 수 있는다. 그에 반해 폰은 한 액티비티에 프래그먼트가 한개만 들어올 수 있다. 대신에 폰은 프래그먼트를 스왑 인 , 아웃 할수 있다.

 

프래그먼트가 소개된후, 폰에서도 사람들은 많이 사용했다. 

 


프래그먼트는 액티비티 처럼 라이프 사이클을 갖는다.

 

모바일 개발에서 가장 큰 도전 과제는 (특히 안드로이드), 상태 복원이다. 예를 들면 앱이 다시 열릴때 상태가 복원되거나, 시스템이 죽었다 열릴때 다시 복원되는 등. 그래서 라이프 사이클의 관리가 복잡할 수 있다.

 

 

추가로 더 말하면, 디바이스를 회전하는 간단한 변화 조차, 프래그먼트는 파괴되었다가 다시 복원될것이다. 예를 들면 네트워크 요청이 디바이스가 회전하는 동안 완료될 수  있지 않는가?

 

이러한 회전의 고통을 없애기 위해, retainInstance라는 기능의 이름이 있다. [https://stackoverflow.com/a/11318942/3286489]

Navigation Drawer

 

흠 이후에는 디자인 적인 이유로, 네비게이션 드로어를 사용할때 문제가 있다하는데,

uxmovement.com/mobile/why-mobile-menus-belong-at-the-bottom-of-the-screen/

 

Why Mobile Menus Belong at the Bottom of the Screen

The way you use your mobile phone can affect your brain. A research study has found that daily mobile phone users have a larger somatosensory cortex.

uxmovement.com

대충 내용은 , 엄지손가락이 도달할 수 있는 범위가 아래쪽이다 이거임, 왼쪽 내비게이션 드로어가 아닌게 문제인듯.

 


BottomBar Navigation

내비게이션 드로어의 단점으로 바텀바 네비게이션이 나왔다.

 

이걸로 바텀바가 항상 보여야하므로, 안드로이드 플랫폼에서는, 액티비티 액티비티 교환이 페이지 변환에서 사용할 수 없게 되었다. (우리가 바텀바를 모양을 지저분하게 할 생각이 아니면, 액티비티를 바꾸면 자꾸 바텀바가 사라졌다, 생겼다 하는 문제 떄문에 그런거 같다.)

 

그러므로 가능한 방법은 프래그먼트 - 프래그먼트 전환이다. 또는 뷰 - 뷰 전환, 하지만 너무 많은 뷰를 관리하는 것은 메모리 문제가 있을 수 있다.