안드로이드 Theme와 GetStream Theme를 알아보고 CompositionLocalProvider의 역할을 알아본다.(GetStream 후원글)

안드로이드 Theme와 GetStream Theme를 알아보고 CompositionLocalProvider의 역할을 알아본다.(GetStream 후원글)

Compose Theme는 어떻게 적용하고 활용할 수 있을까?

  • Material Theme에 따라서 사용할까?
  • 우리만의 디자인 시스템 색상 값과 필요한 정보를 포함하여 Custom theme 구성?

이런 고민은 한 번쯤? 해볼 수 있을 것 같다.

본 글은 GetStream의 후원으로 작성된 글로 다음의 내용을 다루어보려 한다.

  • Material 3 사용하지 않는다면?
  • Material 3 사용하여 테마 만들기?
  • SDK로 유명한 GetStream에서는 Theme를 어떻게 사용하고 있을까?
  • 추가로 Theme 함수의 내부에는 CompositionLocalProvider가 많던데? CompositionLocalProvider을 좀 더 살펴보자.

본문을 통해 하나씩 이야기해 보겠다.

읽기 전에

  • XML Theme는 다루지 않는다.
  • Compose component에 대해 설명하지 않는다.
  • Material 3에서 사용하는 Token 방식의 Color 지정을 논하진 않는다.
  • GetStream 후원으로 작성한 글이다.

Read More

Android에서 효율적인 모듈 디펜던시 관리하기, build-logic으로 전환하기?

모듈을 지속적으로 추가하는 요즘 개발에서는 디펜던시 관리는 어떻게 하는 것이 좋을까?

필자는 모듈 240개 정도를 회사 프로젝트에서 활용하고 있는데 아래와 같다.

  • test 모듈
  • 구현체에 대한 인터페이스 정의하는 모듈
  • 구현체 모듈

초점은 최대한 손 안 대고 자동으로 모듈을 import 하고, 디펜던시를 관리하는 것이다.

build-logic을 활용하고, version catalog을 활용하여 디펜던시를 관리하고, 추가되는 모듈은 자동 import 되도록 하는 방법을 소개한다.

Read More

Compose 함수는 어떤 조건으로 나누는것이 좋을까?(Stateful, stateless)

Compose 함수는 어떠한 조건을 사용해 나누는 것이 좋을까? 고려하면 좋을 것은 무엇일까?

  • 스크린으로 나눈다?
  • 컴포넌트로 나눈다?
  • 무조건 많이 나눈다?

답은 없지만 최소한 어떤 규칙을 가지고 나눌 수 있을지 고민하고 적용한 부분을 정리해 본다.


이 글에서 알아볼 내용

  • 코드의 분리 관점을 무엇으로 볼지를 고민해 본 글이다.
  • 글에 오류가 있을 수 있으니 참고만 하길

Read More

Compose Navigation - WebView Recomposition 해결?

Compose Navigation에서 WebView 활용 시 Recompistion이 발생한다.

  • A Composable에서 WebView를 그린다.
  • B Composable에서 Other Composable을 그린다.

A에서 B로 navigate 했다가 다시 A로 돌아오는 경우 Recomposition이 발생한다.(당연하게도)

Recomposition을 막을 순 없지만 WebView를 유지할 수 있는 방법은 없을까?


이 글에서 알아볼 내용

  • Compose Navigation에서 WebView를 잘 활용하기 위한 방법은?

Read More

Android에서 flow를 통한 실시간 데이터 갱신에 대한 정리

작성한 GitHubUserSearch 소스를 기반으로 flow를 통해 실시간 데이터 갱신하는 방법에 대해 정리해 본다.

이 방식을 사용하면 데이터를 다시 부르기 위한 형태가 필요치 않고, 실시간 데이터를 지속적으로 받을 수 있는 장점이 생긴다.

여기에서 설명하는 코드는 매뉴얼 인젝션을 사용한 코드이다.


이 글에서 알아볼 내용

  • coroutines + flow를 통한 실시간 데이터 갱신

Read More