Palette 라이브러리 뜯어보기

Palette 라이브러리는 이미지에서 눈에 띄는 색상들을 추출해주는 라이브러리다. 이 라이브러리가 어떤식으로 동작하는지 확인해보자. Median cut Palette 라이브러리는 Median cut 알고리즘을 기반으로 동작한다. Median cut은 말 그대로 중앙값을 자른다는 뜻이다. 가장 긴 차원을 따라 중앙값이 있는 지점(인덱스)에서 각 데이터 집합을 재귀적으로 자르고 임의 개수의 차원 데이터를 일련의 집합으로 정렬하는 알고리즘이다. 이 더보기…

나의 코틀린 멀티플랫폼 프로젝트 실패기

Kotlin Multiplatform(KMP)란? 코틀린 멀티플랫폼을 사용하면 Server, Android, iOS, Desktop, Web 여러 플랫폼에서 단일 코드베이스로 모든 애플리케이션간에 로직을 공유할 수 있게 된다. 심지어 컴포즈 멀티플랫폼을 사용한다면 일반적인 UI를 모든 플랫폼에서 공유할 수 있다. KMP 도입배경 첨부된 이미지와 같이 사용자가 업로드 하고자 하는 이미지의 대표 색상을 추출하는 로직이 필요했다. 안드로이드의 경우 Palette 더보기…

Gradle 빌드 시 특정 태스크 건너뛰기

태스크를 건너뛰게 된 배경 위 캡쳐된 이미지를 보면 총 빌드시간에서 특정 태스크(RealmAccessorsTransformer) 가 상당한 부분을 차지하는 것을 확인할 수 있다. 왜 그런지 구글링을 해봤더니 프로젝트를 AGP 8.0로 업데이트 한 이후에 Realm(모바일용 DB)에 포함된 Gradle 플러그인이 새로운 Transformer API 상에서 증분빌드를 지원하지 않아 프로젝트 코드 전체를 새로 빌드하다보니 시간이 많이 소요되는 더보기…

2023 찰스의 안드로이드 컨퍼런스 후기

연사자를 비롯한 스태프분들은 이른 아침부터 리허설과 행사준비를 도와주셨습니다. 주말에 컨퍼런스 참여를 위해 오신분들을 위한 다과와 굿즈를 준비! 인프런에서 후원해주신 스티커! 감사합니다 😍 이지스퍼블리싱, 한빛미디어, 제이펍 에서 도서를 후원해주셨습니다. 행사에 참여 해주신 분들이 잘 볼 수 있는 곳에 비치했었죠. 다음 세션 준비하는 동안 인터뷰를 하고 책을 나눠드렸습니다 👐 많은 분들이 관심을 더보기…

안드로이드 앱 모듈화 가이드

모듈이란? 모듈(module)이란 앱을 구성하는 요소로, 관련된 소스 코드나 리소스 등을 하나로 묶는 단위다. 최근에는 앱 모듈에 모든 코드를 작성하지 않고, data나 domain 등의 모듈로 세분화 시켜 개발한 뒤 최종적으로 프로덕트를 만들 때 이러한 모듈들을 합쳐서 하나의 애플리케이션을 만들게 된다. 이런 방식을 모듈화 프로그래밍이라고도 한다. 모듈은 다음과 같은 특징을 갖는다 단일 더보기…

이미지 메타데이터 지오태깅(Geotagging) 제거하기

이미지 내에 포함되어 있는 Exif 데이터는 조리개, 셔터속도, 초점 거리, 측광방식, ISO 설정 그리고 출력시 도움을 줄 수 있는 색상 정보등이 들어있다. 이와 더불어 카메라의 모델명, 등록번호, 위치 정보 등 다른 정보도 포함되어 있다. 지오태깅은 웹사이트, 비디오, QR 코드, 이미지 등 다양한 미디어에서 지리적 식별 메타데이터를 추가하는 프로세스를 일컫는다. 이 더보기…

이미지 Exif(메타-데이터) 수정하기

Exif 란? Exif(Exchangeable Image File format)는 스캐너, 스마트폰, 디지털 카메라 등에서 기록된 이미지(또는 오디오) 파일을 다룰 때 태그를 보조적으로 사용하는 표준 포맷이다. 위 이미지에 나타나는 ‘출처‘, ‘규격‘, ‘기기 제조사‘, ‘위도‘, ‘경도‘ 등이 일반적으로 Exif형식의 내용이며, 이 메타데이터들은 이미지 파일 자체에 내장되어 있다. ExifInterface 안드로이드에서 ExifInterface는 다양한 이미지 파일 형식의 Exif 더보기…

파일 시그니처로 파일 포맷 확인하기

간혹 파일 포맷을 먼저 확인하고, 그에 맞게 처리해야 할 때가 있다. 예를 들어, 이미지 포맷들 중 JPEG와 GIF를 구분하여 다르게 처리해야하는 경우, JPEG는 정적인 단일 이미지로 렌더링 하고 GIF는 이미지 스트림을 지원하므로 소위 말하는 움짤(Animated GIF)로 구현해야 하는 경우가 있다. 그렇다면 파일 포맷이 JPEG 또는 GIF인지 어떻게 확인하면 좋을까? 가장 더보기…