Android 45

Android 16 대응 - onBackPressed deprecated

공식문서 : https://developer.android.com/about/versions/16/behavior-changes-16#predictive-backAndroid 16(API 레벨 36) 이상을 타겟팅하고 Android 16 이상 기기에서 실행되는 앱의 경우, predictive back(탐색 예측 뒤로가기)가 활성화 됩니다. 그로인해 predictive back 애니메이션이 활성화 됩니다. 또한 onBackPressed가 호출되지 않고, KeyEvent.KEYCODE_BACK이 더이상 전송되지 않습니다.그렇기에 기존에 onBackPressed를 활용하여 뒤로가기 이벤트를 감지했다면, 아래 두가지 방법중 하나를 선택해야 합니다. opt out by AndroidMenifest Setting..

Android 2025.11.10

Android 개발자가 알아야 할 RGB, ARGB, 그리고 RGBA

Android에서 색상을 다루다 보면 “RGB”, "ARGB", "RGBA" 같은 단어를 자주 보게 됩니다.겉보기엔 비슷하지만, 이 둘은 색상 순서가 다르며, 잘못 쓰면 전혀 의도하지 않은 색이 나타날 수 있습니다.이번 글에서는 RGB의 기본부터 시작해서, Android에서 사용하는 ARGB, 그리고 웹에서 흔히 쓰이는 RGBA의 차이를 개발자 관점에서 정리해보겠습니다. RGB모든 색상 표현의 출발점은 RGB (Red, Green, Blue) 입니다.이는 디스플레이가 빛의 3원색을 섞어 색을 표현하는 가산혼합(additive color) 방식이죠.R — 빨강 (Red)G — 초록 (Green)B — 파랑 (Blue)RGB(255, 0, 0) → 빨강RGB(0, 255, 0) → 초록RGB(0, 0..

Android 2025.10.21

Android 15 대응 - Window Inset (Enable Edge To Edge)

Android 15가 되며 Enable Edge To Edge가 Default 설정이 되었습니다. (공식문서)즉, SystemLayout에도 원하는 화면을 넣을 수 있게 되었다고 표현할 수도 있지만 이전처럼 해당 부분을 비워두고 싶다면 추가적인 작업을 해줘야 한다는 이야기이기도 합니다. 추가적인 작업을 여러가지 Layer에서 수행할 수 있는 방법들을 공유하고자 합니다. Application ClassSAA라면 Activity에서 적용해도 되지만, 그게 아니라면 Activity마다 찾아가며 적용하기 귀찮을 수 있습니다.그렇기에 Application에서 일괄 적용하는 방법입니다.class App : Application() { override fun onCreate() { super.onC..

Android 2025.06.01

Android 15 대응 - 16KB Page Size

문제 상황Android 15가 되며 16KB memory page size가 허용 되었습니다.이전까지는 4KB memory page size만이 허용되었고, 이 변화는 눈에 띄는 성능 향상을 가져왔습니다. 앱 실행시간 : 평균 3.16% 감소앱 실행 중 전력 소모 감소 : 평균 4.56% 감소카메라 실행 속도 : 평균 Hot Start - 4.48%, Cold Start - 6.60% 감소시스템 부팅 속도 : 평균 8% 감소 왜 대응해야 할까?Android 15에서 memory page size가 4KB로 고정이었다가 16KB가 가능하게 되었습니다.즉, Android 15부터 16KB ELF 정렬을 사용해서 Android를 빌드할 수 있게 되었습니다. ELF 정렬이란?메모리에 데이터를 배치할 때 특정 ..

Android 2025.05.26

Library를 배포해보자! feat. Pebble

그동안 목표였던 Grapheme을 활용한 라이브러리를 만들고 배포했다.배포하는 과정을 기록했으니 라이브러리를 만들고 싶다면 이 순서를 따라온다면 좋을 것 같다. 라이브러리도 구경하고 가세요~https://github.com/chattymin/Pebble GitHub - chattymin/Pebble: Treat String Like A Pebble With Grapheme At Kotlin 🫧 The Easy Way To Use Emoji 🚀Treat String Like A Pebble With Grapheme At Kotlin 🫧 The Easy Way To Use Emoji 🚀 - chattymin/Pebblegithub.com  MaveCentral 준비Maven Central 계정을 우선..

Android 2025.04.12

Android Flavor(Product Flavor)

Android Product Flavor란?하나의 코드베이스에서 서로 다른 버전의 앱을 만들기 위한 기능이다.우리가 사용하던 debug, relaease를 커스텀으로 만들 수 있다고 생각하면 된다. 언제 사용할까?앱 브랜드가 다를 때 (같은 기능인데 로고, 테마만 다르게)환경별 분리 (dev, staging, prod)지역별 버전 (KR, JP, US)유료 / 무료 앱대충 이렇게 기능은 대부분 같지만 일부만 다를 경우에 구분해서 사용하고자 할 때 Flavor를 이용한다.나는 sdk의 버전별로 샘플 앱을 만들어야 할 때 flavor를 버전으로 설정하여 기능을 공유하는 여러 앱을 만들 때 사용했다.  어떻게 쓸까?android { ... flavorDimensions "version" pro..

Android 2025.03.30

Android에서 Props Drilling을 해결해보자 with SnackBar

이 내용을 설명하기에 앞서 Props Drilling이라는 개념을 처음 들어보는 분들이 있을수도 있다.그래서 해당 개념에 대해서 간단하게 설명하고, 내가 Android에서 어떻게 Props Drilling을 방지했는지 이야기 해보겠다.  Props Drilling이란?React에서 나온 개념이다.Prop Drilling 은 props를 오로지 하위 컴포넌트로 전달하는 용도로만 쓰이는 컴포넌트들을 거치면서 React Component 트리의 한 부분에서 다른 부분으로 데이터를 전달하는 과정을 의미한다. 매개변수로 특정 값을 계속해서 내려주는 것이라 생각하면 된다. 아래 예시를 보면 이해가 될 것이다.@Composablefun test1() { test2 { // SHOW ACTION }}..

AsyncImage를 Preview에서 보는 3가지 방법

Android 개발을 하다보면 URL 이미지를 화면에 나타내기 위해 라이브러리들을 주로 사용할 것이다. Glide, Coil 등등 다양한 라이브러리가 존재하고 이를 사용하다보면 Compose에서 불편한게 딱 하나 있다.  Preview에서 이미지 영역이 안나온다.물론 이미지를 제외한 나머지 영역의 크기를 보고 대충 이미지가 저기 안에 들어가겠구나~ 생각할 수는 있지만, 앱을 실행하지 않고도 Preview에서 정확하게 테스트 하고 싶은 마음이 든다. 그렇기에 이를 해결하기위해 적용해본 3가지 방법을 공유하고자 한다. 제가 적용한 모든 방법은 Coil 기준으로 작성되었습니다.아마... Glide도 될껄요...?  1. PlaceHolderCoil을 사용할 때 사용되는 AsyncImage의 속성을 사용했다. ..

[Android Compose] Scroll과 imePadding을 같이 쓰면 제대로 동작을 안한다구요?

문제상황Column에 ScrollState를 넣어주고, 내부에 TextField를 여러개 넣어뒀다.그 후 키보드 높이 조정을 위해 adjustResize 설정을 한 후 imePadding을 넣어줬지만, 제대로 동작하지 않는다.문제 영상  정확히는 아래에 있는 TextField가 보일 정도로 올라오긴 하지만, 내가 원하는 만큼 더 위로 올라오진 않는다. 찾아보니 LazyColumn, Column에 verticalScroll을 넣어준다면 이런 오류가 존재한다는 것을 찾았다.https://issuetracker.google.com/issues/229628557 Google Issue Tracker issuetracker.google.com22년부터 이렇다는데 좀 고쳐주지 참...  뭐 구글이 이러는게 하루이..

Multi Module과 Custom Plugin을 사용해서 프로젝트를 관리해보자 feat. build-logic

요즘 안드로이드 프로젝트들을 보다보면 뭐가 되게 많다. 처음 프로젝트를 만들면 app 모듈 하나만 있는데 이사람들은 도대체 어디서 이렇게 많은 모듈을 만들었는지 모르겠다.그래서. 해봤다. 내가 직접 구현한 프로젝트 링크이니 참고한다면 이해하는데 도움을 줄 수 있을것 같아 첨부한다.https://github.com/Team-Hankki/hankki-android GitHub - Team-Hankki/hankki-android: 한끼익....한끼익.... Contribute to Team-Hankki/hankki-android development by creating an account on GitHub.github.com 예시는 여기있고, 자세한 설명은 이제 시작해보겠다.   Multi Module을 왜..

Android 2024.12.31