반응형 개발일지6 [오늘의 코드 조각] [2-4] 앱의 지도를 그리다: Compose Navigation 기초 안녕하세요, '생각하는 개발자'입니다.지난 시간에는 LazyColumn으로 멋진 목록을 만들어봤습니다. 하지만 목록의 아이템을 클릭해도 아무 일도 일어나지 않는다면 반쪽짜리 앱이겠죠?사용자가 버튼을 눌렀을 때 다른 화면으로 이동하고, 다시 뒤로 돌아오는 기능을 구현하려면 **Navigation(내비게이션)**이라는 개념이 필요합니다. Compose에서는 이 '화면의 지도'를 어떻게 그리는지 핵심 3요소를 통해 알아보겠습니다.1. Compose 내비게이션의 3총사Compose에서 화면 이동을 구현하려면 딱 세 가지만 기억하면 됩니다.NavController: "운전사"입니다. 화면 이동을 명령(Maps)하고 뒤로 가기를 처리합니다.NavHost: "내비게이션이 보여줄 공간"입니다. 현재 어떤 화면을 보여줄.. 2025. 12. 23. [오늘의 코드 조각] [2-3] 더 긴 목록 보여주기: 리사이클러뷰 대신 LazyColumn 안녕하세요, '생각하는 개발자'입니다.인스타그램의 피드, 카카오톡의 채팅 목록, 유튜브의 동영상 리스트... 우리가 매일 쓰는 앱들은 수많은 데이터를 목록 형태로 보여줍니다.과거 안드로이드에서는 이런 목록을 만들기 위해 Adapter, ViewHolder 등 복잡한 코드를 잔뜩 작성해야 했습니다. 하지만 Jetpack Compose에서는 이름부터 재미있는 LazyColumn 하나로 이 모든 과정을 혁신적으로 줄였습니다. 1. 왜 그냥 Column이 아니라 'Lazy'인가요?Column은 안에 100개의 아이템이 있다면, 화면에 보이든 안 보이든 100개를 한꺼번에 다 그려버립니다. 데이터가 많아지면 앱이 버벅거리겠죠?**LazyColumn**은 이름처럼 '게으르게' 작동합니다. 지금 화면에 보이는 아이템.. 2025. 12. 22. [오늘의 코드 조각] [2-2] Compose 핵심 원리: 상태(State)와 동적 UI 안녕하세요, '생각하는 개발자'입니다.지난 포스팅에서는 Text, Button 등을 Column과 Row에 배치하여 화면의 뼈대를 만드는 법을 배웠습니다. 하지만 지금까지 만든 화면은 멈춰있는 그림과 같았죠. 버튼을 눌러도 아무런 반응이 없었습니다.이번 시간에는 Compose 앱에 생명을 불어넣는 마법, 바로 **상태(State)**에 대해 배울 겁니다. 이 개념을 이해해야만 사용자의 행동에 따라 숫자가 올라가고, 글자가 바뀌는 '진짜 앱'을 만들 수 있습니다.1. UI가 스스로 변하는 원리: 재구성(Recomposition)기존 안드로이드(XML) 방식에서는 버튼을 누르면 우리가 직접 "텍스트뷰의 글자를 '짠'으로 바꿔라!"라고 명령해야 했습니다. (textView.text = "짠")하지만 Compo.. 2025. 12. 21. [오늘의 코드 조각] [1-3] 코틀린 객체지향 프로그래밍 안녕하세요, '생각하는 개발자'입니다.지난 시간에는 변수, 함수 등 코드를 구성하는 가장 작은 단위들을 배웠습니다. 하지만 앱이 복잡해지면 수많은 변수와 함수들이 뒤죽박죽 섞여 관리하기 어려워지겠죠.그래서 우리는 **객체지향 프로그래밍(Object-Oriented Programming, OOP)**이라는 강력한 설계 방법을 사용합니다. 말이 조금 어렵게 들리지만, 사실은 **'세상의 사물을 흉내 내어 코드를 정리하는 방법'**이라고 생각하면 쉽습니다. 이 개념을 이해하면 훨씬 더 체계적이고 재사용하기 좋은 코드를 작성할 수 있습니다. 3.1. 클래스와 객체: 붕어빵 틀과 붕어빵OOP의 가장 핵심적인 두 가지 개념은 바로 **클래스(Class)**와 **객체(Object)**입니다.클래스(Class): 객.. 2025. 8. 26. [오늘의 코드 조각] [1-2] Jetpack Compose를 위한 코틀린 핵심 문법 안녕하세요, '생각하는 개발자'입니다.첫 번째 포스팅에서 "Hello, Compose!"를 성공적으로 화면에 띄워보았습니다. 하지만 아직은 우리가 직접 코드를 작성했다기보다, 안드로이드 스튜디오가 만들어준 코드를 실행해 본 것에 가깝죠.이제는 우리 손으로 직접 앱의 동작을 만들기 위해, 안드로이드의 공식 언어인 **코틀린(Kotlin)**과 친해져야 합니다. 마치 외국인 친구와 대화하기 위해 기본적인 단어와 문법을 배우는 것과 같아요. 코틀린의 모든 것을 알 필요는 없습니다. 딱 Jetpack Compose를 다루는 데 필요한, 가장 중요하고 실용적인 문법만 골라서 알아보겠습니다. 2.1. 변수와 함수: 데이터와 행동의 기본프로그래밍은 결국 '데이터'를 '어떤 행동'으로 처리하는 과정입니다. 코틀린에서는.. 2025. 8. 25. [오늘의 코드 조각] [1-1] Modern Android 개발 첫걸음 안녕하세요, '생각하는 개발자'입니다.오늘부터 '오늘의 코드 조각: 개발자의 성장 일지'라는 이름으로, 저의 개발 학습 여정을 기록하고 공유하고자 합니다. 이 블로그의 첫 번째 큰 주제는 바로 **'안드로이드 앱 개발'**입니다. 단순히 기능을 따라 만드는 것을 넘어, 왜 그렇게 만들어야 하는지 함께 고민하고 성장하는 공간이 되었으면 합니다.그 위대한 여정의 첫걸음, 지금 바로 시작하겠습니다. 1.1. 왜 '안드로드로 시작하는가?세상에는 수많은 프로그래밍 분야가 있는데, 왜 우리는 '안드로이드 앱 개발'로 이 여정을 시작할까요? 몇 가지 중요한 이유가 있습니다. 가장 확실한 성취감: 내가 작성한 코드가 눈에 보이지 않는 서버에서 돌아가는 것과, 지금 내 손에 들린 스마트폰 화면에서 바로 터치하고 움직여보.. 2025. 8. 24. 이전 1 다음 반응형