전체 글

Android 및 취미 활동을 공유하는 블로그입니다!!
Language/RxJava

[RxJava] 여러개 Completable 결합 - andThen

안녕하세요. 점냥입니다:) 이번 포스팅에서도 굉장히 오랜만에 인사드린 것에 대해서 죄송하다는 말씀 먼저 드려야 할 것 같습니다... ㅎ 변명을 하자면 취준, 동아리, 요즘 새벽 시간에 열심히 활동 중인 디스코드로 인해 블로그 활동이 소홀했습니다. 반성합니다 ㅠ 이번 포스팅에서는 현재 개발 중인 프로젝트에서 고민했던 주제인 Completable 결합하는 방법입니다. 이미지를 한 개 저장할 때 진행 중인 프로젝트에서는 Firebase Storage에 이미지를 저장하고 결과 값으로 Completable 스트림을 반환합니다. ViewModel에서 코드는 다음과 같이 같습니다. class MainViewModel( private val imageService: ImageService ) : BaseViewMode..

Android/Common

[Android] RecyclerView - ConcatAdapter

안녕하세요. 점냥입니다:) 굉장히 오랜만에 글을 쓰네요 ㅎ. 다들 잘 지내셨나요? 오늘은 RecyclerView 새로운 버전이 나오면서 새로운 Adapter인 ConcatAdapter에 대해서 알아보겠습니다. 사실 처음에는 MergeAdapter라는 이름으로 나왔지만 ConcatAdpater로 이름이 변경되었습니다. ConcatAdapter RecyclerView는 하나의 Adapter만을 가지며, 반복되는 뷰 리스트를 그리는 위젯입니다. 그 이유 때문에 사진과 같이 Header 혹은 Footer 등을 표현하기 위해 포지션으로 구분하고, 각 뷰 타입의 로직을 포지션 별로 구분하여 넣어주어야 했습니다. 이는 한 클래스에서 2가지 역할을 가지는 방법이며, 뷰가 복잡해질수록 코드가 비대해지는 안 좋은 방법이었..

Android/Common

[Android] LiveData의 Data를 한번만 관찰

안녕하세요. 점냥입니다:) 이번 포스팅 주제로는 SingleLiveData입니다. Android AAC LiveData의 사용법 중 하나로 LiveData를 아직 잘 모르신다면 링크를 먼저 읽어와 주세요! LiveData의 변경된 Data를 오직 한 번만 관찰? LiveData는 AAC ViewModel에서 주로 쓰이는 클래스로 뷰의 수명주기에 알맞게 데이터를 저장하는 역할을 가지고 있습니다. ViewModel에 존재하기 때문에 LiveData들은 디바이스의 가로/ 세로 전환 등 뷰가 재생성될 때에도 데이터가 유지됩니다. 따라서 뷰는 데이터를 다시 네트워크나 내부 저장소에서 가져올 필요가 없이 그대로 이전 데이터를 다시 사용할 수 있죠. 그런데 이러한 특성을 가진 ViewModel + LiveData 패..

Android/Common

[Android] MVVM 적용하기 - View와 ViewModel

안녕하세요. 점냥입니다:) 이번 포스팅으로 MVP 패턴에 이어 MVVM 패턴에 대해 포스팅하려고 합니다! MVVM 패턴은 저의 개인적인 생각으로는 가장 보편적으로 사용하는 안드로이드 아키텍처라고 생각됩니다. 만약 MVVM 패턴에 익숙하다면 Clean MVVM을 공부해보시는 것을 추천드립니다! MVVM Architecture MVVM은 Model, View, ViewModel로 이루어져 있습니다. Model은 MVP에서 사용되는 Model 개념과 동일하고 MVP에 비해 MVVM에서 달라진 점은 View와 ViewModel 간의 관계입니다. ViewModel은 MVP 패턴에서 Presenter와 유사하게 Model의 Data를 요청하고 받아 비즈니스 로직을 처리하는 곳입니다. MVP에서 Presenter와 ..

Android/Common

[Android] 상태바 투명으로 만드는 여러 방법에 대한 일지

안녕하세요. 점냥입니다:) 오늘 포스팅 주제는 상태바의 투명하게, 반투명하게 만드는 방법에 대해서 포스팅해 보겠습니다!~ 이 주제는 동아리에서 팀 프로젝트에서 상태바를 반 투명하게 만들려고 하는 과정에서 있었고 오랫동안 저의 머리를 골치 아프게 만들었습니다. ㅠㅠ 이번에 Android R(API 30)이 되면서 변경사항이 생기게 된 점도 다뤄보겠습니다! 상태바 상태바는 Android에 존재하는 여러 시스템 UI 중 하나이며 시간, 알람 등 디바이스의 정보를 아이콘으로 표시해 주는 역할을 수행합니다. 상태바 컬러 변경 @color/primary @color/primary_dark android의 ststus bar 컬러는 기본적으로 styles.xml의 colorPrimaryDark 속성을 따라갑니다. 따..

이야기/후기

[Mash-up] 동아리 해커톤 후기

안녕하세요. 점냥입니다:) 지난 2021년 2월 27일 토요일에 온라인으로 매쉬업 동아리 해커톤을 진행했습니다~~🎉 저희 배뽀팀은 Andorid, Web, Spring, Design 플랫폼이 팀을 이뤄 해커톤을 진행했습니다. 매번 온라인으로 회의하고 이야기하던 팀원분들을 실제로 만나는 시간이 되어 굉장히 기대가 되었던 날이었습니다. 아쉽게도 5인 이상 집합 금지로 인해 플랫폼 단위로 만나게 되어 아쉬움이 남게 되었어요 ㅠㅠ 입담, 입주자들의 이야기 저희 배뽀팀은 대학생들을 위한 솔직한 자취방 이야기 서비스를 기획했습니다. 입주자들의 솔직한 자취방 리뷰 리스트, 자취방에 대한 상세한 평가(학교와의 통학거리, 집주인 정보, 치안, 청결, 주변 상권 등) 제공해줌으로써 모든 대학생이 자신에게 맞는 방을 구해 ..

Android/Common

[Android] Android Font 직접 적용

안녕하세요. 점냥입니다:) 안드로이드에서 제공해주는 폰트 대신 디자이너가 요구하는 폰트를 적용해야 할 때가 생깁니다. 안드로이드 폰트를 적용하는 방법으로 두 가지가 존재한다고 하여 각각의 방법으로 포스팅을 진행하려고 해요! Font Resource Android 8.0(API 수준 26)부터 Font 리소스가 추가되었다고 합니다. res/font 경로에 폰트와 관련된 리소스 파일을 생성하고 R 파일에 의해 접근이 가능하다고 해요. ex) R.font.my_font Q. Android 8.0부터 지원한다고 한다면 그 이전 버전에서는 사용할 수 없는 건가요? 아니에요. 가능합니다! Support Libaray를 이용해 Android 4.1(API 수준 14) 이상부터는 Font를 사용할 수 있어요. 자세한 ..

GIT

[GIT] continuous integration - Github Action

안녕하세요 점냥입니다:) CI/CD 파이프라인이라는 개념에 대해 알고 있으신가요? 소프트웨어의 규모가 커지게 되면 여러 단위로 팀을 나누어 협업을 진행해야 합니다. 이 과정 속에서 여러 명이 작성한 코드들을 리뷰하거나 병합되는 과정이 매우 빈번하게 발생할 수 있어요. 이런 상황 속에서 만약 사람의 실수로 코드 리뷰에서 발견하지 못한 에러가 병합이 된다면 그 파장은 어마어마하겠죠? 사소한 에러라도 큰 프로젝트 규모에서는 치명적인 실수이기 때문에 최대한 사람이 아닌 기계가 검증하는 작업으로 대체하는 것 같아요. CI/CD 파이프라인도 그런 개념에서 탄생했습니다. 빌드/테스트를 통해 코드가 올바른지 검증하는 CI와 안전한 배포를 도와주는 CD 중 이번 포스팅에서는 Github Action으로 CI를 구성하는 ..

Android/Common

[Android] 딥 링크 - App Link

안녕하세요 점냥입니다:) 이전 딥링크 - 1 글에서는 URL Scheme 방식과 한계점에 대해서 간단히 알아보았습니다. 이번 포스팅에서는 구글에서 URL Scheme 방식의 한계점을 보안한 App Link에 대해서 알아보도록 하겠습니다. App Link 개요 2015년도에 Google/IO에서 발표한 기술이에요. Scheme 값이 중복되는 문제를 해결하였습니다. App Link는 http, https로 Scheme를 제한해서 URL Scheme 자체가 하나의 도메인을 나타나게끔 변경하였습니다. URL Scheme에서 자유롭게 정의했던 market:// 이나 Line:// 형식은 사용할 수 없습니다. App Link를 적용한 Intent-filter 코드를 보면 scheme을 http, https로 설정했..

GIT

[GIT] GitHub PR 템플릿, Issue 템플릿 만들기

안녕하세요. 점냥입니다:) 요즘 여러 명과 프로젝트를 진행할 기회가 많이 생겼어요! 굉장히 기대가 많이 됩니다. 하지만 여러명과 협업을 진행하다 보면 맞춰야 하는 사항들이 많아요. 코드 구현하는 것도 사람마다 스타일이 다르고 오늘의 주제인 Github PR이나 Issue 작성 글도 서로 이야기를 해서 동일한 형식으로 맞추는 것이 좋습니다. GitHub PR, Issue PR은 Pull Request의 줄임말로 여러 브랜치로 나누어 작업하고 master 혹은 develop 브랜치로 merge 할 때 코드 리뷰를 받기 위해 사용하는 기능입니다. Issue는 commit 단위로 진행되는 Git에서 기능을 명시적으로 구별할 수 있게 도움을 주는 Github의 기능입니다. PR과 Issue는 나 자신이 아닌 팀원..

점냥
점냥's Log