ENAN

Developer, Artist, Traveler

공부/Android 8

[Android] AAC - Databinding

사실 데이터바인딩은 안드로이드에서만 사용하는 개념은 아니다. 포괄적인 의미에서 데이터바인딩은 UI 요소와 데이터를 결합시켜 사용하는 것을 의미하고, 당연히 다른 언어와 프레임워크에서도 사용되는 개념이다. 아래에서는 Android Jetpack - AAC의 일부인 databinding library에 대해서만 설명할 것! DataBinding이란? 이 말이 바로 와닿지는 않을 테니(저는 그랬습니다), 우선은 레이아웃 xml 파일에 data를 연결해서 사용하는 것 정도로 이해하고 넘어가 보자. 👇 선언적 형식은 뭘까 👇 더보기 선언적 형식이라는 말이 무슨 말일까? 를 이해하기 위해서는, findviewById를 이용했던 기존 방식(명령적)과 차이를 보면서 이해하면 좋을 것 같다. - 기존 명령형 방식 ove..

공부/Android 2021.05.01

[Android] AAC - ViewModel ( + vs MVVM의 ViewModel)

ViewModel 개요 우선 MVVM 관점에서와 AAC 라이브러리로서의 ViewModel을 구분해 작성하려 한다. MVVM 관점에서는 viewModel이 어떤 역할을 하는지와 같은 개념적인 얘기를 다루고, AAC 라이브러리 관점에선 이 viewModel이 안드로이드에서 어떻게 구현되었는지, 구체적인 사용 방법 등에 대해 적어보겠다. MVVM에 대해 잘 모른다면 아래의 글을 참고하면 좋을 듯! blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html [Android] MVVM & 안드로이드 아키텍쳐 컴포넌트 시작하기 (나를 포함한) 안드로이드 개발을 처음 시작하는 사람들은 대부분 액티비티에 거의 모든 코드를 직접 넣는다. 하지만 시간이 갈수록 액티비티는 점점 ..

공부/Android 2021.03.31

[Android] AAC - LiveData

LiveData란?🤔Lifecycle을 알고 있는, Observe 할 수 있는 Data holder classLiveData가 갖고 있는 데이터에 어떠한 변화가 일어날 경우, 등록된 Observer 객체에 변화를 알려주는 방식으로 사용된다.라이브데이터를 처음 접해 본다면 무슨 말인지 바로 이해하기 힘들 수 있다. 라이브데이터를 제대로 이해하고 사용하기 위해서는 Observer Pattern, Lifecycle 두 가지에 대해 먼저 이해해야 한다. 옵저버 패턴(Observer Pattern)이란?🤔어떤 객체의 상태 변화를 관찰하는 Observer들의 목록을 객체에 등록하여, 상태 변화가 있을 때마다 등록된 Observer에게 통지하도록 하는 디자인 패턴LiveData는 데이터를 갖고 있고, 누군가에게 이 ..

공부/Android 2021.03.12

Realm vs Room

AAC중 Room을 공부하다가 전에 프로젝트를 하며 사용했던 Realm과 어떤 차이가 있는지 궁금해져서 둘은 어떤 차이가 있는지 간단히 알아보려 한다.Realm과 Room은 Android 환경에서 내부 DB로 가장 많이 사용하는 라이브러리이다. 물론 realm, room 외에도 다양한 db 라이브러리들이 있으나 논외로 하고 가장 많이 사용하는 두 녀석을 알아보자.RealmRealm이란 모바일 환경을 주요 타깃으로 삼은 오픈소스 데이터베이스 관리시스템(DBMS)이다.Realm은 NoSQL 데이터베이스를 지향하며, 모델 구조 자체가 객체 컨테이너로 구성되어 있다. 또한, Realm 데이터베이스는 rawSQL을 사용할 수 없으며 자체적으로 Realm API를 통해 실행된다. 이를 통해 좀 더 직관적인 사용이 ..

공부/Android 2021.02.28

[Android] AAC - Room

Rooom이란? Room은 SQLite의 추상 레이어를 제공해 주어 DB에 편하게 접근할 수 있도록 해주는 ORM Library이다. JetPack, 그 안에서도 AAC 안에 속해있는 라이브러리 중 하나다. SQLite에 비해 Room을 사용했을 때 얻을 수 있는 이점이 많다.보일러 플레이트 코드를 줄일 수 있다는 점부터, 컴파일 타임에 유효성 검사를 할 수 있고, schema가 변경되었을 때도 자동으로 업데이트가 되며, LiveData 등과 함께 사용해 데이터를 Observation 할 수 있다는 점 등 장점이 많다. 현재 Google은 SQLite 대신 room을 사용하기를 적극적으로 권장하고 있다. 사용 방법 1. dependency 추가 Room 을 입력하고 alt + Enter를 누르면 depe..

공부/Android 2021.02.02

Coroutine과 Retrofit 함께 활용하기 -2) 레트로핏 편

* 이 글에서는 coroutine과 함께 retrofit을 활용하기 위해 필요한 내용만을 다룹니다. retrofit에 대해 공부할 방대한 내용들은 여러 좋은 글들에서 설명되어 있으니 여기서는 최소한만 설명하고 넘어갑니다. * * coroutine을 함께 사용하는 방법으로 설명하니까 코루틴이나 다른 비동기 처리 방법을 잘 모른다면 미리 읽고 오기 2020/06/03 - [공부/기록] - Coroutine과 Retrofit 함께 활용하기 -1) 코루틴 편 Coroutine과 Retrofit 함께 활용하기 -1) 코루틴 편 * 이 글에서는 retrofit을 coroutine과 함께 활용하기 위해 필요한 내용만을 다룹니다. coroutine에 대해 공부할 방대한 내용들은 여러 좋은 글들에서 설명되어 있으니 여기..

공부/Android 2020.06.13

Coroutine과 Retrofit 함께 활용하기 -1) 코루틴 편

* 이 글에서는 retrofit을 coroutine과 함께 활용하기 위해 필요한 내용만을 다룹니다. coroutine에 대해 공부할 방대한 내용들은 여러 좋은 글들에서 설명되어 있으니 여기서는 최소한만 설명하고 넘어갑니다. * 코루틴이란? - 요악하면 Thread의 가벼운 버전이라고 할 수 있다. 실제 쓰레드는 아니지만 마치 쓰레드를 사용하는 것 처럼 비동기 프로그래밍을 가능하게 해 준다. - 왜 코루틴을 쓰는가? : 여러 가지 이유가 있지만 가장 명확한 이유는 비동기 처리를 동기 프로그래밍처럼 쉽게 할 수 있기 때문이라고 생각한다. 쓰레드보다 메모리를 적게 쓰긴 하지만 그래서 효율적이냐? 성능이 좋냐? 하는 문제는 생각해볼 것이 많은 문제기 때문에 일단 미뤄둔다. (무조건 코루틴이 쓰레드보다 좋다! 라..

공부/Android 2020.06.03

안드로이드 스튜디오에서 레이아웃 프리뷰가 보이지 않을 때

안드로이드 스튜디오에서 레이아웃 프리뷰가 보이지 않는 문제 해결법(android studio version 3.1.3 기준) 안드로이드 스튜디오 3.1.3 버젼에서 프로젝트를 만들면 레이아웃이 안보이는 문제가 생긴다.왜인지는 모르겠으나 안드로이드 스튜디오가 업데이트 되면서 appcompat-v7 최신버젼에서 생기는 버그인 것 같다고 한다. 참조한 원문 링크 : http://kiwinote.tistory.com/147 구글링 해 본 결과 위 링크에서 해답을 찾았다. 아래는 텍스트뷰가 안보이는 모습 에러창을 보면 아래와 같은 에러가 떠있다. Render problem : Failed to load AppCompat ActionBar with unknown error. Failed to instantiate ..

공부/Android 2018.07.02