ViewStub 활용으로 성능 높이기

ViewStub이란? ViewStub은 사이즈가 없는 보이지 않는 뷰로 런타임에서 늦은 전개(lazy-inflate)를 원할 때 사용할 수 있다. ViewStub을 보이게 만들거나 inflate() 메서드를 호출하면 레이아웃이 전개되면서 ViewStub을 대체하기 때문에 ViewStub은 사라진다. 전개된 뷰는 ViewStub의 부모 뷰에 추가 된다. 레이아웃에서 ViewStub을 사용하는 예제를 확인하자. <ViewStub android:id=”@+id/stub”           android:inflatedId=”@+id/subTree”     더보기…

Room 컴파일러 옵션 중 room.expandProjection 사용하기

room.expandProjection 옵션 2019년 10월 9일 Room 2.2.0 stable 버전이 출시 됨에 따라  room.expandProjection 옵션을 사용할 수 있게 되었다. room.expandProjection 옵션 설정하기 android { … defaultConfig { … javaCompileOptions { annotationProcessorOptions { arguments = [“room.expandProjection”:”true”] } } } } 릴리즈 노트 및 공식문서에 다음과 같은 내용이 있다. room.expandProjection: Configures Room to 더보기…

글쓴이 Charlezz,

Glide를 사용함에도 trying to draw too large … bytes bitmap 메시지가 나온다면

“Canvas: trying to draw too large(” + bitmapSize + “bytes) bitmap.” 위 메시지가 나오는 상황은 DisplayListCanvas에 100MB이상의 Bitmap을 그릴 때 나오는 메시지다. Glide를 사용하고 있음에도 불구하고 해당 메시지가 출력되는것을 확인했다. 이유는 Aspect Ratio가 아주클 때, 예를들어 아주 긴 이미지를 출력할 때 문제가 되었다. 일반적인 경우에는 문제가 되질 않지만 나의 경우 더보기…

글쓴이 Charlezz,

안드로이드에서 Custom Lint 활용하기

Lint란? Android 스튜디오에 있는 Lint라는 코드 스캔 도구를 사용하면 앱을 실행하거나 테스트 사례를 작성하지 않고도 코드의 구조적 문제를 식별하고 수정할 수 있습니다. 도구에서 탐지된 각 문제는 설명 메시지 및 심각도 수준과 함께 보고되므로 개선이 시급한 순서대로 신속히 우선순위를 결정할 수 있습니다. 또한 프로젝트와 관련이 없는 문제를 무시해서 문제의 심각도 수준을 더보기…

View에 둥근 모서리를 갖는 배경색 지정하기

둥근 모서리를 갖는 단색 배경을 지정하려다 보면 다음과 같이 xml 을 정의한 뒤 View의 배경으로 지정할 수 있다. 하지만 다른 뷰에서 색상이나 radius 값을 변경해야하는 경우 이 xml 을 재사용하기는 쉽지 않다. 그래서 Databinding을 활용해보기로 한다. xml내에서 View 속성에 간단히 radius 값을 입력하는것으로 단색의 둥근 배경을 만들 수 있다.

안드로이드 클린 아키텍처

What is Clean Archtecture? 클린 아키텍처는 Robert C. Martin에 의해 만들어졌으며 그의 블로그 Uncle Bob에서 소개되었으며, 관심사를 계층별로 분리하는 소프트웨어 디자인 철학이다.  클린 아키텍처의 주요 원칙은 코드 종속성이 외부로부터 내부로 의존한다는 것이다.  내부 계층의 코드는 외부 계층의 기능을 알 수 없다. 외부 계층에 존재하는 변수, 함수 및 클래스 (모든 엔티티)는 안쪽계층에서 다시 등장할 더보기…

객체 지향 프로그래밍과 SOLID 원칙

SOLID란 2000년대 초반 로버트 마틴이 객체 지향 프로그래밍 및 설계에 대한 5가지 원칙을 소개 한 것인데, 유지보수와 확장이 쉬운 소프트웨어를 만들고자 할 때 이 원칙을 적용할 수 있다. 코드의 가독성을 높이고 확장이 쉬운 구조를 만들기 위한 지침이다. SOLID원칙은 5가지 원칙들에서 각 원칙의 두문자를 따와 만든 명칭이다. 각 원칙이 무엇인지 살펴보자. 더보기…

Android의 Canvas에 그려보자 : 유용한 그래픽스 클래스와 기능들

원문 : https://medium.com/over-engineering/android-canvas-drawing-useful-graphics-classes-operations-2803e435e848 안드로이드 캔버스에 뭔가 그리는건 상당히 힘든 작업입니다. 많은 클래스와 개념들이 뭔가 그릴 때 이해를 돕기 위해 존재 합니다. 만약 이전 포스트를 읽지 않았다면꼭 먼저 참고해보시기 바랍니다. 이 포스트에서는 안드로이드 프레임워크에 포함되어있고 캔버스를 사용할 때 유용한 몇몇 클래스들에 대해서 알아 보겠습니다. Rect / RectF top, left, right, bottom 이 4가지 더보기…

Android의 Canvas에 그려보자 : 선, 도형 그리고 그림까지!?

원문 : https://medium.com/over-engineering/getting-started-with-drawing-on-the-android-canvas-621cf512f4c7 안드로이드 Canvas 클래스에 빠지면 당신이 몰랐던 수퍼파워매직한 일들을 할 수 있습니다. 마음속에 있는 도형, 선, 그리고 그림까지 다 그릴수 있는게 상상이 되시나요?  안드로이드 캔버스가 도와줄거에요. 안드로이드 캔버스는 뭘까요? Canvas는 안드로이드 플랫폼에 포함되어있는 클래스로써 2차원적인 오브젝트를 화면에 그리는 것을 돕습니다.  Canvas라는 것이 안드로이드에서 등장한 새로운 개념은 아닙니다. 안드로이드 Canvas는 더보기…