이번 포스팅 시리즈는 Fragment입니다.
쓸줄 아는것괘 왜 쓰는지 안는것은 천지차이라고들 하는데,
저는 쓸줄만 알았던거 같아 공부한것을 정리겸 포스팅을 작성해보게 되었습니다.
Fragment (1) - Introduce
1. Fragment vs Activity
저는 Fragement에 대해 장황하게 설명하기보단, 비슷한 역할을 수행하는 Activity와의 비교가 더 이해해 도움이 되었기에,
서두로 간략히 서술해 보도록 하겠습니다.
ㄱ. 독립성
Activity는 사용자와 앱이 상호작용 하는 진입점이여서 Application의 필수 요소이다.
Fragment는 화면의 일부 또는 전체를 구성하는 객체이다. 그렇기에 Fragment는 스스로 독립적으로 존재할 수 없고 필수요소는 아니다.
ㄴ. 퍼포먼스
Acitivity는 Fragment에 비해 무겁기 때문에 액티비티 Stack을 쌓아두기보단 백스택에서 Fragment를 관리하는것이 효율적이다.
ㄷ. 데이터 공유
Acitivity설계 때문에 데이터 공유는 일반적으로 Intent만으로 이루어져서 비교적 퍼포먼스가 떨어진다. (리눅스 커널 레벨에서 프로세스간 통신으로 이루어진다)
반면, Fragment는 Acitivity(또는 fragment)내에서 이루어지기 때문에 intent를 통한 전달보다는 퍼포먼스가 좋다.
ㄹ. 재사용성
Fragment의 재사용성이 월등히 높다. 화면의 일부를 Fragment로 구현해놓는다면 필요시에 호출만 하면 되기 때문이다.
ㅁ. 수명주기
Fragment는 종속적인 특징 때문에 메모리 할당, 호출, 가시화등의 생명주기가 추가되어 Activity보단 조금 복잡한 수명주기를 가지고 있다.
ㅂ. UI/UX의 유연성
Fragment가 정의한 UI 모듈은 태블릿 디자인에서는 하나의 액티비티로 조합될 수 있고, 핸드셋 디자인에서는 분리시킬수도 있다. UI가 Acitivity로 구성되었다면 불가능한 작업이다.
2. 수명주기
주렁주렁 많다고 생각될 수 있는데, 필수적으로 구현해야할 생명주기 메소드는 단 2개입니다.
기타 모든 항목에 대해 자세히 알고싶다면, 여기를 참조해 주세요.
ㄱ. onCreate()
- Fragment 생성시에 호출됩니다.
ㄴ. onCreateView()
- Fragment가 view를 그리기 전 호출됩니다. Fragment Layout의 Root입니다.
- 프레그먼트에 맞는 UI를 그리기 위해선 반드시 메서드에서 View를 반환해야 합니다.
3. 생성하기
추가적인 설명없이 스크린샷으로도 설명이 될 만큼 간단합니다.
아래 스크린샷과 같은 순서로 진행해 주시면 됩니다.
원하는 디렉토리에서 우클릭해 위의 메뉴을 타고 타고 클릭해주면 됩니다.
Fragment의 이름과 사용할 언어를 설정해 주고, Finish버튼을 클릭합니다.
쨔잔. Fragment 생성이 완료되었습니다.
하지만, 뭔가 주렁주렁 많게 느껴집니다.
최소 메서드는 이 두개만 있으면 됩니다. 여타 변수는 이후에 필요할때 추가하면 됩니다.
Fragment introduce편은 이것으로 마지고, 다음엔 기초적인 구현과 배치에 대해 포스팅 해 보도록 하겠습니다.
참고 사이트
https://developer.android.com/guide/components/fragments?hl=ko
https://developer.android.com/guide/components/fragments?hl=ko#Lifecycle
'IDE & Framework > Android' 카테고리의 다른 글
[Kotlin]ActivityForResult 및 checkSelfPerission 을 permissionLauncher로 대체하기 (0) | 2021.12.19 |
---|---|
[Kotlin] Fragment (2) - 기초 예제 (0) | 2021.12.19 |
[Kotlin] WorkManager 사용해보기 (0) | 2021.11.09 |
[Kotiln] 실행아이콘이 없는, 런처가 없는 앱 만들기 (0) | 2021.11.02 |
[Kotlin] ContentResolver 기본 : 통화내역(Call log) 조회 (0) | 2021.11.02 |