안드로이드 클린 아키텍처

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는 더보기…

안드로이드 하드웨어 가속

안드로이드 하드웨어 가속 Android 3.0 (API 레벨 11)부터 Android 2D 렌더링 파이프 라인은 하드웨어 가속을 지원합니다. 즉, View의 캔버스 에서 수행되는 모든 그리기 작업이 GPU를 사용합니다. 하드웨어 가속을 활성화하는 데 필요한 리소스가 증가하기 때문에 앱에서 더 많은 RAM을 소비합니다. 타겟 API 레벨이 14 이상인 경우 기본적으로 하드웨어 가속이 활성화되지만 명시적으로 활성화 할 수도 있습니다. 애플리케이션에서 일반적인View와 Drawable만 사용하는 더보기…

안드로이드 서비스 심층 분석

원문 : https://proandroiddev.com/deep-dive-into-android-services-4830b8c9a09 안드로이드 Service로 빠져 봅시다 소개 안드로이드에서 종종 백그라운드 실행이 필요한 작업을 수행해야합니다. 이럴경우 메인쓰레드가 아닌 서브쓰레드를 생성하여 사용하게 됩니다. 하지만 예기치 않은 결과가 발생할 수 있습니다. 예를들어 서브쓰레드를 수행한 뒤 액티비티 화면 회전 등으로 인해 onDestroy()가 호출되고,  서브 쓰레드의 작업이 끝났을 때 해당 Activity는 존재하지 않는 상태라면 UI갱신을 더보기…