본문 바로가기

Android

(140)
[Github Actions] Github Actions를 사용해보자 - 1. 기본 개념 정리 CI/CD Tool 중 Github에서 제공하는 Github Actions라는 Tool을 사용해 보았다. Github Actions을 적용하는 예제를 작성한 많은 게시글을 확인할 수 있었는데, 가이드를 보아도 필자는 정상적으로 설정하는 것 까지의 시간이 상당히 오랜시간이 걸렸다. 글을 작성하다보니, 생각보다 길이가 길어져 이번 글에서는 Github Actions의 개념과 yml 파일에 대하여 알아보고자 한다. 게시글의 흐름은 필자가 해당 부분을 공부하고 적용하면서 찾아보았던 순서대로 작성해보았다. 우선, Github Action을 사용하는 방법부터 알아보자. Github Actions은 Github에 올라와있는 Repository에서 사용할 수 있기 때문에 테스트할 Repo를 생성해준다. 필자는 Dumm..
[CI/CD] CI/CD 란 ? 예전에 스터디를 진행할 목록을 작성한적이 있는데, 그 당시에 CI/CD에 관련한 항목도 공부할 항목으로 작성해 둔 것이 있었다. 회사 업무를 진행하면서 있으면 좋았겠다, 편했겠다 라고 생각한 적은 적지 않은 것 같다. 따라서, 추후에 적용 가능성이 보이고 있기 때문에 한발 앞서 먼저 스터디를 해보고자 한다. 우선, CI와 CD가 무엇인지 한번 알아보자. CI란 ? Continuous Integration의 약자로 지속적인 통합을 의미한다. 지속적인 통합을 위한 프로세스를 CI라고 부를 수 있는데 Build, Test를 진행하는 통합 프로세스를 상시로 실시해 주는것을 의미한다. 즉, 위의 통합 프로세스를 지속적으로 수행하여 코드의 품질을 유지시키도록 도와주는 것을 CI라고 한다. 그렇다면, CD는 무엇인가..
[Android] Repository Pattern 디자인 패턴을 살펴보던 도중, Repository Pattern을 적용해본적은 있지만 정리를 하지 않았던 것을 발견하여 간단하게 정리를 하면서 글을 작성해보고자 한다. Clean Architecture 예제를 확인해보면 repository를 적용했다는 것을 확인할 수 있으니, 해당 샘플을 Repository Pattern의 예제로 보면 될 것으로 보인다. 우선, Repository Pattern에 대하여 검색하면 다음과 같은 이미지를 어렵지 않게 볼 수 있다. 이 이미지로 확인할 수 있는 구조가 Repository Pattern을 아주 잘 설명한 것이기 때문이다. Repository Pattern은 Data의 출처에 관계 없이 동일한 인터페이스로 데이터에 접근할 수 있도록 하는 패턴이다. 즉, DataS..
[okHttp] HttpLoggingInterceptor와 Koin을 사용하여 API 통신 Log를 찍어보자. 저번 라이브러리 모듈을 만들다가 API 통신 시에 사용하는 Retrofit, okHttp 중에 데이터를 보여주는 방법이 있을 것 같다고 생각하고 찾아보던 와중, okHttp에서 지원하는 HttpLoggingInterceptor 에 대해서 찾을 수 있었다. 따라서, LogInterceptor를 Koin을 통해 설정하고 사용하는 방법에 대해서 작성해 보고자 한다. HttoLoggingInterceptor를 사용하기 위해서는 Gradle에 라이브러리를 추가해 주어야 한다. // okhttp3 Logging implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0' 해당 라이브러리를 추가하였으면, 적용하여 사용해보도록 하자. 우선 Retrofit과 okHt..
[Android] JitPack을 사용하여 라이브러리 모듈을 배포해보자. 업무를 보는 도중 이전 프로젝트에서 사용하던 모듈을 가져와서 사용하고 싶다는 생각이 문득 들었다. 해당 모듈이 다른 외부 라이브러리처럼 배포가 되어있었다면 간단하게 사용하기 쉬울 텐데..라는 생각을 하던 와중 라이브러리로 배포를 하는 방법에 대해서 찾아보게 되었다. JitPack을 사용하면 아주 간단하게 라이브러리 모듈 배포가 가능하다고 해서 사용해 보았는데, 자료를 잘못 봤는지 오류가 상당히 많이 발생하였다. 따라서, 해당 문제들을 해결하는 방법에 대하여 작성해보고자 한다. 우선, 라이브러리로 만들어 볼 샘플 프로젝트를 만들어 보자. 필자가 업무를 보다가 API 관련 데이터를 확인하려고 임시로 만들어 둔 함수를 클래스로 만들어 보았다. private val gson = Gson() fun printDa..
[Android] AAC Navigation + BottomNavigationView 사용 방법. 필자가 저번에 AAC Navigation을 사용하여 Fragment 간의 이동을 구현한 예제를 만들어 봤었다. 해당 예제에서는 간단한 버튼을 만들고, 버튼을 통해서 Fragment를 변경하도록 구현을 했었는데, BottomNavigationView를 사용하여 Fragment 를 변경하고자 하니 정상적으로 동작이 되지 않았다. 따라서, AAC Navigation과 BottomNavigationView를 같이 사용하는 방법에 대해서 작성해볼까 한다. 글을 작서하기 앞서, AAC Navigtation에 대한 기본적인 사용 방법은 해당 게시글에서 확인하길 바란다. https://heegs.tistory.com/63 [AAC] AAC Navigation 사용 실전 압축 정리 클린 아키텍처 예제를 작업 한 이후, ..
[Android] Logger Library 사용 시 주의할 점 Logger Library를 사용하여 Log를 찍으면서 개발을 하던 와중, 의도치 않게 동일한 로그가 여러번 찍히는 문제가 발생하였다. 필자의 이해 부족으로 발생한 문제이지만, 추후 까먹지 않기 위해 글을 작성해 두고자 한다. Logger의 기본적인 사용법은 해당 게시글을 확인하길 바란다. https://heegs.tistory.com/79 [Logger] Logger Library를 사용하여 보기 좋은 로그를 찍어보자. 이런저런 것을 확인하던 와중에, 로그를 보기 편하게 찍어주는 Logger Library를 발견하였다. 추후에도 까먹지 않고 사용하기 위해서 글을 작성해 놓고자 한다. Logger 라이브러리를 사용하기 위해서 heegs.tistory.com 우선 문제가 발생한 원인부터 파악해 보자. Lo..
[Android] Android12에서의 변경 점 저번 Android11에서의 변경 점에 이어서, Android12에서의 변경 점에 대하여 알아보고자 한다. 역시나 개인 정보나 보안쪽으로 개선된 점이 많이 보이고, Android11보다 조금 더 수정할 수 있는 부분이 많아 보인다. 물론 이번 포스팅에서도 Android12에서 변경 된 부분에 대해 모두 작성하지 않고, 필자가 생각했을 때 확인이 필요한 부분이라고 생각되는 부분만 작성할 예정이다. 따라서, 모든 추가 변경에 대한 내용을 확인하고자 하는 사람은 Developer 페이지를 확인하길 바란다. 우선, 웹 인텐트 관련하여 변경된 사항이 있다. Android12부터 앱이 웹 인덴트에 포함된 특정 도메인에 관해 승인된 경우에만 앱의 활동으로 확인이 된다. 도메인을 확인하는 방법으로는 Android Ap..