본문 바로가기

개발/Android16

안드로이드 LiveData란? 오늘은 안드로이드 AAC JetPack 라이브러리 중 하나인 LiveData에 대해서 알아볼 것이다. LiveData의 경우 장점도 굉장히 많고 다른 라이브러리(DataBinding, ViewModel 등)들과 함께 사용할 경우 훨씬 더 유용하다. MVVM 패턴에 필수적인 LiveData의 개념과 사용법에 대해서 알아보자 LiveData란? LiveData는 데이터의 변경을 관찰할 수 있는 Data Holder 클래스이다. 관찰이라고 하면 Observable이 생각날텐데 일반적인 Observable과는 다르게 LiveData는 안드로이드의 LifeCycle, 즉 생명주기를 알고있다. Activity, Fragment, Service 등과 같은 안드로이드 컴포넌트의 생명주기를 인식하며 그에 따라 LiveD.. 2023. 5. 9.
안드로이드 비동기, 멀티스레딩 차이 오늘은 비동기와 멀티스레딩의 차이에 대해서 알아볼 것이다. 먼저 비동기 프로그래밍은 안드로이드 개발을 하지 않더라도 개발자라면 무조건 필수적으로 알아야하는 개념중에 하나이다. 특히 안드로이드의 경우 RxJava나 Coroutine같은 비동기 라이브러리를 사용해 프론트(UI) 작업과 백그라운드 작업을 분리하여 사용해야하는 경우가 많기 때문에 더욱 중요하다고 볼 수 있다. 그렇다면 한번 자세히 알아보도록 하자 비동기프로그래밍? 일단 먼저 비동기 프로그래밍이란 무엇인지에 대해서 다뤄보려고 한다. 비동기적 모델에서는 여러 일이 동시에 발생할 수 있다. 일반적으로 코드를 작성하면 프로그램은 실행시간이 긴 함수를 실행할 때, 그 함수의 실행 흐름을 막지(block) 않고, 프로그램을 계속 실행한다. 그리고 그 함수.. 2023. 5. 8.
안드로이드 Compose란? Compose가 필요한 이유 오늘은 Compose에 대해서 한번 알아볼 것이다. 안드로이드 개발자들 사이에서 요즘 굉장히 핫한 Compose가 무엇인지, 그리고 왜 필요한지에 대해서 정리해보고자 글을 써봤다. 일단 Compose가 필요한 이유는 크게 3가지이다. xml을 벗어난 UI 개발 선언형 UI 상속이 아닌 확장 XML을 벗어난 UI 개발 먼저 기존 안드로이드 UI의 특징을 살펴보자. 기존까지 안드로이드 UI를 다룰때는 Xml에다가 UI 속성을 정의를 하는경우가 있고, Class에서 프로그래밍으로 정의를 하는 경우가 있었다. 안드로이드는 기본적으로 Xml를 통해서 UI를 만든 다음에 class(Activity or Fragment or Dialog 등등)에서 UI를 컨트롤 하고 xml의 UI들을 클래스에서 사용할 셋팅이 필요하.. 2023. 4. 26.
안드로이드 Content Provider란? 오늘은 콘텐츠 프로바이더(Content Provider)에 대해서 알아보도록 할 것이다. 콘텐츠 프로바이더는 앱 간의 데이터 공유를 목적으로 사용되는 컴포넌트이다. 그리고 안드로이드의 4대 컴포넌트 중 하나기이도 하다. 한번 예시를 보며 알아보도록 하자. 콘텐츠 프로바이더 구조 먼저 A라는 앱과 B라는 앱이 있다고 가정하자. B라는 앱은 파일 데이터, 데이터베이스, Preference 등 여러 가지의 데이터를 가지고 있다. 이 데이터를 A 앱에서 접근할 수 있을까? 물론 없다. 파일 데이터가 외장 메모리 공간에 저장되어 있다면 가능하겠지만 여기서 말하는 데이터는 내장 메모리 공간에 저장된 데이터이므로 접근이 불가능하다. 하지만 콘텐츠 프로바이더를 이용하면 접근이 가능하다. A앱에서 B앱의 데이터를 이용하.. 2023. 4. 25.