미분류
Emulator 에서 dim background 가 나타나지 않는다면?
HW 오버레이를 사용하지 않음에 체크하면 된다. 근본적인 문제 해결방법은 아니지만, 화면 컴포지션에 GPU 대신 CPU를 사용하도록 해서 해결할 수 있다. (아무래도 성능은 느려지겠지..) 안드로이드14(API Level 34) 에뮬레이터 문제인 듯 하다. 개발 테스트 목적으로만 비활성화 하자.
HW 오버레이를 사용하지 않음에 체크하면 된다. 근본적인 문제 해결방법은 아니지만, 화면 컴포지션에 GPU 대신 CPU를 사용하도록 해서 해결할 수 있다. (아무래도 성능은 느려지겠지..) 안드로이드14(API Level 34) 에뮬레이터 문제인 듯 하다. 개발 테스트 목적으로만 비활성화 하자.
기본적으로 FragmentManager는 프레임워크에서 제공하는 FragmentFactory를 사용하여 프래그먼트의 새로운 인스턴스를 만든다. FragmentFactory는 리플렉션을 사용하여 프래그먼트의 파라미터가 없는 생성자를 찾아 호출하는데 이러한 부분 때문에 개발자가 파라미터가 있는 생성자를 직접 호출하여 프래그먼트를 인스턴스화 하는 코드가 있더라도 프래그먼트가 재생성 될때는 파라미터가 없는 생성자를 찾아서 호출하게 된다. 더보기…
Figma 는 협업 인터페이스 디자인 도구로써 디자이너의 아이디어와 비전을 빠르게 개발자를 포함한 다른 부서에게 전파 할 수 있습니다. 또한, Figma에서는 Figma 파일과의 읽기 및 상호작용 API 제공하고 있습니다. 이번 포스팅에서는 Figma API를 활용해서 할 수 있는 간단한 일들을 소개합니다. 토큰 더보기…
Fleet도 훌륭한 IDE지만 아직 프리뷰 수준이라 미흡한 점이 있고, 기존 Android Studio(=IntelliJ) 에 익숙한 개발자는 Fleet 보다는 Android Studio를 선호할 수 있다. Android Studio 에서 iOS와 Android 앱은 이미 개발할 수 있도록 플러그인을 지원하는데, 데스크탑은 그렇지 않다. IDE 에서 지원안할 더보기…
Compose Multiplatform 에서는 플랫폼별 공통으로 사용가능한 WebView를 제공하고 있지 않으므로, expect/actual 키워드를 활용하여 플랫폼별로 웹뷰를 구현해야 한다. 처음에는 https://github.com/KevinnZou/compose-webview 라이브러리를 활용하여 구현하고자 했으나, 개발환경 버전과 일치하지 않아 문제가 생겼다. 이 포스팅에서는 직접 JavaFX를 활용하여 desktop(jvm)을 위한 웹뷰 구현방법을 소개하고자 한다. 더보기…
BuildConfig란? Gradle은 빌드 시 BuildConfig 클래스를 생성하고, 현재 빌드에 관한 정보를 참조할 수 있다. buildConfigField() 메서드를 Gradle 스크립트에 선언하는 것으로 BuildConfig 클래스에 커스텀 필드를 추가할 수 있으며 앱 코드에서의 해당 값에 액세스할 수 있다. 마찬가지로, resValue()로 앱 리소스 값을 추가할 수 더보기…
패스트캠퍼스에서 5월을 맞이하여, 블로그를 방문해주시는 분들을 위해 특별한 이벤트를 준비해주셨어요! [ Android 의존성 주입 완전정복 : Hilt로 확장성 높은 앱 완성하기 (feat. 클린아키텍처)] 강의의 기대평 or 강의를 수강하고자 하는 이유를 5/9까지 댓글로 남겨주세요! 추첨을 통해 2명에게는 무료 수강권을 드리고, 댓글을 남겨주신 모든 분들에게는 40% 더보기…
Palette 라이브러리는 이미지에서 눈에 띄는 색상들을 추출해주는 라이브러리다. 이 라이브러리가 어떤식으로 동작하는지 확인해보자. Median cut Palette 라이브러리는 Median cut 알고리즘을 기반으로 동작한다. Median cut은 말 그대로 중앙값을 자른다는 뜻이다. 가장 긴 차원을 따라 중앙값이 있는 지점(인덱스)에서 각 데이터 집합을 재귀적으로 더보기…
Kotlin Multiplatform(KMP)란? 코틀린 멀티플랫폼을 사용하면 Server, Android, iOS, Desktop, Web 여러 플랫폼에서 단일 코드베이스로 모든 애플리케이션간에 로직을 공유할 수 있게 된다. 심지어 컴포즈 멀티플랫폼을 사용한다면 일반적인 UI를 모든 플랫폼에서 공유할 수 있다. KMP 도입배경 첨부된 이미지와 같이 사용자가 업로드 하고자 더보기…
태스크를 건너뛰게 된 배경 위 캡쳐된 이미지를 보면 총 빌드시간에서 특정 태스크(RealmAccessorsTransformer) 가 상당한 부분을 차지하는 것을 확인할 수 있다. 왜 그런지 구글링을 해봤더니 프로젝트를 AGP 8.0로 업데이트 한 이후에 Realm(모바일용 DB)에 포함된 Gradle 플러그인이 새로운 Transformer API 상에서 증분빌드를 더보기…