전체 글 58

코틀린 뷰모델에서 올바른 UI 액션 핸들링 방법

여러개의 화면에서 동일한 UI컴포넌트를 사용해야 했던적이 있나요? 각 화면마다 ViewModel이 따로 있어서 UI 상호작용을 반복해서 처리해야했던 경험이 있었나요?그렇다면 이 블로그글이 바로 여러분을 위한 것입니다. 소개안드로이드 개발자라면 종종 동일한 UI 기능을 여러 ViewModel에 걸쳐 구현해야 하는 상황을 마주하게 됩니다.예를들어 우리는 게시물 표시, 댓글을 작성하거나, 사용자 상호작용을 처리하는 것처럼 비슷한 기능을 가진 여러개의 화면을 갖고 있을 수 있습니다. 이러한 UI상호작용을 각각의 뷰모델에서 따로 처리하다보면 금방 코드가 지저분해지고 중복도 심해질 수 있습니다. 앱이 커지고 화면수가 많아질수록 이 이슈는 더 심각해지고, 결국 유지보수하기 어려운 코드베이스와 확장성 문제로 이어지..

영어 데일리 09:17:33

2가지 테스트 코드 접근방법

Mockist 접근방법: 모든 레이어에 모킹 여기서 mock은 fake, stub, mock을 포함한 모든 종류의 테스트 대역을 의미한다는 점을 참고하세요.아래 예제를 살펴보겠습니다. 클래스A가 클래스B, 클래스C에 의존한다고 가정해보겠습니다. 이떄 클래스 A를 테스트할 때 클래스B와 클래스C를 모킹하여 검증합니다. 그러나 클래스 C를 클래스B의 하위로 이동하도록 리팩토링하면 설계가 더 단순해진다는 걸 깨닫겠습니다. 그 결과 클래스 A의 외부 동작은 변하지 않았음에도 불구하고 테스트가 깨지게됩니다.  동일하게 우리의 챗 어플리케이선 예제에 적용해보겠습니다.각 계층에 모킹하기로 결정하면, ViewModel 테스트에서도 모든 의존성을 모킹해야합니다. private fun mockUseCases() { ..

카테고리 없음 2025.03.17

Unit test 다이어트, Mock을 사용하지 않은 BDD

이 주제는 안드로이드콘 런던 2023에서 발표된 내용입니다. 토크는 여기서 보실 수 있고, 슬라이드는 여기서 다운로드받으실 수 있습니다. MVV 앱을 대규모로 리팩토링 속도를 저하시키지 않으면서 유닛 테스트를 하는 방법은 무엇인가?모바일 앱들은 커지고 아키텍쳐적으로 발전하고 있습니다. 기술 부채가 서서히 쌓이면서 지속적인 리팩토링이 필수요소가 됩니다. 같은 시간에 유닛테스트들은 구현은 이끌고, 회귀오류를 방지하며, 문서화하는데에 필수적입니다. 어느순간 단위테스트가 올바르게 작성되지 않으면 리팩토링에 장애물이 될 수 있습니다. 이것 우리가 수년동안 PSS에서 배운 교훈입니다. PSS는 SCRUFF와 JACkd에 퍼블리셔입니다. 이 기사에서는 행동 주도 개발이 이 문제에 대한 해결책을 어떻게 제공하는제 소개..

영어 데일리 2025.03.17

컴포즈에서 ViewModel 생명주기 마스터하기

컴포즈는 안드로이드 개발을 간소화하며, ViewModel과의 통합을 통해 상태 관리를 더욱 원활하고 생명주기를 인식하게 합니다. 이 기사에서는 컴포즈에서 뷰모델이 어떻게 동작하는지 깊게 알아보고, 뷰모델의 생명주기 연관된 부분을 설명하며, 개념을 확실히 다지기 위해 실제 사용사례를 설명하겠습니다. 이 글은 모두에게 무료입니다. 만약 너가 구독을 활성화 하고 싶다면 여기를 클릭하세요. 아닐 경우 쭉 읽어주세요. 컴포즈에서 뷰모델 생명주기 이해하기 컴포즈에서 뷰모델은 기본적으로 생명주기를 의식하는 방식으로 UI관련된 데이터를 저장하고 관리하는데에 사용합니다. 이것은 화면 회전과 같은 구성 변경에도 유지되며, 연결된 생명 주기 소유자가 소멸될때 자동으로 제거됩니다.  핵심1. 생명주기 인식뷰모델은 해당 컴포저..

영어 데일리 2025.03.10

컴포즈로 효율적인 UI 컴포넌트 디자인하기 2

https://proandroiddev.com/designing-effective-ui-components-in-jetpack-compose-cb8d18f7f888 Designing Effective UI Components in Jetpack ComposeSince Google announced the Jetpack Compose 1.0 stable release, many companies have adopted Jetpack Compose to leverage its numerous…proandroiddev.com커스텀 테마 구현하기커스텀 테마 구현에 대해서 깊이 파고들어보겠습니다. 첫번째 단계는 . 컴포넌트 간에 공유되거나, 사용자에게 맞춤 설정될 수 있는 디자인 사양을 정의하는 것입니다. 색상,..

영어 데일리 2025.02.14

컴포즈로 효율적인 UI 컴포넌트 디자인하기 (1)

https://medium.com/proandroiddev/designing-effective-ui-components-in-jetpack-compose-cb8d18f7f888 Designing Effective UI Components in Jetpack ComposeSince Google announced the Jetpack Compose 1.0 stable release, many companies have adopted Jetpack Compose to leverage its numerous…proandroiddev.com 구글에서 컴포즈 1.0 스테이블 버전을 릴리즈한 이후로, 많은 회사들은 컴포즈의 많은 강점들을 활용하기 위해 도입했습니다. 컴포즈는 컴포즈는 안드로이드 생태계에 널리받아들여졌..

영어 데일리 2025.02.10

note10

* 영어 번역 연습 앱  ✅ 단계별 번역 방법1️⃣ 문장을 의미 단위(구, 절)로 나누기You might wonder if it’s possible to accept multiple Modifier parameters to apply to specific components in the layout hierarchy while restricting the structure of a component, as shown in the example below.→ 의미 단위별로 끊어보기You might wonder if it’s possible→ ~하는 것이 가능한지 궁금할 수도 있다to accept multiple Modifier parameters→ 여러 개의 Modifier 매개변수를 받는 것to appl..

사이드 2025.02.10