[TIL]Android UI/UX

mandoofu·2024년 9월 4일

안드로이드

목록 보기
4/20
post-thumbnail

  • View(UI Component)

    • Component : UI를 이루는 구성요소의 최상위 클래스
    • UI화면을 구성(ViewGroup + Widget)하는 모든 공통적인 행위와 상태
    • Widget
      • 사용자와 직접 상호작용(event)하도록 만들어진 View들을 총칭
  • ViewGroup(UI Container)

    • 위젯들을 배치할 수 있는 ViewGroup을 의미
    • 중복 배치 가능
    • Direct ViewGroup
      • LinearLayout
      • RelativeLayout
      • FrameLayout
      • ConsraintLayout
    • Atomic Component(Widget)
      • 사용자가 사용하는 화면에 대응하는 최소한의 위젯
  • Compound Component(Widget)

    • ViewGroup과 Widget들이 모여 복합적인 화면을 구성하는 복합 위젯
    • DatePicker, CalendarView,TabLayout, ViewPager2, RecyclerView 등
    • 표준 이벤트(View에 선언된 Listener)가 아닌 복합 위젯의 전용 이벤트가 반드시 존재
  • Custom Component(Widget)

    • 개발자가 직접 기본의 View를 상속받아 만든 위젯을 의미
    • 중복 배치 가능(ViewGroup 에 ViewGroup 을 배치)
    • 확장 위젯은 개발자가 직접 이벤트 및 전용 속성을 개발 가능

UI Layout 계층이 복잡할 수록 메모리 소모가 심하고 복잡한 퍼포먼스가 현저히 떨어짐
ConstraintLayout 등장 후 안스 UI 편집기를 제대로 활용 가능해짐

ConstraintLayout

  • Constraint Types

    • Relative Positioning(상대 위치)
    • Margins(여백)
    • Centering Positioning (중앙 위치)
    • Circular Positioning (원형 위치)
    • Visibility Behavior (가시성 동작)
    • Dimension Constraint (크기 제약)
    • Chains(View의 [수평/수직] 방향으로 연결된 속성)
    • Virtual Helpers Objects(뷰 배치에 도움이 되는 가상의 객체)
    • Optimizer (제약 최적화)
    • Baseline
      • layout_constraintBaseline_toBaselineOf=“@id/fooView or parent”
      • fooView의 BaseLine 과 현재 요소의 베이스 라인을 맞춤
      • 안드로이드는 Widget 마다 base line이 다름
  • Margin Visibility Behavior Constraint

    • visible
    • invisible (화면에 보이진 않지만 사라졌던 위치에 살이있음)
    • gone (화면에 보이지 않고 위치 자체가 없음)
  • Virtual Helpers Objects

    • 단말기 화면에는 보이지 않으나 화면 구성에 도움을 주는 객체
    • Guideline
      • View들의 화면 배치를 도와주는 기준이 되는 가상의선(0dp)
    • Barrier
      • View들이 해당 경계선을 넘어가지 못하도록 하는 장벽의 역할을 하는 경계선
        • app:constraint_referenced_ids : barrier에 참여 할 View의 id value들
        • app:barrierDirection : start, end, top , bottom
  • ConstraintLayout Flow

    • VirtualLayout이므로 ViewGroup와 별개
    • Chain의 간소화가 목적

0개의 댓글