전체 글

안드로이드 공부 중인 컴붕이 블로그입니다.
· Kotlin
Kotlin 표준 라이브러리에서는 Result 클래스를 제공한다. Result는 실행한 동작의 결과를 Result로 감싸서 처리를 다른 클래스에 위임하는 것이 목적인 클래스이다. Result와 Result의 확장함수를 통해 유연하게 성공 및 실패를 처리할 수 있다. 작업을 수행하기 위한 방법으로는 대표적인 try-catch도 있고, Kotlin 1.3v에서 추가된 Result를 반환하는 inline 함수, runCatching도 있다. 이번 포스팅에서는 Result, 여러가지 Result 함수를 소개한다. 사전 지식 : runCatching runCatching은 코틀린 1.3v에서 도입된 캡슐화 블록이다. runCatching 블록 안에서 성공/실패 여부가 캡슐화된 Result 형태로 반환한다. try..
· 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..
[문제] 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다.만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다.만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리..
[문제] 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. [입력 조건] numbers의 길이는 4보다 크거나 같으며, 백만보다 작거나 같다. 각 number의 값은 1보다 크거나 같으며 백만보다 작거나 같다. [해설] 배열을 순회하며, 현재 인덱스의 뒤큰수를 찾는것이 아닌, 현재 배열의 값을 뒤큰수를 가지는 인덱스를 찾는 것이 핵심이다. 스택을 활용하여, 현재 배열의 값을 뒤큰..
· 프로젝트
이번 프로젝트에서 처음으로 Multi Module Project를 도입했다. 다중 모듈 프로젝트란 하나의 app Module이 아닌, 여러개의 모듈로 구성되어 있는 프로젝트를 의미한다. 모듈 간 화면 전환을 다른 Feature 모듈의 의존성 없이 구현하기 위해 사용한 방법을 포스팅하려고 한다. 지금 하고 있는 프로젝트의 기본적인 View 단위는 Fragment로 구성되어 있고, 따로 소셜 로그인 및 로그아웃/회원삭제를 위해 Activity를 추가적으로 사용하고 있다. 따라서 화면 전환에서 필요한 기능은 여러개의 모듈을 넘나들면서, Activity를 전환해야할 뿐만 아니라, nav graph에 종속되지 않고 자유롭게 Fragment간 전환할 수 있는 기능을 필요로 한다. 예를 들면, 사전 모듈의 주류 정보..
· Android
안드로이드 개발을 하다보면 여러개 View의 데이터를 서로 공유해야하는 상황이 꼭 발생한다. 예를 들면 회원가입 페이지에서 여러개의 화면에서 사용자의 정보를 입력받을 때, 각 화면에서는 하나의 정보(전화번호, 이름)을 받아도 이전의 화면에서 받았던 정보를 저장해야 한다. 안드로이드에서는 다양한 방법으로 각 화면간의 데이터가 공유가 가능하다. 몇가지 방법을 예시와 함께 소개하며, 편의를 위해 가장 많이 사용하는 Fragment를 기준으로 작성하였다. 아래의 방식 외에도 추가적으로 공유하는 방법이 존재할 수 있으며, 장점과 단점을 파악하여 알맞는 방법을 선택하는 것이 중요하다. 1. Navigation Argument 첫번째 방법은 Navigation Component의 Safe Args를 이용하거나 Bun..
정자이노
EveryAndroid