본문 바로가기
반응형

분류 전체보기88

(android-jetpack)LiveData LiveData라는 친구는 jetpack 관련 라이브러리를 뒤적거리다보면 항상 등장하고 꽤 중요하게 다뤄지는 기본 옵션같은 존재입니다. 이것을 대표할 수 있는 가장 큰 특징은 수명주기를 인식한다는 것입니다. 물론 일반적인 변수가 수명주기를 인식하는 것은 큰 메리트가 아닐지도 모릅니다. 그러나 이 LiveData는 observable하다는 특징을 지니고 있습니다. 이는 LiveData가 들고 있는 변수가 변경될 경우, 그와 연결된 데이터를 자동으로 변경시켜 준다는 것을 의미합니다. 기존에 여러가지 옵저버들을 사용해 '변수 변경 -> UI 처리 코드 추가 -> UI 변경' 이 과정을 LiveData를 통해서 가능하다는 것을 의미합니다. 허나 다른 옵저버들은 현재 연결된 UI의 상태가 어떤 상태인지(생명주기를.. 2021. 4. 13.
(android)greenrobot - EventBus 이 글의 주제는 그린로봇이 만든 이벤트 버스라는 라이브러리입니다. 안드로이드에서 사용되는 이벤트 버스는 가장 유명한 것으로 이 greenrobot과 otto가 있는데 저는 이 그린로봇의 이벤트 버스를 사용중이기 때문에 이에 대해 다루게 되었습니다. 위 그림은 이벤트 버스의 동작 방식을 간단하게 도형으로 설명한 부분입니다.(이 그림은 greenrobot의 github readMe에 나와있는 그림입니다.) 소개할 라이브러리를 보기 전에 이벤트 버스의 개념에 대해서 한 번 살펴보겠습니다. 이벤트 버스란 버스 네트워크의 동작 방식과 유사하게 하나의 이벤트를 동일 채널에 연결된 모든 노드(Subscriber)들에게 보내는 방식을 의미합니다. 이를 통해 각 노드들은 채널에 연결되어 있기만 하다면 이벤트를 채널에 보.. 2021. 4. 6.
(android-jetpack)AAC에서의 뷰모델 안드로이드에서 제공하는 안드로이드 아키텍쳐 컴포넌트(Android Architecture Component)의 ViewModel에 대해서 이야기하려고 합니다. 기존 MVVM 모델의 뷰 모델과 동일한 기능을 가진 존재였다면, 그저 디자인 패턴 설명 시에 했던 모델로서 설명이 끝이겠지만, MVVM 모델을 설명하면서 했던 ViewModel과는 분명 다른 존재라고 안드로이드 공식 문서에서도 분명하게 설명하고 있습니다. 위와 같은 말이 안드로이드의 MVVM 디자인 패턴을 공부하는 과정에서 제일 많이 들을 수 있고, AAC나 jetpack에 대해 공부하는 과정에서 제일 알기 쉬운 주제입니다. 그러나 글을 쓰는 이유는 안드로이드 프로젝트에 MVVM 모델을 채용하면서 동시에 버전 업을 위해 AAC를 채용하게 되었더니 .. 2021. 3. 30.
(android - jetpack)데이터 바인딩 작업 안드로이드의 jetpack 라이브러리가 등장하면서 dataBinding이라는 기술이 안드로이드에도 도입되기 시작했습니다. dataBinding의 개념은 이미 예전부터 버터 나이프 라이브러리와 같은 개념으로 많이 알려져 있었습니다. 하지만 jetpack을 통해 공식적으로 도입된 느낌이 강합니다.(물론 아직까지도 버터 나이프와 같은 데이터바인딩 라이브러리를 사용할 수 있습니다.) 데이터바인딩은 XML과 기존 코틀린(자바) 코드와의 연결을 기초로 합니다. 이는 특별한 연결 설정 없이 데이터 바인딩을 통해 변수의 변경에 따라 뷰를 변경해줄 수 있다는 것을 의미합니다. 이로 인해 더욱 간단하게 view와 관련된 기능과 다른 기능들을 분리할 수 있도록 도와줍니다.(여러가지 디자인 패턴을 적용하기 더욱 좋아진다는 것.. 2021. 3. 22.
스프링을 배우기 전에(3) - 의존성 주입(Dependency Injection) 스프링을 배우기 전 준비해야 하는 단어입니다. DI라고도 하는 의존성 주입인데요. 이미 객체지향 프로그래밍을 하는 동안에 배웠던 단어일 수도 있습니다. 하지만 그만큼 필요한 개념이라고도 볼 수 있겠네요. DI(Dependecy Injection)는 코드에서 필요한 객체를 직접 사용하는 것이 아니라 파라미터나 세터등을 통해 외부에서 필요한 객체를 받아와서 사용하는 개념입니다. class PlayList () { val weAre = WeAre() val redSun = RedSun() } class WeAre : Music() { ...//생략 } class RedSun : Music() { ...//생략 } 이러한 클래스가 있습니다. PlayList 클래스 내부에 존재하는 WeAre와 RedSun은 전부.. 2021. 3. 17.
(android) 스플래시 화면 만들기 스플래시 화면이란 어플리케이션을 실행할 때 보여주는 로딩 화면을 의미합니다. 처음 스플래시 화면을 도입하게 된 계기는 애플리케이션 구동시 처리해줘야 할 사항이 많은데(버전체크, 기본 데이터 로딩, 서버에 접속 등) 그 일들이 처리되는 동안 제대로 구성되지 않은 화면을 사용자들이 보고 있는 경우 애플리케이션의 완성도가 떨어진다고 판단되어 생겨난 디자인이라고 합니다. 또한 앱을 켤 때 꾸준히 노출되는 디자인이기 때문에 앱 브랜드를 홍보하기 위한 창구로 활용되고 있기도 합니다. 그래서 스플래시 화면은 내부적인 기능이라기 보다는 디자인 적인 측면이 강합니다. 하지만 대부분의 애플리케이션이 스플래시 화면을 통해 앱의 완성도를 올리고 있는 추세라 사용법을 알아두는 것이 좋습니다.(물론 스플래시 스크린 자체의 기능은.. 2021. 3. 11.
728x90