[Android] ConstraintLayout GuideLine, Barrier

kldaji·2021년 8월 31일
0

서론

ConstraintLayout 을 사용하면 다양한 기능을 제공해준다는 것을 이미 알고 있었지만, 실제로 GuideLineBarrier 를 사용해보니 정말 유용한 기능이라는 것을 다시 한번 깨닫게 되어 포스팅을 하게 되었다.

본론

GuideLineBarrier 을 효율적으로 사용하기 위해선 이 둘의 차이를 알아야한다.
본격적으로 둘의 차이점을 알아보기에 앞서 GuideLine 은 정적인 선이고, Barrier 은 동적인 선이라는 개념을 인식하고 있자.
먼저 GuideLine 에 대해 알아보자. 필자가 정의한 GuideLine 은 정적인 선으로 dp 값을 정하거나 percentage 를 설정해 고정된 위치에 할당되어 다른 View 들에 대한 기준을 잡아주는 선이라고 이해하면 될 것이다. 필자가 주로 GuideLine 을 설정하게 되는 경우는 여러 개의 뷰들이 동일한 margin 값을 가질 때 GuideLine 하나로 margin 문제를 해결할 때 자주 쓴다.
Barrier 은 필자가 동적인 선이라고 정의를 내렸는데, Barrier 의 속성에는 Barrier 를 참조하는 View 들을 담는 app:constraint_referenced_ids 라는 속성이 있듯이 참조하는 View 의 크기에 따라 위치가 달라진다. 그렇기 때문에 ViewView 사이에 Barrier 를 두면 View 들의 상대적인 위치를 좀 더 효율적으로 관리할 수 있다.

결론

필자는 GuideLineBarrier 의 용도를 실제로 사용해보면서 어떤 상황에서 써야할지에 대한 감을 잡았는데, 간략히 그 당시 겪었던 상황에 대해 얘기를 나누고자 한다.
GuideLine 은 본론에서도 언급했듯이 여러 View 들이 동일한 margin 값을 가질 때 GuideLine 을 추가해 코드의 가독성 또한 높일 수 있었고, Barrier 의 경우 GuideLine 과 차이점을 크게 못느꼈었지만, 가장 크게 느꼈던 경우는 GuideLine 은 정적인 선으로 항상 같은 곳에만 위치하게 되어 크기가 다른 기기에 대해 다른 위치를 제공해주어 ViewView 사이의 상대적인 위치를 나타낼 때 한계가 있어보였고, 이를 Barrier 로 해결하게 되었다. Barrier 은 동적인 선으로 참조하고자 하는 View 들을 참조 속성에 추가해 어느 기기에서든지 동일한 위치에 View 를 둘 수 있게 되었다.
분명 이 둘의 역할은 정적, 동적이 아닌 좀 더 깊은 의미가 있겠지만, 지금은 이 정도의 이해도만 있어도 충분하다고 판단되어진다.

오늘은 ConstraintLayoutGuideLineBarrier 의 차이점에 대해 알게 되었으니 오늘도 필자는 성장했다.

reference

profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.

0개의 댓글