List와 LiveData의 사용시 Observer 에게 Notify 언제, 어떻게 해야할까…?

AAC LiveData의 등장으로 데이터바인딩 라이브러리 사용시 MVVM아키텍처와 맞물려 데이터와 UI간의 동기화하는 코드를 많이 사용하고 있습니다. 단수의 Data를 다루는데 있어서 LiveData는 편리했습니다. 기존 BaseObservable을 구현한 클래스에서 notifyChange 또는 notifyPropertyChange를 처리할 필요도없고, 생명주기를 알고있다는 점이 좋았습니다. 하지만, 복수의 Data인 List 또는 ArrayList 더보기…

글쓴이 Charlezz,

[OpenGL] 8. MVP Matrix 만들기

사실 앞서 Homogeneous 좌표와 Matrix를 설명한 이유는 지금 알아볼 MVP Matrix 때문입니다. MVP Matrix를 사용안하고도 화면을 무언가 표현을 할수는 있었습니다. 하지만 MVP Matrix를 사용하지 않는 다면 오브젝트에 대한 이동, 회전, 스케일링 같은 변환 등을 통한 3D 공간감을 얻긴 힘들 것입니다. 더보기…

[OpenGL] 7. Matrix(행렬)

매트릭스의 세계로… 지금까지는 점 , 선, 삼각형 또는 삼각형 결합을 통한 다각형을 그리는 방법에 대해서 알아보았습니다. 하지만 이는 평면상의 2D그래픽이지 3D는 아니였습니다. 또한 정사각형이 나오길 기대했으나 직사각형으로 나타나는 것을 볼 수 있었습니다. 사실 코드로 정사각형으로 표현하는 방법은 매우 간단하지만, 이해하기는 더보기…

[OpenGL] 6. Vector와 동차좌표

삼각형, 사각형 흥미있게 잘 그리다가.. 갑자기 이게 무슨 소리입니까? OpenGL에서 도형을 그리기 위해 우리는 정점을 입력해왔고, 정점 하나는 (x, y, z) 였습니다. 기본적으로 정점은 위치를 표현하지만 그 외에도 다른 속성을 갖습니다. 세개의 값을 바로 Vector라는 개념입니다. 벡터(Vector) 벡터란 크기와 방향을 더보기…

딥링크(Deeplink)와 앱링크(Applink)의 차이점

Applink? Deeplink? 딥링크는 인텐트필터의 일종으로 사용자들이 직접적으로 안드로이드 앱내의 액티비티에 접근하는것을 허용합니다. 다른 앱에서 또는 웹브라우저에서의 링크를 클릭했을때 해당 링크의 scheme을 보고 앱을 실행하게 되며, 해당 링크를 처리하는 2개이상의 앱이 있다면 사용자에게 다이얼로그를 띄어 앱을 실행할 수 있도록 유도 합니다.  앱링크는 더보기…

글쓴이 Charlezz,

Dagger2와 AAC ViewModel을 같이 썼을 때 생길 수 있는 문제점

이 포스팅에서 Dagger2와 ViewModel에 대한 설명은 다루지 않습니다. Dagger2와 AAC의 ViewModel같이 썼을때의 문제점 Dagger2와 ViewModel을 같이 쓰다가 생긴 문제가 하나 있습니다. AAC뷰모델을 쓴다면, 액티비티의 configurationChange가 발생했을때 ViewModel의 인스턴스를 새로 만들지 않고 유지하는게 장점중 하나인데, Dagger2를 통해 ViewModel인스턴스를 인젝션했을 때 매번 더보기…

[OpenGL] 5. 사각형 만들기

사각형 만들기 OpenGL ES 2.0에서 사각형(Quad) 그리기를 지원하지 않습니다. 그렇기 때문에 삼각형 두개를 조합해서 그리는 방법을 이용합니다. Note: OpenGL은 OpenGL ES와 달리 사각형을 직접 그리는 것이 가능하지만, 잘쓰이지 않으며 기본적으로 삼각형으로 조합하여 그립니다. 지난 포스팅에서 삼각형을 그려보았다면, 사각형 그리기도 쉽게 더보기…

[OpenGL] 4. 도형을 그리는 방식

도형은 어떤식으로 구성될까? 지난 삼각형 그리기에서 glDrawArrays(GL_TRIANGLES, n, m)를 통해 주어진 정점 3개를 통해 삼각형을 그릴수 있었습니다.  OpenGL ES에서는 다양한 평면이나 입체면을 구성하기 위해서 정점을 이어서 도형을 구성합니다.  정점을 이어서 그리는 방식에 대해서 설명하고자 합니다. GL_POINTS : 정점에 해당하는 픽셀의 더보기…

[OpenGL] 3. 삼각형 만들기

삼각형 만들기 지난 1. Android OpenGL ES의 개요 포스팅에서 간단히 삼각형을 만들었고, 삼각형을 그리기위해서 Activity, GLSurfaceView, Renderer가 필요했었습니다. 이번 시간에는 삼각형을 그리는 프로세스에 대해서 알아보도록 하겠습니다. 안드로이드 프로젝트 설정 디바이스가 OpenGL ES 2.0을 지원해야하기에 다음과 같이 메니페스트에 선언해줍니다. <manifest> <uses-feature android:glEsVersion=”0x00020000″ 더보기…

[OpenGL] 2. Shader와 Rendering pipeline

OpenGL ES 2.0이 화면을 그리는 과정 이전 포스트에서 간단하게 OpenGL을 이용한 삼각형을 만들어보았습니다.  삼각형을 화면에 나타내기 위해 여러가지 과정을 거쳐 처리를 하게 되고 이러한 과정들을 렌더링 파이프라인이라고 합니다. 그리고 이 파이프라인을 이용하려면 셰이더(Shader)라는 서브루틴(프로그램)을 이용해야합니다. Shader(셰이더)란? 셰이더는 그래픽 처리 장치 더보기…