Android

· Android
이전 포스팅에서 모듈의 정의와 모듈화를 하는 기준에 대해서 소개했다. 기존의 코드를 모듈화를 하는 과정이나, 새롭게 모듈을 구성하여 코드를 배치하는 과정 모두 문제점이 발생할 수 있다. 이번 포스팅에서는 모듈을 구성하면서 발생할 수 있는 문제와 실제 필자에게 발생했던 문제점과 이에 대한 해결책을 소개한다. 1. 순환 참조 서로의 gradle/bazel 모듈이 상호 참조하고 있는 상황이다. 처음 모듈화를 진행할 때 많이 직면할 수 있는 문제이다. 대부분의 빌드 툴은 서로의 모듈을 참조하는 것을 막고 있다. 해결책 각 모듈을 인터페이스와 구현체의 쌍으로 분리하여 각 모듈의 구현체는 서로의 인터페이스 모듈을 참조하도록 수정한다. 해당 과정으로 각 모듈은 명시적인 Api를 제공하게 된다. 또한 각 모듈은 서로간..
· Android
앱의 규모가 커지거나 개발 기간이 길어질 수록, 앱의 확장성, 가독성, 코드 품질은 떨어질 수 있다. 모놀리틱 모듈에서 다중 모듈로의 분리를 통해 프로젝트를 더 아키텍처 기반으로 설계하고, 유지 보수성을 개선할 수 있다. 이번 포스팅에서는 모듈의 소개와 필요성 그리고 모듈을 어떤 기준으로 분리하면 좋을지에 대해서 소개한다. 모듈(Module) 모듈은 잘 정의된 범위, 논리적으로 타당한 의존성들, 모듈을 관리하는 담당자를 가지고 있는 코드 뭉치를 의미하며, 앱의 어느 부분에서 재사용될 수 있어야 한다. 모듈의 특징은 아래와 같다. 모듈은 소스파일 및 빌드 설정으로 구성된 모음으로 프로젝트를 구성하는 단위이다. 하나의 모듈이 다른 모듈을 종속 항목으로 사용할 수 있다. 각 모듈은 독립적으로 빌드, 테스트, ..
· Android
다중 모듈 프로젝트를 도입하면서, 각 모듈에서 참조하는 종속성과 종속성간 버전 관리에 대해서 생각해보게 되었다. 그러던 중 Now in Android에서 Version Catalog를 통해서 중앙에서 종속성 버전 관리를 하고 있는 것을 알게되었다. 이번에는 Version Catalog의 소개와 해당 Version Catalog를 도입하는 방법에 대해서 포스팅하려고 한다. What is Version Catalog? A version catalog is a list of dependencies, represented as dependency coordinates, that a user can pick from when declaring dependencies in a build script. Version..
· Android
안드로이드 개발을 하다보면 여러개 View의 데이터를 서로 공유해야하는 상황이 꼭 발생한다. 예를 들면 회원가입 페이지에서 여러개의 화면에서 사용자의 정보를 입력받을 때, 각 화면에서는 하나의 정보(전화번호, 이름)을 받아도 이전의 화면에서 받았던 정보를 저장해야 한다. 안드로이드에서는 다양한 방법으로 각 화면간의 데이터가 공유가 가능하다. 몇가지 방법을 예시와 함께 소개하며, 편의를 위해 가장 많이 사용하는 Fragment를 기준으로 작성하였다. 아래의 방식 외에도 추가적으로 공유하는 방법이 존재할 수 있으며, 장점과 단점을 파악하여 알맞는 방법을 선택하는 것이 중요하다. 1. Navigation Argument 첫번째 방법은 Navigation Component의 Safe Args를 이용하거나 Bun..
· Android
이전 포스팅에서 Dagger에 대해 공부했었다. Dagger는 범용 DI 프레임 워크로, Android에서 사용하기 위해서는 많은 개념과 이해를 가지고 있어야 한다. Hilt는 Dagger2는 Android 전용 DI 라이브러리로 Dagger에 비해 낮은 러닝커브와 빠르게 초기 DI 환경 세팅을 할 수 있는 강점을 가지고 있다. Dagger와 Hilt의 차이점을 기준으로 Hilt의 주요 개념 Component : Dagger 컴포넌트에 설치되는 모듈 컴포넌트를 정의하고, 멀티 컴포넌트를 위해서 따로 subComponents를 정의해야 한다. 컴포넌트에 생성자를 정의하고, 주입되는 메소드를 모두 정의해야 한다. @Subcomponent interface GameComponent { // component를..
· Android
의존성이란, 클래스가 필요로 하는 다른 객체 인스턴스를 의미한다. 의존성 주입은 말 그대로 클래스 내에서 객체 인스턴스의 생성을 직접 하지않고, 외부에서 생성하여 필요한 곳에 주입되도록 코드를 조직화 하는 방법이다. 의존성 주입의 이점 코드를 재사용하게 해준다. 객체 생성 방법이 변경되더라도 클라이언트의 코드에 영향을 주지 않는다. (클라이언트는 의존성 주입을 받는 클래스) 코드 테스트를 더 용이하게 한다. 테스트를 위해서, Fake 저장소를 주입하는 방식과 같이 쉽게 테스트가 가능하다. 클라이언트는 인터페이스로 객체를 알고 있으면 되므로, 좋은 설계를 촉진한다. 클래스의 추상화를 더 잘 할 수 있도록 하며, 멀티 모듈에서 모듈간의 의존성을 소거하는데 유용하다. DI(의존성 주입) 프레임 워크의 이점 프..
정자이노
'Android' 카테고리의 글 목록 (3 Page)