JetpackCompose (6)


Jetpack Compose 의 기본 개념 (3)

Jetpack Compose 의 기본 개념 (3)

[Android] Activity 생명주기와 Jetpack Compose 생명주기 완벽 비교 정리안녕하세요! 안드로이드 개발을 하다 보면 가장 먼저 마주치는 벽이자, 끝까지 우리를 괴롭히는 게 바로 '생명주기(Lifecycle)' 죠.최근에는 기존 XML 방식에서 Jetpack Compose로 넘어가는 추세라, 이 두 생명주기가 어떻게 다른지 헷갈려 하시는 분들이 많더라고요. 그래서 오늘은 Activity와 Compose의 생명주기를 한눈에 비교해 보는 시간을 가져보려 합니다.1. 전통의 강자: Activity 생명주기 (Activity Lifecycle)먼저 우리가 흔히 보던 Activity의 생명주기입니다. 액티비티는 사용자가 앱을 열고, 다른 앱으로 전환하고, 다시 돌아오는 모든 과정에 관여합니다...

Jetpack Compose 의 기본 개념 (2)

Jetpack Compose 의 기본 개념 (2)

💻 이미지로 배우는 중첩(Nesting) 구조이미지 예시를 보면 Column 안에 여러 개의 Row가 들어가 있는 중첩 구조인 것을 알 수 있습니다. 이것이 Compose UI를 구성하는 가장 보편적인 방식입니다.1. 전체 틀은 Column (파란색)가장 바깥쪽을 Column으로 감싸서 전체적인 레이아웃이 세로로 흐르게 만들었습니다.modifier = Modifier.fillMaxWidth().padding(top = 16.dp): 이 설정 덕분에 카드가 화면 가로 전체를 꽉 채우고 상단에 여유 공간(Padding)을 가지게 됩니다.2. 세부 줄은 Row (빨간색)Column 내부에서 '본명', '생일', '설명'과 같은 각 항목은 Row를 통해 가로로 정렬됩니다.verticalAlignment = A..

Jetpack Compose 의 기본 개념 (1)

Jetpack Compose 의 기본 개념 (1)

안녕하세요! 안드로이드 개발 생태계가 '명령형'에서 '선언형'으로 완전히 탈바꿈했습니다. 단순히 도구가 바뀐 것이 아니라 UI를 대하는 철학 자체가 달라진 것인데요. 구글이 제시한 차세대 UI 빌드 도구, Jetpack Compose의 핵심을 파헤쳐 보겠습니다.1. 시장의 흐름: Compose는 이미 대세입니다.기술 도입을 고민하고 계신가요? 시장의 수치가 그 답을 말해주고 있습니다.압도적인 성장세: 2021년 정식 출시 이후, 3년 만에 안드로이드 개발 비중이 20%에서 70%로 급격히 상승했습니다.검증된 안정성: 구글 플레이스토어를 필두로 X(트위터), 에어비앤비 등 고도의 안정성을 요구하는 글로벌 서비스들이 이미 메인 UI 도구로 채택하여 운영 중입니다.커리어의 필수 조건: 이제 신규 프로젝트의 ..

[Android] QWER 포토 위젯 개발기 (Jetpack Compose & Glance)

[Android] QWER 포토 위젯 개발기 (Jetpack Compose & Glance)

함께 달리는 기쁨: QWER이 보여준 노력의 힘1. '함께 성장한다'는 믿음 처음 QWER을 마주했을 때 제 마음을 움직인 건 완벽한 무대보다 그 이면의 성장 과정이었습니다.각자의 위치에서 이미 성공을 맛보았던 멤버들이, 낯선 악기를 손에 쥐고 손끝에 굳은살이 박이도록 연습하는 과정을 가감 없이 공유하는 모습에서 저는 큰 전율을 느꼈습니다. 2. 왜 '위젯'이었는가? (Problem & Goal)팬들은 좋아하는 아티스트의 사진을 수집하고 소장하고 싶어 한다는건 누구나 아는 사실입니다. 하지만 갤러리에 잠들어 있는 수백 장의 사진에 대해서 접근성을 높이고 좀 더 가까이 갈 수 있는 방법이 없을까에 대해서 고민을 해봤습니다. "저장된 데이터로서의 사진이 아니라, 내 일상 속에 자연스럽게 스며든 아티스트의 모..

[Jetpack Compose] 리스트를 효율적으로! LazyColumn 완벽 정리

[Jetpack Compose] 리스트를 효율적으로! LazyColumn 완벽 정리

안녕하세요! 오늘은 Jetpack Compose에서 데이터를 리스트 형태로 보여줄 때 필수적으로 사용하는 LazyColumn에 대해 알아보겠습니다.기존 안드로이드 개발(XML)에서 리스트를 만들려면 RecyclerView, Adapter, ViewHolder 등 설정해야 할 것이 정말 많았죠? Compose에서는 LazyColumn 하나로 이 모든 과정을 매우 직관적이고 간단하게 해결할 수 있습니다. 1. LazyColumn이란?LazyColumn은 화면에 보이는 아이템만 렌더링하는 컴포넌트입니다.만약 1,000개의 아이템이 있는 리스트를 한꺼번에 생성한다면 메모리 부하가 엄청나겠죠? LazyColumn은 사용자가 스크롤을 내려서 화면에 보여질 때만 해당 아이템을 생성하기 때문에 성능 면에서 매우 효율적..

[Jetpack Compose] remember와 MutableState 완벽 이해하기

[Jetpack Compose] remember와 MutableState 완벽 이해하기

안녕하세요! 화면의 상태 를 다룰 때 필수적으로 사용하는remember와 MutableState에 대해 알아보겠습니다.1. 왜 그냥 변수로는 안 될까요?전통적인 XML 방식과 달리, 컴포즈는 데이터가 변하면 함수를 다시 실행(Recomposition)하여 화면을 그립니다. 하지만 일반적인 변수를 선언하면 함수가 다시 호출될 때마다 값이 초기화되어 버립니다.@Composablefun Counter() { var count = 0 // 리콤포지션이 일어날 때마다 다시 0이 됩니다! Button(onClick = { count++ }) { Text("클릭 횟수: $count") }}함수가 재생성되면서 count를 다시 0으로 만들기 때문이죠. 이 문제를 해결하기 위해 필요..