본문 바로가기

개발/Android51

[Android] Circuit + Compose로 Pokedex를 구현해보자. (feat. MVI) Jetpack Compose의 버전이 올라가면서 필수 기술스택이 되어가고 있습니다.그러면서 Compose를 활용하기 좋은 아키텍처에 대한 관심도도 자연스럽게 증가하고 있으며,그러한 아키텍처로 MVI가 자리잡고 있는 듯 합니다.저 또한 프로젝트에서 Compose를 최대한 활용하려 하며,Compose를 사용하지 않더라도 Compose와의 마이그레이션을 고려하여 MVI를 주요 아키텍처로 사용하고 있습니다.이러한 덕분에 MVI 아키텍처를 위한 다양한 라이브러리들에 대한 관심도 매우 높아지고 있는데,주로 언급되는 라이브러리는 orbit-mvi, mavericks 정도가 있고, 최근 주목받기 시작한 circuit이 있습니다.Circuit?Circuit은 Slack에서 만든 프레임워크로, 실제 슬랙의 프로덕션에서 사.. 2024. 12. 1.
[Android/안드로이드] Jetpack Compose - Stability와 Recomposition 그리고 최적화 Jetpack Compose가 정식으로 출시된 이후, 많은 개발자들이 관심을 갖고 사용하고 있습니다.또한 Jetpack Compose 역시도 많은 업데이트가 있었고, 앞으로도 그럴 것이라 예상이 됩니다.다양한 사용 사례가 나타나면서 선언형 UI 프로그래밍 방식은 익숙해지거나, 익숙해지기 쉬운 환경들이 만들어졌다고 생각합니다.우리는 이제 "효율적으로" Compose를 사용하는 방법을 알아가고 익힐 필요가 있습니다.Jetpack Compose를 어떻게 효율적으로 사용할 수 있을까요?UI의 입장에서 "효율적이다" 를 생각해보면 의외로 답은 간단할 수 있습니다.우리가 XML 방식으로 UI를 구현할 때, 어떻게 효율적인 코드를 작성하는지 생각해봅시다.여러가지가 떠오를 수 있는데, 저는 "불필요한 UI 업데이트가 .. 2024. 6. 27.
[Android/안드로이드] Jetpack Compose - 폰트 크기 고정하기 모바일 앱은 접근성 강화를 위해 시스템의 폰트 설정에 따라 동적으로 폰트 크기가 변화하도록 권장하고 있습니다.그러나 앱을 개발하다보면, UI 처리의 용이성을 위해 폰트 크기를 고정으로 하고싶은 욕구가 뿜뿜하곤 합니다.기존의 안드로이드 앱에서는 DP 사이즈를 사용해서 이를 해소하곤 했습니다만, Compose에서는 DP 사이즈의 사용이 불가합니다.대신에 TextUnit 이라는 것을 사용하게 되며, 일반적으로 SP를 사용하게 됩니다.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit TextUnit  |  Android Developersandroidx.compose.desktop.ui.tooling.previewde.. 2024. 6. 17.
Android - EncryptedSharedPreferences 로 데이터 암호화하기 Android 앱을 개발하다보면, 로컬에 저장해야 할 데이터가 있습니다. 사용자가 언제 앱에 접속했는지 라던가, 어떤 옵션을 ON/OFF 했는지에 대한 캐시성 정보들이 예가 될 수 있습니다. 이렇게 민감하지 않은 데이터는 평문을 그대로 저장해도 무방합니다. 하지만 만약 사용자의 개인정보와 관련이 있다거나 서버에 접근할 수 있는 토큰같은 종류라면 문제가 될 수 있습니다. SharedPreferences의 문제점 이 문제를 이해하려면 SharedPreferences와 안드로이드 어플리케이션에 대한 이해가 필요합니다. SharedPreferences는 XML 형태의 파일로 앱의 저장공간에 저장됩니다. 우리는 SharedPreferences를 선언할 때 아래와 같이 선언합니다. val sharedPref = c.. 2023. 11. 14.
반응형