Conversation
- CupertinoLiquidButton에서 잘못 참조하던 CupertinoButtonTokens을 CupertinoLiquidButtonTokens로 수정 - CupertinoLiquidButtonTokens의 IconButtonSize를 42.dp에서 48.dp로 변경 - 라이브러리 버전을 1.0.1에서 1.0.2로 업데이트
라이브러리 배포 및 테스트를 위해 버전을 1.0.2에서 1.0.2-alpha01로 업데이트합니다.
- `TestScreen`의 `navigationIcon` 및 하단 버튼 레이아웃에 `AnimatedVisibility`를 적용하여 슬라이드 애니메이션 추가 - `CupertinoDropdownMenu` 내 불필요한 주석 코드 제거 및 코드 정리 - `App.kt`에서 테스트를 위해 `TestScreen` 호출 활성화 및 내비게이션 주석 처리
- `CupertinoDropdownMenu`를 `expect` 함수로 전환하고 `commonMain`에서 상세 구현 제거 - iOS가 아닌 플랫폼(Android, Desktop, JS, Wasm)을 위한 `nonIosMain` 소스셋 및 `nonDarwinMain` 빌드 컨벤션 추가 - `CupertinoDropdownMenu`의 기존 로직을 `nonIosMain`으로 이동하여 멀티플랫폼 대응 준비 - `iosMain`에 `actual` 함수 스켈레톤 추가 및 관련 인터페이스 정의 업데이트 - `TestScreen` 및 `LazySectionScope` 내 미사용 임포트 정리 및 최적화
CupertinoDropdownMenu의 `MenuAction` 파라미터에서 기존 `icon`, `caption`을 `leadingIcon`, `trailingIcon`으로 변경하고 전반적인 레이아웃을 개선했습니다. - `MenuAction` 파라미터 이름을 `leadingIcon`으로 변경하고 `trailingIcon` 추가 - 메뉴 아이템 내 아이콘 크기를 조정하고 텍스트 영역에 `weight(1f)` 적용 - `CupertinoDropdownMenu` 내부에 수직 패딩 및 아이템 가로 패딩 수정 - 불필요한 미사용 코드 및 주석 제거 - 라이브러리 버전을 `1.0.2-alpha02`로 업데이트 - 샘플 앱(`CupertinoWidgetsScreen`, `TestScreen`)에 변경된 파라미터 반영 및 테스트 코드 추가
✨ feat(hig): CupertinoDropdownMenu 아이콘 파라미터 변경 및 레이아웃 개선
- `CupertinoDropdownMenu`의 `leadingIcon` 및 `trailingIcon`의 기본값을 빈 람다에서 `null`로 변경하여 불필요한 레이아웃 생성을 방지 - 아이콘이 존재할 때만 `Box` 컨테이너를 렌더링하도록 조건부 로직 적용 - 라이브러리 버전을 `1.0.2-alpha03`으로 업데이트
- `MenuAction`에 `hasIcon` 상태를 추가하여 메뉴 내 아이콘이 있는 아이템이 하나라도 있을 경우 모든 아이템의 텍스트 정렬이 유지되도록 여백 확보 로직 추가 - `CupertinoDropdownMenu` 내 레이아웃 측정 시 `widthIn` 및 `itemConstraints`를 적용하여 최소 너비 보장 및 가로 꽉 차는 배치 수정 - 불필요한 KDoc 주석 삭제 및 코드 스타일 정리 (삼항 연산자, 중괄호 등) - `libs.versions.toml`에서 라이브러리 버전을 `1.0.2-alpha04`로 업데이트 - `CupertinoWidgetsScreen` 예제에서 테스트를 위해 Share 아이템의 아이콘을 임시 주석 처리
- backdrop 라이브러리 그룹을 io.github.kyant0에서 zone.ien.backdrop으로 변경 - backdrop 버전을 2.0.0-alpha04로 업데이트 - README.md에 slanos/compose-cupertino 포크 출처 정보 추가 - README.md의 Disclaimer 섹션 삭제 및 문구 정돈
- gradle/libs.versions.toml 파일의 lib-version-name을 1.0.2-alpha05에서 1.0.2-alpha06으로 변경합니다.
- iOS에서 `UIButton`과 `UIMenu`를 활용한 `CupertinoDropdownMenuNative` 구현 - `CupertinoMenuItemData` 및 `CupertinoMenuSectionData` 모델 정의 - `Painter`를 `UIImage`로 변환하고 크기를 조정하는 유틸리티 함수 추가 - `CupertinoDropdownMenu`를 공통 인터페이스에서 직접 구현으로 변경 및 리팩토링 - 예제 앱에 네이티브 메뉴 테스트 코드 및 라이브러리 버전 업데이트(1.0.2-alpha02) Closes #52
gradle/libs.versions.toml 파일의 lib-version-name 버전을 1.0.2-alpha02에서 1.0.2-alpha07로 업데이트합니다.
- backdrop 라이브러리의 그룹을 `io.github.kyant0`에서 `zone.ien.backdrop`으로 변경 - 버전을 `2.0.0-alpha04+dev1`에서 `2.0.0-alpha04`로 업데이트
# Conflicts: # example/composeApp/src/commonMain/kotlin/cupertino/CupertinoWidgetsScreen.kt # example/composeApp/src/commonMain/kotlin/test/TestScreen.kt # gradle/libs.versions.toml
- MenuAction의 icon 파라미터 이름을 leadingIcon으로 변경하여 명확성 개선 - CupertinoWidgetsScreen, TestScreen 및 네이티브 구현부 코드 반영 - 라이브러리 버전을 1.0.2-alpha08으로 업데이트
- `CupertinoMenuItemData`에서 부정형 변수인 `isDisabled`를 긍정형인 `enabled`로 변경하여 직관성 개선 - `nonIosMain` 및 `iosMain` 소스 세트의 관련 로직을 새로운 변수명에 맞게 업데이트 - iOS 환경에서 `toUIAction` 변환 시 `OptIn` 어노테이션 추가 및 불필요한 주석 제거 - Foundation 및 UIKit 관련 미사용 임포트 구문 정리 및 추가
Feature#75
- iOS에서 네이티브 `UITabBar`를 사용하는 `AdaptiveNavigationBarNative` 컴포넌트 추가 - 네이티브 탭바의 높이를 측정하고 `LocalIosTabBarPadding`을 통해 `AdaptiveScaffold`에 전달하는 로직 구현 - 탭바 높이 계산 시 레이아웃 점프를 방지하기 위한 `IosBarHeightCache` 캐싱 메커니즘 도입 - `CupertinoWidgetsScreen` 예제에 네이티브 탭바 테스트 모드 추가 - `hig-native` 모듈에 `material3` 의존성 추가 및 공통 인터페이스 정의
- `publishToMavenLocal` 작업 시 서명 과정을 건너뛰도록 조건 추가 - 스냅샷 버전이 아니거나 서명 키가 있는 경우에만 서명을 수행하도록 로직 복구 및 개선 - 라이브러리 버전을 `1.0.2-alpha09`로 업데이트
- iOS `TabBarManager`에서 `selectedIcon` 설정 시 리사이징(`resized(20.0)`)이 적용되지 않던 문제 수정 - 라이브러리 버전을 `1.0.2-alpha10`으로 업데이트
Feature#78
- `DropdownExample`에 `isNative` 파라미터를 추가하여 네이티브 드롭다운 메뉴 표시 기능 지원 - `CupertinoDropdownMenuNative`를 사용하는 예제 코드 및 아이콘 데이터 추가 - `nativePickers` 상태 저장 방식을 `rememberSaveable`로 변경하여 구성 변경 시에도 상태 유지 - `CupertinoWidgetsScreen`의 섹션 아이템에 네이티브 설정 값 전달 로직 추가
gradle/libs.versions.toml 파일의 lib-version-name을 1.0.2-alpha10에서 1.0.2-alpha11로 변경함.
- `CupertinoMenuSectionData`의 `title` 속성을 `String?` 타입으로 변경하고 기본값을 `null`로 설정하여 선택적 제목 지원 - non-iOS 구현체에서 `title`이 `null`인 경우를 대응하도록 로직 수정 - 라이브러리 버전을 `1.0.2-alpha12`로 업데이트
- iOS: 섹션 타이틀이 없는 경우 `UIMenu.menuWithChildren`을 사용하도록 수정 - non-iOS: `MenuSection` 내에서 잘못된 리스트를 참조하던 버그 수정 및 `isDestructive` 옵션에 따른 `systemRed` 색상 적용 - 라이브러리 버전을 `1.0.2-alpha13`으로 업데이트
- CupertinoMenuSectionData에 icon 및 HigMenuOptions 필드 추가 - iOS 네이티브 메뉴 빌드 시 UIMenuOptions 연동 및 섹션 아이콘 적용 - 비 iOS 환경에서 파괴적 작업(isDestructive) 색상 적용 및 메뉴 구분선 추가 - 메뉴 섹션 타이틀의 가로 패딩(8.dp) 추가 및 레이아웃 조정 - CupertinoMenuSectionData의 title 필드를 필수 값으로 변경하여 구조 개선 - 예제 코드에 아이콘 및 단일 선택 옵션이 적용된 메뉴 사례 추가
|
/gemini review. 모든 문서화는 영어로, 라이브러리 사용자가 접근 가능한 모든 메소드와 클래스에 대하여 이루어져야 한다. |
- CupertinoButtonAdaptation 및 MaterialButtonAdaptation 클래스의 주석 및 파라미터 정리 - ButtonAdaptation 클래스 내 컴포저블 함수 리팩토링 - 버튼 타입별 색상 및 스타일 적용 로직 개선
…nuNative.ios.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…iveNavigationBar.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
/gemini 내가 본 것만 몇 개인데. 한국어로 적혀있는 kdoc들 다 수정해라. |
|
안녕하세요, |
|
/gemini 내가 본 것만 몇 개인데. 한국어로 적혀있는 kdoc들 다 수정하는 코드 리뷰를 진행해. |
…iveTheme.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…iveCheckbox.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…nager.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…nuNative.ios.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
- CupertinoNavigationBar.kt 파일의 패키지 선언 및 주석 추가 - CupertinoWidgetsScreen.kt에서 Compose 의존성 정렬 및 애니메이션 컴포넌트 추가 - 빌드 파일에서 ExperimentalTime 옵션 변경 및 iOS native 컴포넌트 의존성 정리 - multiplatform-module-convention.gradle.kts 및 build.gradle.kts 파일의 컴파일러 옵션 일관성 유지
# Conflicts: # hig-native/src/iosMain/kotlin/zone/ien/hig/CupertinoDropdownMenuNative.ios.kt
- Adaptive 컴포넌트 문서화 내용 영문으로 변경 - 네비게이션 그래프 및 테스트 화면에서 주석 및 텍스트 개선 - Cupertino 컴포넌트 관련 어댑테이션 클래스 주석 정리 및 명확화
|
/gemini review |
There was a problem hiding this comment.
Code Review
이번 풀 리퀘스트는 Cupertino 및 Adaptive 컴포넌트의 완성도를 높이기 위해 대규모 KDoc 문서화와 함께 iOS 네이티브 연동 기능을 대폭 강화했습니다. 특히 CupertinoDropdownMenuNative와 CupertinoNavigationBarNative를 추가하여 iOS 환경에서 더욱 네이티브에 가까운 UX를 제공하며, nonDarwinMain 소스 세트 도입 및 빌드 스크립트 최적화가 이루어졌습니다. 리뷰 과정에서는 레이아웃 안정화를 위한 while(true) 루프의 자원 낭비 가능성, error() 호출로 인한 런타임 크래시 위험, 시스템 버전 체크 방식의 취약성, 그리고 하드코딩된 설정값의 파라미터화 필요성 등이 지적되었습니다. 이러한 피드백을 반영하여 코드의 안정성과 유연성을 확보할 것을 권장합니다. @ienground
…BarNative.ios.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…dgetsScreen.kt Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
- CupertinoDropdownMenuNative에서 iOS 시스템 버전 체크 로직 개선 - CupertinoNavigationBarNative에서 탭바 높이 안정화 로직 추가 및 구조 개선 - 탭바 높이 변경 시 패딩 업데이트 로직 최적화
- UIMenuElementAttributesDestructive 및 UIMenuElementAttributesDisabled 참조 경로 수정 - UIKit 관련 속성 참조 정확성 개선 - iOS 플랫폼에서 메뉴 요소 속성 적용 오류 해결
모든 문서화는 영어로, 라이브러리 사용자가 접근 가능한 모든 메소드와 클래스에 대하여 이루어져야 한다.