TIL 12: iOS에 Auto Layout이 있다면, Android에는 ConstraintLayout이 있다!

TL;DR

  • 안드로이드에서 ConstraintLayout을 사용하면,
    iOS의 Auto Layout 컨셉으로 레이아웃을 구성할 수 있다.

iOS 개발자에게 반가운 안드로이드의 ConstraintLayout

iOS 개발자라면 스토리보드를 사용하든 코드로 작성하든 Auto Layout을 이용해 뷰를 구성한 경험이 있을 것이다. 제약 조건(Constraint)을 이렇게 저렇게 (잘) 걸어두면, 화면의 변화에 따라 뷰가 자동으로 배치되고 크기가 변하게 할 수 있다. 물론, 잘 설정한다는 가정이 필요하다. 잘못 설정하면 레이아웃이 엄청 깨지는 것을 경험할 수 있으므로, 제약 조건에 대한 이해가 확실해야 한다.

아무튼 익숙해진다면, 아주 편리하게 뷰를 배치할 수 있을 것이다. 현재 회사에서 스토리보드를 사용하지 않고, 코드로만 뷰를 작성하는 프로젝트를 많이 하고 있기 때문에 정말 유용하게 사용하고 있다. (기존 레거시 코드는 좌표와 크기를 일일이 계산하면서 뷰를 작성해 유지보수가 지옥이다. 😇 특히, 테이블 뷰 셀… ☠️)

그러다 안드로이드 프로젝트를 진행하고 있는데, 옛날에 사용하던 RelativeLayout은 뭔가 되게 어설프다. 원하는 레이아웃을 깔끔하게 구성하기 어려웠다. 그러던 중에 우연히 ConstraintLayout을 알게 되었다.

이름을 보자마자 익숙한 단어가 보였다. Constraint라는 단어가 이름에 붙은 것부터 제약 조건을 이용해 레이아웃을 구성한다는 것을 유추할 수 있다. 그리고 직접 사용해보니 iOS의 Auto Layout가 매우 유사했다! 아주 반가웠고, 그 컨셉에 빠르게 적응할 수 있었다.

현재는 안드로이드 프로젝트에서도 유용하게 잘 사용하고 있다.
역시 익숙한 것이 좋은 것이여. 🙂

TIL 13: 안드로이드에서는 Image Asset Studio를 이용해 아이콘을 추가하자 TIL 11: 다중 비동기 완료 처리를 위한 dispatch_group