[안드로이드] 패스트캠퍼스 챌린지 13일차!!
들어가며
어제는 로직을 함께 탐구 해보았다면 오늘은 layout 입니다!! 솔찍히 안드로이드는 프론트 분야라서 코드도 코드이지만 layout울 얼마나 가독성 좋게 그런걸 보통 UI/UX라고도 합니다만 얼마나 가독성 좋게 만드는냐 얼마나 느리지 않고 최적화되게 만드느냐에 따라 사용자의 만족감과 어플 이탈률을 감소 시킬 수 있습니다!
안드로이드 개발자가 되기엔 너무 힘든 일들이 많죠.. UI / UX의 기본 구축 방법도 알아야 되고 가능하면 포토샵까지 할 줄 알아야 할 뿐더러 안드로이드 기본 문법인 Kotlin / xml 등 많은걸 알아야 합니다! 그렇지만 이 모든 것들을 활용해서 어플을 만든다는 것이 즐겁고 행복하다면 안드로이드 개발자가 되어야지 않을까요?!?!?!?
바로 layout에 대해서 공부해 봅시다!
ConstraintLayout
constraintLayout 은 기존에 있는 ReletiveLayout 과 매우 비슷한 형식을 가지고 있지만 constraintLayout만의 특색을 가지고 있는 layout입니다
저는 이 constraintLayout을 알기전에는 linearLayout 과 ReletiveLayout 을 사용해서 layout을 구축 해보기도 했는데요! 그러기에는 많은 단점 들이 있습니다
- view 간의 chain
제가 생각한 constraintLayout은 chain 시스템이라고 생각해요!!
<TextView
app:layout_constraintStart_toStartFrom="parent"
/>
다음 문법이 도대체 뭔가... 처음보는 속성에 값이라서 뭐지.. 하실수도 있습니다!! 위 코드는 TextView의 왼쪽 면이 부모 view의 왼쪽 면과 chain화 되어라! 뜻입니다!
그래서 chain이 뭔데... 라고 하시는 분들을 위해 간략하게 설명 하자면 부모 레이아웃이 늘어나거나 줄어들면 chain화 되어있는 view들도 같이 영향을 받습니다! 이게 왜 중요하냐면 스마트폰을 사용하시는 분들이 모든 앱을 세로로만 세워서 사용하지 않고 가로로도 사용할 수 있고 또 작은 폰과 큰폰 더 나아가면 태블리 까지 사용하기 때문에 유연하게 view가 배치 되어야 합니다 그렇지 않으면 UI가 찌그러지고 사용자들이 되게 불편해 할 수도 있다고 생각들어요!
생각해보면... 확실히 카카오에서 UI가 조금이라도 깨지면 기사화 되는 것 처럼? UI에 있어 버그가 난다는 것은 사용자가 되게 불편해 질 수 있다는 것입니다!
layout에 linearLayout 을 난무하면 좋지 않다?
<LinearLayout
android:layout_orientation="vertical">
<Textview
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<Textview
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
위 코드는 linearLayout을 사용해서 Textview를 수직 정렬해 놓은 것입니다! 이런 구조를 자주 사용한다면 하나의 activity_layout에 여러개의 linearLayout이 생길 수도 있습니다!!
아마 Layout태그가 많으면 많을 수록 어플 로딩 속도가 느리다는 것으로 알고 있습니다 이것을 ConstraintLayout을 사용하면 어떻게 될까요?!
<TextView
android:id="@+id/top"
app:layout_constraintStart_toStartFrom="parent"
app:layout_constraintEnd_toEndFrom="parent"
/>
<TextView
android:id="@+id/top"
app:layout_constraintStart_toStartFrom="parent"
app:layout_constraintEnd_toEndFrom="parent"
app:layout_constraintTop_toBottomFrom="@id/top"
/>
위 LinearLayout을 간략하게 ConstraintLayout으로 변환 시켜 보았습니다 여기 보니 어? LinearLayout으로 TextView를 감싸지 않은 것을 볼 숭 있습니다 이렇게 텍스트 뷰를 감싸지 않고 layout_constraintStart_toStartFrom 이라는 속성을 사용하여 TextView간의 체인을 형성하게 함으로써 수직 정렬을 시킬 수 있는 것입니다.
요즘 layout트랜트가 LiearLayout 에서 ConstraintLayout으로 넘어 간다하니 더 깊히 공부 해볼 필요가 있을 것 같습니다!
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발#패스트캠퍼스후기#30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.