본문 바로가기

Android57

[Android] API key값 local.properties에 안전하게 보관하기 안드로이드 프로젝트를 하며 다른 서비스의 API를 이용하는 경우가 종종 생깁니다. 위의 사진은 네이버 지도 API의 사용 가이드입니다. 이처럼 API를 호출할 때 인증을 위해 API key값을 HTTP 헤더에 포함해야 하는 경우가 많습니다. HTTP 헤더에 API key값을 담아서 요청하기 위해선 해당 key를 어딘가에서 보관하고 있어야 합니다. API key는 인증에 필요한 비밀번호나 마찬가지이므로 보안에 유의하셔야 합니다. 만약 코드상에 상수값으로 하드 코딩이 되어 있다면, Github 등에 노출될 위험이 있기 때문에 .gitignore 파일을 통해 정보가 노출되지 않도록 보관해야 합니다. 이번 글에서는 local.properties 파일을 사용해 API key값을 안전하게 보관하는 방법에 대해 알아.. 2021. 8. 25.
[Android] BottomNavigationView에서 Fragment 전환 이번 포스팅에서는 BottomNavigationView를 통해 Fragment를 전환할 때 생길 수 있는 문제점과 해결 방안에 대해 알아보겠습니다. menu_bottom_navigation.xml 우선 간단하게 menu.xml을 통해 BottomNavigationView의 item을 지정해줍니다. activity_sample.xml 다음은 Fragment를 담아줄 FrameLayout과 BottomNavigationView를 배치해줍니다. SampleActivity.kt class SampleOneActivity : AppCompatActivity() { private val binding by lazy { ActivitySampleOneBinding.inflate(layoutInflater) } ove.. 2021. 8. 9.
[Android] Kotlin Coroutine 기본 개념 익히기 Coroutine이란? 안드로이드에서 비동기 프로그래밍을 하기 위해선 AsyncTask나 Rx 등 여러 솔루션들이 있습니다. 코루틴 역시 비동기 프로그래밍을 하기 위해 나온 개념입니다. 코루틴을 이용하면 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있습니다. 코루틴은 코틀린 언어의 하위 개념이 아닌, 오래전부터 C#, Python, Go 등의 다양한 언어에서 지원하고 있던 개념입니다. 코루틴은 Co + Routines의 약자로써 Co는 Cooperation, Routines은 functions을 의미합니다. 즉, 서로 협력하는 함수들이라는 의미로, 여러 함수들이 번갈아가면서 실행되어 비동기적인 프로그래밍이 가능합니다. 코루틴은 흔히 경량 스레드라고 불립니다. 코루틴은 스레드 위에서 실행되는.. 2021. 7. 29.
[Android] Paging 3.0 Library 알아보기 - 2 이번 포스팅에는 이전 글에서 언급했었던 Paging2에 없던 Paging3.0만의 기능을 설명해보려고 합니다. Paging3.0의 개념과 기본적인 사용 방법은 이전 글을 참고해주세요. [Android] Paging 3.0 Library 알아보기 Paging이란? 페이징이란 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 덩어리로 나눠서 가져오는 것을 뜻합니다. 예를 들어, 구글에서 어떤 키워드로 검색하게 되면 leveloper.tistory.com 1. 데이터 스트림 변환 Paging을 사용할 때 데이터를 가공해야 하는 경우가 많이 생깁니다. 예를 들어, 데이터를 화면에 표시하기 전에 먼저 필터링을 하거나 데이터를 다른 형태로 변환해야 할 수도 있습니다. Paging3.0은 기본적.. 2021. 7. 12.
[Android] buildSrc를 통한 Dependency 관리 클린 아키텍처를 공부하며 Github에서 여러 가지 오픈소스를 분석하던 중, Fernando Cejas님의 Android-CleanArchitecture-Kotlin 프로젝트를 보게 되었습니다. 그중 dependency를 관리하는 방법이 기존에 알고 있던 방법과 달라서 buildSrc에 대해 공부하게 되었습니다. 멀티 모듈로 구성된 프로젝트에서 buildSrc를 통해 dependency를 관리하면 좋을 것 같습니다. Gradle 공식 문서에 아래와 같은 설명이 나와 있습니다. Use buildSrc to abstract imperative logic …. The directory buildSrc is treated as an included build. Upon discovery of the direct.. 2021. 7. 11.
[Android] Clean Architecture in Android Clean Architecture란? 고객들에게 제공하는 애플리케이션 같은 경우에는 수많은 기능들이 있기에 복잡도가 굉장히 높습니다. 복잡도가 높은 애플리케이션을 개발할 때 어떻게 하면 유지 보수하기 쉽고 고품질의 코드를 작성할 수 있을까요? 애플리케이션은 새로운 기능이 추가된다거나 내부 로직이 변경되어야 하는 일이 생겼을 때 유연하게 대처할 수 있도록 구조화해야 합니다. 프로젝트를 진행하며 테스트가 용이하고 유지 보수하기 쉽게 구조를 구성하고 싶어서 클린 아키텍처에 대해 공부하게 되었습니다. 클린 아키텍처의 개념은 2012년에 Robert C. Martin (Uncle Bob)님이 블로그에 기재하며 세상에 나오게 되었습니다. 클린 아키텍처의 목표는 계층을 분리하여 관심사를 분리하는 것입니다. 관심사를 .. 2021. 7. 3.