전체 글

전체 글

    [Compose UI] 애니메이션 - 스프링 효과

    [Compose UI] 애니메이션 - 스프링 효과

    스프링 효과 안드로이드 애니메이션에서 제공하는 스프링은 시작과 끝 값 사이에 물리학적 값을 이용하여 애니메이션을 표현한다. 해당 애니메이션에 반영되는 값은 감쇠비와 강도이다. 감쇠비(damingRatio) : 스프링의 탄성 정도. 얼마나 빠르게 원래 상태로 돌아오는지의 정도를 나타낸다. 기본값은 Spring.DampingRatioNoBouncy 이다 강도(stiffness) : 스프링의 강도 정도. 스프링이 종료된 값으로 돌아오는 속도를 의미한다. 기본값은 Spring.StiffnessMedium 이다. Card내의 Column에 스프링 효과 적용하기 Column에 적용하는 Modifier의 animateContentSize 인자를 설정한다. spring 애니메이션을 animationSpec으로 설정하고..

    [Compose UI] IconButton

    [Compose UI] IconButton

    IconButton은 지정한 action을 수행하도록 할 수 있는 클릭가능한 아이콘이다. 사용자 접근성 가이드라인에 따라 IconButton의 최소 터치 아이콘 크기는 48x48dp 이다. 이 사이즈보다 작은 사이즈는 사용자 접근성을 저해한다고 판단하기에 해당 가이드라인을 준수하는 것이 좋다. 주의할 사항은 IconButton의 인자 중 하나인 content는 androidx.compose.material.icons.Icons의 아이콘을 사용하는 아이콘 이여야 한다. 만약 사용자 지정 아이콘을 사용하는 경우에는 내부 아이콘의 일반적인 크기는 24x24에가 된다. IconButton 함수 인자 onClick: () -> Unit, : 클릭 시 발생할 action modifier: Modifier = Mod..

    [Review] 적정 소프트웨어 아키텍처 : 리스크 주도 접근법

    [Review] 적정 소프트웨어 아키텍처 : 리스크 주도 접근법

    개발자에서 아키텍트로 진화해 나아가길 바라는 나에게는 새로운 아키텍처 관련 도서가 출판된다는 소식은 매우 반가운 소식이다. 아키텍처와 관련된 도서는 대부분 구매하여 읽었고, 학습하였다. 이번 도서도 구매 준비 중이였는데, 마침 한빛리더스의 리뷰 활동 지원 도서로 리스트에 있어서 아무런 고민 없이 선택하였다. 양장본의 힘 처음 택배를 뜯었을 때 양장본의 그 딱딱한 촉감이 내 손바닥에 느껴졌을 때의 기분이 잊혀지질 않는다. 출판사에서 정말 준비를 많이 했구나. 보통 개발 서적은 양장본으로 출간하지 않는다. 소설과 같은 베스트셀러 도서들도 재출간, 이벤트 기념으로 양장본을 일부만 출간한다. 그 만큼 제작에 비용이 많이 들고 많은 사람들이 찾을 거라는 자신감이 없다면 하기 힘든 결정이다. 그런데 처음 출간되는 ..

    [Material] 서체 스케일(Type Scale)

    [Material] 서체 스케일(Type Scale)

    서체 스케일은 유연하면서, 일관된 스타일을 앱에 제공하기 위해 사용할 수 있는 스타일 모음이다. Marterial에서 지원하는 해당 시스템을 사용하면 디자인과 내용을 가능한 명확하고 효율적으로 표현할 수 있다. 서체 스케일의 종류 Material 서체 시스템에서 지원하는 글꼴 스타일은 13가지이다. 해당 스타일은 앱에 맞춤설정하려는 경우에 사용한다. 서체 스케일에는 각각 의도된 응용 방법과 의미를 갖는 재사용 가능한 텍스트 카테고리가 있다. 제목(H1~6) : 제목은 화면에서 가장 큰 텍스트로, 짧고 중요한 텍스트 또는 숫자에 사용된다. 본문(Body 1~2) : 작은 텍스트 크기에 적합하기 때문에 주로 긴 글에 사용된다. 글꼴 : Android 플랫폼에서는 몇 가지 글꼴을 제공하지만 기본적으로 제공되지..

    [Compose UI] Modifier (수정자)

    Modifier는 다양한 기능을 지원하고 해당 기능으로 Compose의 UI를 변경 및 확장할 수 있다. Modifier에서 지원하는 기능은 아래와 같다. (https://developer.android.com/jetpack/compose/layout) 컴포저블의 크기, 레이아웃, 동작 및 모양 변경 접근성 라벨과 같은 정보 추가 사용자 입력 처리 요소를 클릭 가능, 스크롤 가능, 드래그 가능 또는 확대/축소 가능하게 만드는 것과 같은 높은 수준의 상호작용 추가 Modifier에서 제공하는 간단한 기능들을 빠르게 살펴볼 수 있도록 정리한다. Modifier의 함수들의 반환값은 Modifier이다. 따라서 어떤 순서로 함수를 적용하느냐에 따라 다른 효과가 적용되는 Modifier가 생성되므로 순서에 항상 ..

    [Android] Fragment 커스텀 생성자? FragmentFactory?

    [Android] Fragment 커스텀 생성자? FragmentFactory?

    인자를 전달받는 Fragment 생성자 Fragment를 생성할 때 파라미터를 전달받는 생성자를 이용하여 Fragment를 만들어 본 적이 있는가? 아래 코드와 같은 방식으로 Fragment 정의 시 분명 문제가 있었을 것 이다. 아래 Fragment는 문자열을 생성자의 인자로 전달받는 Fragment이다. class TestFragment constructor ( private val testString:String ): Fragment() { ... } 이러한 방식은 아래와 같은 런타임 예외를 발생 시킬 수 있다. 분명 Fragment의 생성자가 있음에도 불구하고 생성자가 없다는 예외이다. could not find Fragment constructor 런타임 예외가 왜 발생하는가? Fragment ..