Skip to content

2주차 미션 / 1조 박민우#13

Open
mwpark01 wants to merge 3 commits intoKonkuk-KUIT:mwpark01from
mwpark01:mwpark01/week2
Open

2주차 미션 / 1조 박민우#13
mwpark01 wants to merge 3 commits intoKonkuk-KUIT:mwpark01from
mwpark01:mwpark01/week2

Conversation

@mwpark01
Copy link
Copy Markdown

@mwpark01 mwpark01 commented Mar 25, 2026

1. 미션

  • 연락처 구현하기
  • 뉴스 화면 구현하기
    • 앱 아이콘
    • 상단 카테고리
    • 기사 이미지
    • 기사본문(이미지 오른쪽 부분)
    • 카테고리
    • 기사

2. 구현에 대한 설명

1. 연락처

  • 데이터 모델링

    • 이름, 전화번호, 이미지 리소스를 포함하는 별도의 Call 데이터 클래스를 정의했습니다.
    • 각 연락처 아이템을 callList 객체로 생성하여 리스트 형태로 관리했습니다.
  • LazyColumn을 통한 성능 최적화

    • 대량의 연락처 데이터를 효율적으로 렌더링하기 위해 LazyColumn을 사용했습니다.
    • items(callList)를 활용해 반복되는 UI 컴포넌트를 동적으로 생성했습니다.
  • 구분선

    • 각 연락처 항목 하단에 HorizontalDivider(1.dp)를 배치하여 항목 간 경계를 나눴습니다.

2. 뉴스

  • 데이터 모델링

    • 언론사 정보를 담은 News 클래스와 이를 포함하는 기사 정보 Article 클래스를 분리하여 설계했습니다.
    • articlescategories 리스트를 생성하여 기사들과 기사의 카테고리를 표시하도록 했습니다.
  • LazyRow, LazyColumn을 통한 성능 최적화

    • LazyRow (카테고리) : "All", "Sports" 등의 카테고리를 가로 스크롤로 배치하여 다양한 카테고리를 제공합니다.
    • LazyColumn (뉴스 기사) : 세로 스크롤을 통해 많은 양의 뉴스 기사 리스트를 성능 저하 없이 렌더링하도록 했습니다.
  • UI 효과 및 배치

    • 텍스트 그림자(Shadow) : Latest에 Shadow를 사용하여 그림자 효과를 내었습니다.
    • 중첩 레이아웃 : Row 안에 Column을 중첩하여 이미지와 기사 본문이 나란히 배치되는 뉴스 피드를 완성했습니다.

3. 스크린샷 & 실행영상


4. 기타

.padding(24.dp)
.fillMaxSize()
) {
Row(
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

탑바 부분과 스크롤되는 콘텐트 부분을 가독성과 유지 보수를 위해 컴포저블 함수로 분리하는 것이 좋습니다!

modifier = Modifier
.windowInsetsPadding(WindowInsets.safeDrawing)
.padding(24.dp)
.fillMaxSize()
Copy link
Copy Markdown

@1hyok 1hyok Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

패딩, 필맥스 사이즈의 순서가 어떻든 이 상황에서는 결과가 같습니다. 하지만 논리적인 흐름이 자연스럽게 읽히도록 필맥스사이즈를 먼저 적용하는 것이 일반적입니다. 코틀린이 선언형 프로그래밍인 만큼 꽉 찬 화면에 패딩을 적용하겠다라고 하는 의도대로 순서를 적용하는 것이 좋습니다!

) {
items(articles) { article ->
Row(
modifier = Modifier.height(96.dp)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

하드 코딩을 피하기 위한 방법 중 하나로 IntrinsicSize.Min를 쓰는 것이 맞습니다. 하지만 현재 피그마 디자인 상 간격이 다 다르기 때문에 스페이스 비트윈 대신 스페이서를 적용하면 하드 코딩 문제가 생기지 않습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants