본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
패스트캠퍼스 → https://fastcampus.info/4n8ztzq
1. 학습 인증샷
a. 공부 시작 시간
b. 공부 종료 시간
c. 수강 인증 사진
d. 학습 인증샷
e. 학습 통계 완강률 캡쳐 사진
2. 학습 후기
오늘도 어제에 이어 ConstraintLayout에 대해 추가적으로 학습하였습니다.
우선 chain과 barrier입니다.
chain의 경우는 우리가 일상생활에서 쓰는 느낌 그대로 받아들이니 이해하기 편했습니다. 여러가지의 컴포넌트들을 수평 / 수직 으로 일렬로 묶는 것입니다. 묶인 컴포넌트들의 등분 간격이나 중앙 정렬, 시작과 끝 정렬 등을 한 번에 설정할 수 있습니다. 강의 내용에서는 ConstraintSet 을 이용하여 createHorizontalChain() / createVerticalChain() 메서드를 통해 동적으로 체인을 구성할 수 있어, 런타임 시에도 유연하게 레이아웃을 변경할 수 있었습니다. 또 조금 찾아보니 역시 XML 속성으로도 ContraintLayout을 설정할 수 있었습니다만.. 안드로이드 시작을 compose로 한 저는.. 그냥 강의 내용에 나온 내용 쓰려고합니다. ㅎㅎ
다음으로 barrier입니다. Barrier는 말 그대로 “장벽”을 만드는 개념으로, 여러 뷰 중 가장 바깥쪽(끝)에 있는 뷰들의 경계선을 기준으로 삼아 다른 요소를 정렬할 때 씁니다. 예를 들어, 세 개의 버튼 중에서 가장 오른쪽에 붙어 있는 버튼 끝 지점을 기준으로 텍스트를 붙이고 싶다면, Barrier를 만들어 barrierDirection="end"로 설정한 뒤 constraint_referenced_ids에 버튼들의 아이디를 나열하면 됩니다. 이러면 버튼들의 너비가 가변적이어도 Barrier는 항상 가장 멀리 떨어진 끝을 가리키니까, 그 위치에 딱 맞춰 텍스트나 다른 뷰를 배치할 수 있는 것이죠.
Canvas는 커스텀 뷰에서 직접 그리기(드로잉)를 할 때 사용하는 객체로, View의 onDraw(canvas: Canvas) 콜백 안에서 호출됩니다.
으음.. 제 iOS 개발 때를 생각해보면 사실 직접 그리는 경우는 굉장히 드물었어서 이 부분은 가볍게 들었답니다 ㅎ.ㅎ
그나ㅏ 이 부분에서 인상적인 것은 비트맵 캐싱(BitmapCache)을 활용해 반복 렌더링 비용 절감한다는 부분이었네요.
오늘 강의에서 좋았던 부분은 chain, barrier를 활용하면 과도한 중첩코드를 피할 수 있을 것 같아 복잡한 레이아웃을 배치하게 될 때 유용하게 쓰일 것 같다! 입니다.
'Android' 카테고리의 다른 글
- GCD
- https
- alamofire
- ios
- 자료구조
- realm
- 패스트캠퍼스후기
- UIKit
- CPU
- 패스트캠퍼스
- compose
- 비대칭키
- swift
- 안드로이드
- 위젯
- 오공완
- 운영체제
- 네트워크
- SwiftUI
- Android
- jetpack compose
- 환급챌린지
- 앱개발
- 대칭키
- 직장인자기계발
- skip.tools
- AOS
- http
- 습관형성
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |