android 26

[안드로이드] 앱 모듈화 그 두번째 이야기

app modularization Summary (요약)이전에 제시한 앱 모듈화 설계에서 이슈가 될만한 요소들을 해소 하면서 새로운 앱 모듈화를 제시합니다.Background (문제점)core 모듈에서 repository 패턴을 넣는다면 결국엔 해당 repository 를 사용하는 여러 feature 에서 “변화” 가 생긴다면 유지보수단에서 소스 충돌에 대한 이슈는 필연적으로 발생하게 됩니다.Solution (해결책)feature 모듈들은 core 모듈을 의존하지만, 최소한으로 의존을 두면서 각 feature 에게 “독립성” 을 부여합니다.core 모듈은 feature 에서 주로 사용되는 network, local 라는 데이터 소스를 최소한으로 사용할수 있는 클래스로만 모듈화를 하고 feature 에서 ..

android 2023.03.27

[안드로이드] 갤러리 라이브러리 소개

앱을 개발하다보면 앨범을 불러와서 처리해야 하는 경우가 있습니다. 파일 읽기 / 쓰기 라던지 이러한 것부터 시작해서 정말 귀찮은 작업들이 꽤 있는데요. 이때를 대비해서 쓸만한 라이브러리를 소개하겠습니다. https://github.com/sieunju/gallery GitHub - sieunju/gallery: Android Gallery Libaray 🤩! And Simple is Best! Android Gallery Libaray 🤩! And Simple is Best! Contribute to sieunju/gallery development by creating an account on GitHub. github.com 이 라이브러리의 특징으로는 사용자가 원하는 '기능' 기준으로 라이브러리가 분..

android 2023.01.03

[안드로이드] RecyclerView 공통 어댑터 개편기

안녕하세요. 이번 포스팅에서는 제가 서비스중인 곳에 공통 어댑터를 구축하면서 발생한 이슈들 그리고 개편한 내용에 대해 포스팅 해보겠습니다. 각 타입별 어댑터들의 장, 단점은 아래와 같이 정리해볼수 있겠습니다. 여러 개발자들과 동시에 다른 개발을 하다보면 공통 어댑터는 오히려 마이너스 요소라 화면 단위로 어댑터를 생성하는것이 좋아보입니다. 하지만, 단순 반복적인 행위를 하다보면 클래스들은 점차 많아지고 이 또한 리소스 낭비라고 생각이 듭니다. 저는 개발자의 단순 반복 작업은 최대한 줄이고, 개발에만 집중하는 방식을 추구합니다. 따라서, 공통 어댑터를 사용하고 대신 어떻게 해서든 소스 충돌이 발생하지 않는 어댑터로 만들기로 했습니다. 소스 충돌이 발생하는 곳은 아래와 같습니다. 공통 DiffUtil Clas..

android 2022.12.25

[안드로이드] Fastlane & Google Play 배포 환경 구축 해보기

저는 Fastlane 을 사용하기전에는 triplet 을 이용하여 자동 배포 환경을 구축 했었습니다. https://jsieun73.tistory.com/183?category=611190 참고 [안드로이드] Github Action 을 이용한 자동 배포 안녕하세요 이번 글에서는 안드로이드 앱을 직접 운영하는 사람들에게만 필요한 포스팅이 되겠습니다. 앱을 운영 하다 보면 기능, 버그 들이나 수정사항이 발생하면 앱을 '배포' 할 때가 있습니 jsieun73.tistory.com 이전에 Fastlane & Firebase App Distribution 을 이용한 앱 자동 배포하는 환경을 구축 해봤습니다. fastlane 설치방법과 GCP 설정 방법은 아래 링크 참고 하시면 되겠습니다. :) https://j..

android 2022.10.03

[안드로이드] 앱 테스터에 자동 배포 도전해보기!

앱을 서비스 하다 보면 QA 팀이나 디자인팀한테 앱을 배포해서 디자인검수, QA검수를 진행하는 일이 번번히 발생합니다. 그럴 때마다 수동으로 앱을 설치해주다 보면 서로 피곤해지는 문제가 발생합니다. ㅠ.ㅠ 이번 포스팅에서는 Firebase Appdistribution 활용한 앱 배포 환경 구축에 대해서 안내해드리겠습니다. :) 앱 테스터 자동 배포를 구축하기 위해선 아래와 같은 환경이 필요합니다. 1. Mac homebrew 설치된 상태 (Window 라면..잘 모르겠지만, fastlane 를 설치할수 있으면 됩니다.) 2. 자동 배포 환경 툴 'Fastlane' 사용 3. 구축하고자 하는 앱과 Firebase 연결된 상태 4. Google Could Platform 을 진입할수 있는 계정 GCP 서비스..

android 2022.09.29

[안드로이드] 화면단위로 모듈화 하는 feature module이란? #멀티모듈

안녕하세요 이번 시간에는 안드로이드 아키텍처들 중 요새 연구 중인 아키텍처에 대해서 소개하려고 합니다. 자료도 많이 없고 그냥 제 뇌피셜(?)과 동료의 조언을 통해 구축해봤습니다. 컨셉 각 피처 간의 관심사를 완전 분리해놓는 아키텍처입니다. 즉, 각 화면들이 뭘 하든 관심이 전혀 없습니다. 화면이 이동하면 필요한 feature-bradige 를 Dependency 하여 Interface로 정의한 것대로 호출합니다. 안드로이드 스펙 우선 해당 아키텍처에 대해 스펙을 공유드리면 DI 라이브러리로는 Hilt를 사용했습니다. 나머지는 스펙은 필요 없듯합니다. 장점 어떤 서비스업에서 팀원들이 각각 다른 Feature 들을 가지고 병렬적으로 개발하고 난 이후 브렌치에 머지하면 100000% 소스 충돌이 발생하게 됩..

android 2022.09.06

[안드로이드] ReactiveX 개념 소개

안녕하세요. 안드로이드에서 주로 사용하는 비동기 라이브러리중 하나인 Rx 에 대해서 설명 해보도록 하겠습니다. 안드로이드에서 어떤 서비스나 프로젝트를 만들때 네트워크 통신을 합니다. 그러면 자연스레 따라오는 비동기 네트워크 통신을 해야 합니다. 이유는 아래와 같습니다. 어쩔수 없이 WorkThread 로 접근하여 네트워크 통신을 해야 합니다. 현재 Java 비동기를 자체적으로 지원해주는건 Callable, Runnable, ExecutorService .. 등이 있는데 이것들은 사실상 네트워크를 통해서 데이터를 가져오고 그걸 UiModel 에 맞게 가공하고 처리하는 과정을 간단하게 처리하는게 어렵습니다. 간단하게 Callable 과 Rx 을 사용 했을때 코드 스타일이 어떻게 다르고 어떤게 좋아 보이는지 ..

android 2022.07.03

[안드로이드] LiveData, MutableLiveData 사용법

요새 안드로이드에서 인기 있는 디자인 패턴이 MVVM 패턴이고 LiveData에 대해서 정확히 알아야 하는 클래스 입니다. 정의야 다른 블로그에 글들이 많으니까 배제하고 실제로 적용해보고 어떤 문제가 있고 어떻게 풀어나가는지.. 그리고 몇가지 유의사항이 있는데 그런 이슈는 어떻게 풀어내야 하는지 알아보도록 하겠습니다. 🤔 LiveData, MutableLiveData 차이 LiveData 의 UI 업데이트는 언제 실행 하는지 RecyclerView -> ViewHolder 에서 ViewModel 의 LiveData 를 어떻게 처리하는지? 또한 이러한 구조는 지양 해야 하는지? List 형식을 LiveData 에서 처리하는 방법 Fragment in Fragment 구조에서 LiveData 사용시 유의 사..

android 2022.06.26

[안드로이드] 딥링크 테스트 어플 소개

안녕하세요. 이번에는 제가 딥링크 테스트를 하고 있다가 너무 귀차니즘이 발동하여 앱을 하나 만들었는데 한번 소개해볼까 합니다. https://play.google.com/store/apps/details?id=com.hmju.deeplink 퀵딥링크(Quick DeepLink) - Google Play 앱 딥링크 테스트를 아주 간단하게 도와주는 앱입니다. play.google.com 안드로이드 개발하면서 거의 웬만한 서비스에서 "딥링크" 를 많이 사용합니다. 딥링크 관련 테스트를 할 때 몇 가지 방법들이 있습니다. 1. 명령어를 쳐서 테스트 하는 방법 https://developer.android.com/training/app-links/deep-linking?hl=ko#testing-filters 앱 ..

android 2022.06.05

[안드로이드] Github Action 을 이용한 자동 배포

안녕하세요 이번 글에서는 안드로이드 앱을 직접 운영하는 사람들에게만 필요한 포스팅이 되겠습니다. 앱을 운영 하다 보면 기능, 버그 들이나 수정사항이 발생하면 앱을 '배포' 할 때가 있습니다. 손수 배포하는 과정은 아래와 같습니다. 배포할 내역들을 한 브렌치 (develop or master) 에 머지합니다. 릴리즈 모드로 .aab or .apk 버전을 생성합니다. aka 배포 버전 만다. (구글에서 작년부터 aab 를 적극 지향하기 때문에 이제는. apk는... 보내줘야 합니다..ㅠㅠ) 플레이 스토어 앱 콘솔에 들어갑니다. 배포할 앱 선택 파일 업로드 및 변경사항 적기 검수 요청 증말 복잡하죠.. 일단 배포 버전 파일을 말고 나서 콘솔에 들어가고~ 변경사항도 적고.... 개발자들은 정말 귀찮고 반복적인 ..

android 2022.06.05