Android 14

2022년 회고

성장 1. 개발 생산성 높이기 위한 많은 고민과 연구 지난 한 해 동안 개발 생산성을 높이기 위한 많은 고민과 연구를 했고, 실 서비스에서 적용하면서 많은 성장을 했던 거 같습니다. 예를 들면 개발자가 반복적인 코드를 자주 선언하는 부분을 없애거나, https://jsieun73.tistory.com/192 해서 생산성을 대폭 증대하는데 기여를 했습니다. 수치상으로는 30% ~ 40% 이상 올라갔습니다. 2. 개인 라이브러리 고도화 및 추가 기존에도 개인적인 라이브러리를 만들고, 좀더 '기능' 기준으로 나눠서 원하는 기능만 추가할 수 있도록 만들었습니다. 다른 팀들과 현업을 하면서 HTTP 로그를 UI로 볼 수 있는 라이브러리를 만들어서 좀 더 수월하게 협업할 수 있는 환경을 구성했습니다. 3. CI ..

[안드로이드] 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

안드로이드 개발시 HTTP 트레킹 라이브러리 소개

안드로이드 앱 개발시 OkHttp 를 활용해서 HTTP 통신을 합니다. 이때 개발중에 서버나 클라 쪽에 이슈가 생기면 API 쪽에 어떤 Query Paramter 를 날렸는지 Response 는 어떻게 오는지에 대한 핑퐁을 주고 받습니다. 일반적으로 Logcat 에서 요청한 API 를 찾아서~ 복사한다음에~ 서버팀에 알려주고..... 벌써부터 귀차니즘이 시작 됩니다.. 그래서 이런 귀차니즘을 해소할 그런 것들이 없을까 하다가 옆에 iOS 개발자분이 흔들어서 요청한 HTTP 로그들을 보여주는 라이브러리인 (netfox) 를 보여주더군요.. https://github.com/kasketis/netfox GitHub - kasketis/netfox: A lightweight, one line setup, iO..

android 2022.05.05

[안드로이드] SimplePermissions 소개

안녕하세요. 시간이 좀 됐지만 안드로이드 appCompat이 1.3.0 이상 올라가면서 권한에 대한 프로세스가 전면 수정됐습니다. 그래서 그에 맞게 대응하면서 간단하게 적용할 수 있는 라이브러리를 만들어봤습니다. https://github.com/sieunju/SimplePermissions GitHub - sieunju/SimplePermissions: AppCompat 1.3.0 이상 권한 라이브러리 입니다. AppCompat 1.3.0 이상 권한 라이브러리 입니다. . Contribute to sieunju/SimplePermissions development by creating an account on GitHub. github.com 기능 - build 패턴으로 전체 권한이 승인 여부 및 거부..

android 2021.11.02