본문 바로가기
반응형

전체 글89

안드로이드 관련 유용한 오픈소스 및 라이브러리 링크 안드로이드 관련 작업을 하다보면 github를 들러 자신이 개발하고자 하는 목적에 맞는 오픈소스를 찾아보거나 라이브러리를 이용해야할 때가 있습니다. 사실 모든 부분을 직접 개발하면 얼마나 좋은 개발자겠습니다만, 안드로이드는 업데이트 속도가 중요하고, 개발 속도 역시 여타 프로그램과는 다르게 속도가 중요하기 때문에 많은 회사나 사람들이 오픈 소스나 공식적으로 지원되는 라이브러리들을 사용 github를 들러 자신이 개발하고자 하는 목적에 맞는 오픈소스를 찾아보거나 라이브러리를 이용해야할 때가 있습니다.  사실 모든 부분을 직접 개발하면 얼마나 좋은 개발자겠습니다만, 안드로이드는 업데이트 속도가 중요하고, 개발 속도 역시 여타 프로그램과는 다르게 속도가 중요하기 때문에 많은 회사나 사람들이 오픈 소스나 공식적.. 2021. 4. 23.
(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.
728x90