-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/#34 시간 선택 페이지(2) 디자인을 구현한다 #36
Conversation
@@ -216,7 +216,7 @@ private fun HoursSection( | |||
private fun StoreBusinessDaysSection( | |||
onClick: (DayOfWeek) -> Unit = {}, | |||
week: Map<DayOfWeek, Boolean> = | |||
DayOfWeek.entries.associateWith { false }, | |||
DayOfWeek.values().associateWith { false }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DayOfWeek는 entries 가 아니라 values 로 접근해야 한다고 하네? 내 개발 환경에서 entries는 에러라고 나타나서 수정함.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
띠용, 내 IDE에선 이렇게 떠.
우리 코틀린 버전이 현재 1.9.0인데 코틀린 1.9부턴 values()
대신에 entries
를 권장하더라고.
내친 김에 왜 권장할까 이유도 좀 찾아봄.
이유는 둘의 동작 방식에 차이가 있는데
Enum.values()
동작 방식 - 새로운 가변 배열 반환
- 호출될 때마다 새로운 배열 생성 -> 제대로 사용하지 않을 시 성능 문제 발생 가능성
Array
로 반환함 ->List
로 변환해야 더 많은 컬렉션 Api 사용 가능- 가변이기 때문에 예상하지 못한 변경 가능 -> 버그 가능성
Enum.entries
동작 방식 - 상수 불변 리스트 반환
- 복사할 필요가 없어 더 빠르게 작동
List
라서 변환 없이 컬렉션 Api 사용 가능- 불변
따라서 entries 그대로 사용해도 될 듯 한데
1.9로 kotlin 버전 세팅되어있는지 확인해줄수 있어?
확인해봐도 안되고 warning이 아니라 error면 일단 그대로 푸쉬해야할듯..?
|
||
@OptIn(ExperimentalMaterial3Api::class) | ||
@Composable | ||
private fun HoursSection( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
종윤이 너가 사용한 HourSection 코드 가져와서 사용했어. 나중에 core 로 빼도 될거 같네.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
생각해보니 그렇네.
빼도 괜찮을듯 👍
Column( | ||
modifier = modifier.fillMaxWidth(), | ||
) { | ||
TextTitle( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 screen에서는 isRequired 와 description이 필요해서 값을 넣었어. 만약 core로 뺀다면 파라미터를 만들어야 할 수도?
import java.time.YearMonth | ||
|
||
@Composable | ||
fun ScheduleView( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CalendarView와 동일해 보이지만 ScheduleView의 목적은 기능 구현 시에 날짜를 포커스해서 핸들링 하려고 파일을 만들었어. 페이지 2 기능 구현 시에 코드 추가 및 수정이 들어갈 거 같아.
- 페이지 1에서 선택한 날짜를 페이지 2에서 받아서 내부 CalendarView에 표시
- 선택 한 날짜를 순서대로 포커스(선택시 색과 다른 background 색으로 변경)
- 선택한 날짜 + 선택한 시간 + 선택한 메뉴 + 작성한 문장 => 묶어서 저장 하여 한번에 서버에 발신 or 누를 때마다 발신으로 하려고 해.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리팩터링 가능해 보이는 부분들은 코멘트 남겼고
values()
이건 왜 에러 뜨는건지 모르겠넹;
HourSection
은 언제가 될지는 모르겠지만 나중에 core로 빼보죠.
수고많았고 코멘트 보고 리팩터링해볼 수 있는 부분들은 해보고 머지해주쇼 👍
@@ -216,7 +216,7 @@ private fun HoursSection( | |||
private fun StoreBusinessDaysSection( | |||
onClick: (DayOfWeek) -> Unit = {}, | |||
week: Map<DayOfWeek, Boolean> = | |||
DayOfWeek.entries.associateWith { false }, | |||
DayOfWeek.values().associateWith { false }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
띠용, 내 IDE에선 이렇게 떠.
우리 코틀린 버전이 현재 1.9.0인데 코틀린 1.9부턴 values()
대신에 entries
를 권장하더라고.
내친 김에 왜 권장할까 이유도 좀 찾아봄.
이유는 둘의 동작 방식에 차이가 있는데
Enum.values()
동작 방식 - 새로운 가변 배열 반환
- 호출될 때마다 새로운 배열 생성 -> 제대로 사용하지 않을 시 성능 문제 발생 가능성
Array
로 반환함 ->List
로 변환해야 더 많은 컬렉션 Api 사용 가능- 가변이기 때문에 예상하지 못한 변경 가능 -> 버그 가능성
Enum.entries
동작 방식 - 상수 불변 리스트 반환
- 복사할 필요가 없어 더 빠르게 작동
List
라서 변환 없이 컬렉션 Api 사용 가능- 불변
따라서 entries 그대로 사용해도 될 듯 한데
1.9로 kotlin 버전 세팅되어있는지 확인해줄수 있어?
확인해봐도 안되고 warning이 아니라 error면 일단 그대로 푸쉬해야할듯..?
var expanded by remember { | ||
mutableStateOf(false) | ||
} | ||
var icon = if (expanded) Icons.Filled.ArrowDropUp else Icons.Filled.ArrowDropDown |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
icon
변수는 expanded
상태에 따라 값이 결정되는데, expanded
의 값이 변경될 때마다 remember
를 통해 리컴포저블되고 다시 icon이 결정돼.
이 외에는 icon
에 대한 직접적인 수정이 없어서,
icon
을 val
로 선언하여 불변으로 만드는 건 어떻게 생각해?
불변으로 선언할 수 있다면 불변으로 선언해서 실수로 변경하는 일이랑 안정성을 높이는 게 좋다고 생각해.
|
||
@OptIn(ExperimentalMaterial3Api::class) | ||
@Composable | ||
private fun HoursSection( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
생각해보니 그렇네.
빼도 괜찮을듯 👍
var check by remember { | ||
mutableStateOf(false) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 check
변수의 용도가 무엇을 확인하는건지 이름만 보고 알기 어려운 것 같은데
어떤 역할을 하는 변수야?
var lastMove by remember { | ||
mutableStateOf("START") | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lastMove의 자료형이 문자열이라서
START
이외에 어떤 값들로 변하게 될지 알기에 어려운 것 같아.
아래 코드를 보니 START
, RIGHT
, LEFT
가 올 수 있는 것 같은데
enum 으로 관리해서 허용 가능한 값들을 제한하는 건 어떻게 생각해?
…러그인 에서 anndroid Application 버전 8.2.2 로 변경
…러그인 에서 anndroid Application 버전 8.2.2 로 변경
Issue
Overview (Required)
Links
Screenshot