Jetpack Compose로 접근성 최적화하기
Jetpack Compose에서 semantics와 포커스 제어로 접근성을 높이는 방법을 정리했습니다. TalkBack 사용성을 개선하는 실무 팁과 비동기 콘텐츠 알림 방법도 함께 다뤘습니다.


Jetpack Compose에서 semantics와 포커스 제어로 접근성을 높이는 방법을 정리했습니다. TalkBack 사용성을 개선하는 실무 팁과 비동기 콘텐츠 알림 방법도 함께 다뤘습니다.

브라우저와 기기 환경에 따른 기능 제공 방식으로 User-Agent Sniffing과 Feature Detection을 비교했습니다. 기본적으로는 Feature Detection을 우선하고, 필요할 때만 User-Agent 계열 정보를 제한적으로 활용하는 방향을 권장했습니다.

다양한 기기와 브라우저 조합에서 발생하는 웹 QA 이슈와 대응 노하우를 정리했습니다. Cypress를 활용해 반복 검증을 자동화하고 커버리지를 넓히는 방법도 소개했습니다.

Kotlin Multiplatform으로 Android와 iOS의 비즈니스 로직을 공유하는 구조를 소개했습니다. 플랫폼별 UI는 유지하면서 공통 모듈과 expect/actual, Ktor, SKIE로 연동하는 흐름을 설명했습니다.

오픈소스에 기여하는 방법으로 직접 NPM 라이브러리를 만들어 배포하는 과정을 소개했습니다. React 컴포넌트 예시와 함께 npm publish, 버전 관리, 재배포 절차를 설명했습니다.

Vue에서 motion-v를 사용해 다양한 UI 애니메이션을 선언적으로 구현하는 방법을 소개했습니다. Transition, IntersectionObserver, GSAP보다 간결하게 작성할 수 있는 사례를 함께 살펴보았습니다.
![[Vue] motion 라이브러리로 더 나은 UX 제공하기](https://devocean.sk.com/thumnail/2025/3/26/161965bcf2c0b07df46454d50714fad4eb4e06189069272bebd9fabacb97b9b4.png)
Chrome 확장 프로그램의 활용 사례와 장점을 소개하고, Manifest V3 기반 개발 구조를 설명했습니다. Content Script, Service Worker, Shadow DOM을 활용한 구현 방식도 정리했습니다.

Vite는 React뿐 아니라 여러 프레임워크를 지원하며 빠른 프로젝트 생성과 실행을 강점으로 소개했습니다. CRA보다 가볍고 구조가 익숙해 프런트엔드 개발에 효율적으로 활용할 수 있다고 설명했습니다.

퍼블리셔와 개발자 협업에서 스토리북이 깨지는 원인을 분석하고 CIC 패턴으로 역할을 분리했습니다. 스토리북용 props와 실행 환경 분기를 정리해 무결성을 유지했습니다.

시각장애인의 웹 탐색 방식에 맞춰 모달 접근성을 개선하는 방법을 소개했습니다. aria 속성, ESC 닫기, 포커스 트랩으로 키보드 탐색 경험을 보완했습니다.

Vue.js SPA에서 가입 중 입력 정보 유실 문제를 막기 위해 이탈 방지 팝업을 구현했습니다. beforeunload와 onBeforeRouteLeave를 조합해 라우터 이동과 외부 이동을 함께 대응했습니다.

웹앱 UX 개선을 위해 스켈레톤 UI, Vue Transition, Tanstack-Query를 적용한 사례를 소개했습니다. 상황에 따라 스피너와 페이드 효과를 병행하며 전환과 상태 관리를 단순화했습니다.

Apple Watch의 Notification 동작과 Long-look Interface 구현 과정을 정리했습니다. 알림 목적지 결정, Action 처리, 로그 수집 방법까지 살펴보았습니다.

SwiftUI의 `sheet`와 `presentationDetent`를 활용해 BottomSheet를 구현한 경험을 정리했습니다. 동적 높이와 확장형 시트, 커스텀 배경을 위한 인터페이스 설계 방향을 소개했습니다.

에이닷이 모바일 UI 테스트 자동화 도입을 검토한 과정을 공유했습니다. 수동 QA의 한계를 줄이기 위해 Espresso와 XCTest를 선택하고 Zephyr 연동 방향까지 정리했습니다.

SwiftUI View에서 `task`의 실행 맥락과 `MainActor` 보장 여부를 살펴보셨습니다. Swift 6에서는 property wrapper에 의한 actor inference가 제거되므로 `@MainActor` 명시가 중요합니다.

회사 전용 로깅 모듈을 Vite 라이브러리 모드로 만들고 Git 저장소로 배포하는 과정을 정리했습니다. 접근 제어 환경에서는 access token을 활용해 설치 문제도 해결했습니다.

SwiftUI ScrollView의 기본 구조와 iOS 버전별 주요 API 변화를 정리했습니다. 또한 UIScrollView와의 차이와 대용량 콘텐츠에서의 성능 주의점도 함께 살펴보았습니다.
