전체 글 8

GPT로 공부하기 - 가계부 만들기 4

이번에는 월변경 버튼을 구현해보고자 한다. 우선 지금 화면에 보여지는 달력정보를 State에 저장하고 이전/다음달 버튼을 클릭하게 되면 State를 업데이트한다.그리고 업데이트된 YearMonth로 달력을 다시 그릴것이다. 우선 현재 정보를 state에 저장해야한다.val currentYearMonth = remember { mutableStateOf(YearMonth.now()) } mutableStateOf는 값을 상태(state)로 감싸는 코드이다.compose는 선언형 UI 시스템으로, 상태가 바뀌면 관련된 UI를 자동으로 다시 그린다. 또한 remember는 composable이 다시 그려질때도 이전 state값을 기억하는 역할을 한다. 만약 remember 없이 사용할 경우, composab..

공부/Android 2025.04.30

데이터 클래스 (Data Class)

데이터 클래스는 toString(), hashCode(), equals(), copy()등의 메소드를 자동으로 만들어주는 클래스이다.기본적으로 데이터 클래스는 1. 상속받을 수 없다.데이터 클래스는 기본적으로 '값'을 다루는 단순한 객체를 만들기위함이다. 상속구조를 만들게 되면 단순 데이터라는 의도가 깨지게 되어 Kotlin에서는 이를 final class로 만들어 상속불가를 강제했다. 2. val 또는 var로 선언해야 한다.1번과 비슷하다. 데이터 클래스는 데이터를 보관하는 목적이다. 메서드나 동작 중심이 프로퍼티(property) 중심으로, 프로퍼티로 정의해야한다. 따라서 읽기 전용이면 val, 변경 가능한 경우 var로 선언한다. 3. abstract, open, sealed, inner를 붙일 ..

공부/Kotlin 2025.04.26

Kotlin 컬렉션

컬렉션Kotiln 표준 라이브러리에서는 기본 collection 타입인 List, Set, Map을 제공한다.또한 이들은 두가지 종류로 나뉘어지는데 불변(Immutable) 컬렉션과 가변(Mutable) 컬렉션이다. Java와 가장 큰 차이는 바로 이 읽기전용 컬렉션인 불변컬렉션이다. 불변컬렉션은 데이터를 읽을 수만 있고 수정이 불가능하다. 따라서 add(),remove()같은 메서드도 존재하지 않는다.Java에서도 불변처럼 만들 수는 있지만, 타입 시스템 차원에서는 가변과 불변이 구분되지 않는다. Java에서는 항상 수정 가능성을 내포하고있다. 반면 Kotiln은 아예 타입 차원에서 읽기전용과 수정가능을 명확하게 구분하고 있다. 변경 불가(Immutable) 컬렉션 생성 함수변경 가능(Mutable)..

공부/Kotlin 2025.04.26

GPT로 공부하기 - 가계부 만들기3

이번엔 CalenderScreen에 달력 UI와 각 날짜에 수입/지출을 보여주고 뒤로가기 버튼까지 만들어보자. 일단은 각 날짜에 들어갈 데이터는 명시적으로 작성할것이다. Compose에선 기본적으로 달력위젯이 없다고 한다.그래서 외부 라이브러리를 쓰거나 직접 만드는 방식으로 구현해야한다.일단 둘다 해보고 마음에 드는 방식으로 하려고한다. 우선 직접만드는 방식으로 해보자 작업은 CalenderScreen에서 이루어진다.@Composablefun CalenderScreen(navController : NavContoller){ ... }일단 CalenderScreen에서 navController를 받아야한다. navController는 화면간 이동을 관리한다. 다음으로 날짜에 대한 정보를 얻어야한다. 그 전..

공부/Android 2025.04.26

GPT로 공부하기 - 가계부 만들기2

이번엔 달력화면과 달력화면으로 넘어가는 버튼을 만들 예정이다. 우선 Navigation라이브러리를 추가해주어야한다. 원래는 intent라는 클래스를 이용한다고 하는대 여러 단점이 존재하여 그 단점을 보완한 JeckPack Navigation을 사용한다고 한다. intent에 대한건 나중에 따로 조사해보도록 하자. implementation("androidx.navigation:navigation-compose:2.7.7")build.gradle에 추가해주었다 2.8.9버전을 사용하라는 문구가 뜨긴하는대 gpt왈 안정적인 2.7.7 추천! 이라고 한다. 그리고 CalenderScreen을 만들어 임시로 달력화면을 구현하자 @Composablefun CalendarScreen() { Column( ..

공부/Android 2025.04.23

GPT로 공부하기 - 가계부 만들기1

일단 처음화면엔 이달의 수입, 지출등 중요한 부분을 요약하여 표시해주고 싶다. GPT가 바로 코드를 짜주었는대 하나씩 살펴봐야겠다 우선 HomeScreen 함수이다.@Composablefun HomeScreen() { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) ) { MonthlySummarySection(income = 2000000, expense = 1500000) Spacer(modifier = Modifier.height(24.dp)) RecentExpenseList( expenses = listOf("스타벅스 - ..

공부/Android 2025.04.17

GPT로 공부하기 - Android Studio1

Android앱을 하나 만들어 볼까 했는대, Android Studio는 물론 Kotlin에 대해 아무런 지식이 없기에 찍먹이라도 해볼까 하여 GPT한테 이것저것 물어보며 공부해보기로 했다. https://developer.android.com/studio?hl=ko Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android DevelopersAndroid Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.developer.android.com다운..

공부/Android 2025.04.15