Skip to content

릴리스 v1.3.0: SwipeBox 전면 개선 및 SegmentedControl iOS 26 스타일 적용 - #111

Merged
ienground merged 19 commits into
mainfrom
release/v1.3.0
Jul 20, 2026
Merged

릴리스 v1.3.0: SwipeBox 전면 개선 및 SegmentedControl iOS 26 스타일 적용#111
ienground merged 19 commits into
mainfrom
release/v1.3.0

Conversation

@ienground

Copy link
Copy Markdown
Owner

요약

v1.3.0 릴리스 브랜치로, CupertinoSwipeBox/CupertinoSwipeBoxItem 전면 재구현, LazyListSection grouped 섹션 클리핑, SegmentedControl iOS 26 스타일 적용 등 주요 UI 컴포넌트 개선을 포함합니다.

주요 변경사항

  • SwipeBox 전면 재구현: 아이템 레이아웃을 weight 기반에서 width 기반으로 변경, reveal scale 애니메이션 및 expanding 상태 추가, foreground에 swipe 시 corner radius/color 전환 효과 적용
  • SwipeBoxItem 재설계: Row + icon/text 레이아웃으로 변경, shape 파라미터 추가(ContinuousCapsule 기본값), 애니메이션 TransformOrigin을 action position 기준으로 적용
  • SegmentedControl iOS 26 스타일: TabRow → Row + glass material(backdrop/vibrancy/blur/lens) + DampedDragAnimation 기반 indicator 연속 이동 + InteractiveHighlight + Double-layer 구조
  • LazyListSection grouped 클리핑: grouped/inset 모드에서 첫/중간/마지막/단일 아이템 각각에 맞는 CornerBasedShape.copy() 클리핑 적용
  • TopBars blur 개선: InlineTopAppBar에 BlurredEdgeTreatment.Unbounded 적용으로 모서리 잘림 방지
  • 코드 정리: Swipable.kt Dead code(return) 제거, LegacyCalendarModelImpl 중복 return 제거, delay()에 Duration.milliseconds 적용, DampedDragAnimation snapshotFlow API 단순화

확인 사항

  • SwipeBox full-swipe 상태에서 애니메이션 및 햅틱 피드백 타이밍 검증
  • SegmentedControl 기존 backdrop 파라미터 사용처(IconsScreen, SectionsScreen) 호환성 확인
  • LazyListSection grouped/inset/non-grouped/plain 조합별 클리핑 시각적 회귀 검사
  • 릴리스 빌드 및 바이너리 호환성 확인

영향 범위

  • UI 컴포넌트: CupertinoSwipeBox, CupertinoSwipeBoxItem, CupertinoSegmentedControl, LazyListSection, CupertinoTopBars
  • 유틸리티: DampedDragAnimation, Swipable
  • 예제 앱: IconsScreen, SectionsScreen, CupertinoWidgetsScreen 등 다수 파일 업데이트

ienground added 17 commits July 20, 2026 14:16
- CupertinoSwipeBox 및 관련 아이템 컴포넌트의 로직과 상태 관리 개선
- SwipeBox 동작과 애니메이션 구현 방식 변경으로 성능 향상
- 예제 앱에서 SwipeBox 사용법 및 UI 업데이트
- CupertinoSwipeBoxItem.kt 파일에 애니메이션 관련 import 추가 및 로직 개선
- CupertinoSwipeBoxLaunchedEffects.kt에서 액션 아이템 패딩 계산 방식 수정
- CupertinoWidgetsScreen.kt에서 스와이프 액션 관련 UI 주석 처리
- CupertinoSwipeBox.kt 파일에서 외부 패딩 속성 추가 및 haptic feedback 로직 정렬
refactor(swipebox): CupertinoSwipeBox 컴포넌트 리팩토링 및 둥근 모서리 Shape 통일
- CupertinoSegmentedControl 컴포넌트 구현 및 스타일 개선
- CupertinoWidgetsPreviews.kt 파일 추가로 컴포넌트 미리보기 제공
- App.kt, MainActivity.kt 등 예제 앱 코드 업데이트
- iOS 26 시각 기준 문서 error.txt 추가로 정확한 구현 기준 확보
- didDrag 상태 변수 추가 및 드래그 애니메이션 로직 수정
- 탭 카운트에 따른 DampedDragAnimation 초기화 로직 변경
- remember 블록 내부 구조 최적화 및 상태 저장소 갱신
- CupertinoSegmentedControl.kt 파일의 상태 관리 라이브러리 import 순서 변경
- error.txt 파일 삭제로 불필요한 문서 정리
- 코드 복잡성 감소 및 성능 개선
CupertinoSegmentedControl iOS 26 스타일 리디자인 및 glass material 적용
- LazyListSection.kt 파일의 import 구문 정리 및 의존성 추가
- CupertinoSegmentedControl.kt에서 클릭 처리 로직 개선 및 layout 변경
- CupertinoTopBars.kt에 blur 관련 import 추가 및 컴포넌트 수정
- SectionsScreen.kt에서 반복되는 SectionItem 컴포넌트 로직 변경
- CupertinoWidgetsPreviews.kt 파일 삭제로 프리뷰 컴포넌트 정리
- CupertinoWidgetsScreen.kt 파일에서 레이아웃 및 컴포저블 구조 개선
- Spacer와 imePadding을 통한 화면 간격 조정 및 UX 향상
- 31개 파일 변경 및 리팩토링 작업 수행
- iOS 관련 파일 및 설정 이동 처리
- 코틀린 소스코드 최적화 및 의존성 정리
LazyListSection 그룹 섹션 클리핑 및 SegmentedControl backdrop 단순화
- CupertinoSwipeBox 관련 빌더 및 아이템 컴포넌트 문서화 개선
- CupertinoDateTimePicker 상태 관리 및 파라미터 설명 추가
- CupertinoSwipeBox 기본값 클래스 구조 변경 및 주석 정리
- CupertinoSegmentedControl 주석 영문화 처리
- README.md 파일에 프로젝트 소개 및 빌드 상태 배지 추가
- CupertinoWidgetsScreen.kt 파일에서 Cupertino 텍스트를 HIG로 변경
- TestScreen.kt 파일에서도 Cupertino 텍스트를 HIG로 수정
- README.md 파일에 To-do 목록 추가 및 라이선스 정보 업데이트
- CupertinoSegmentedControl.kt 파일에서 기존 로직 제거 및 새로운 구현 추가
- CupertinoWidgetsScreen.kt에 새로운 UI 컴포넌트 추가 및 스타일 적용
- README.md 파일에 라이브 데모 및 설치 방법 수정사항 반영
- libs.versions.toml 파일에서 의존성 버전 업데이트 및 그룹명 변경

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 풀인 요청(PR)은 Compose-HIG 라이브러리에 Apple의 Human Interface Guidelines(HIG)를 반영한 대대적인 컴포넌트 개선을 포함하고 있습니다. 특히 CupertinoSegmentedControl에 스프링 드래그 애니메이션과 동적 인디케이터 기능이 추가되었고, CupertinoSwipeBox에는 iOS 스타일의 스와이프 제스처와 햅틱 피드백이 구현되었습니다. 또한 LazyListSection에서 ContinuousRoundedRectangle을 적용하여 아이템 클리핑 로직을 정교화했습니다. 코드 리뷰에서는 CupertinoSegmentedControl 컴포지션 단계에서 탭 등록(registry.register)을 직접 수행하여 발생할 수 있는 부작용(Side-effect) 문제를 지적했습니다. 이를 해결하기 위해 등록 로직을 DisposableEffect 내부로 이동하고, 클릭 시점에 인덱스를 동적으로 조회하도록 개선하는 피드백이 제시되었습니다. @ienground

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread hig/src/commonMain/kotlin/zone/ien/hig/CupertinoSegmentedControl.kt
Comment thread hig/src/commonMain/kotlin/zone/ien/hig/CupertinoSegmentedControl.kt
- DisposableEffect에 currentOnClick 파라미터 추가 및 레지스트리 등록 로직 개선
- 클릭 핸들러 등록 및 해제 로직 정상 동작 보장
- 콜백 처리 및 상태 관리 개선
@ienground
ienground merged commit 3de94ab into main Jul 20, 2026
4 checks passed
@ienground
ienground deleted the release/v1.3.0 branch July 20, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant