최근 포스트

Dart null safety 마이그레이션

2 분 소요

마이그레이션 기다리기 예를 들어 패키지 C 가 패키지 B 를 참조하고 B 는 패키지 A 를 참조하는 상황일때 가장 먼저 A 를 null safety 를 적용하고 그 후 B , C 순으로 진행해야한다.

Hilt 테스트 가이드

5 분 소요

Hilt 같은 DI 프레임워크를 사용함으로 얻는 장점은 테스트 코드를 작성하기 쉽다는 점이다.

Hilt 로 의존성 주입하기

9 분 소요

Hilt 는 직접 의존성 주입으로 생기는 보일러 플레이트를 줄여주는 안드로이드 의존성 주입 라이브러리다.

계측 테스트 빌드하기

1 분 소요

계측 테스트는 물리 안드로이드 기기 또는 에뮬레이터에서 동작한다. 그래서 안드로이드 프레임워크 API 를 활용함에 있어 장점이 있다. 그런 이유로 계측 테스트는 로컬 테스트 보단 더욱 느리지만 충실도가 더욱 높다.

UI 테스트 자동화

3 분 소요

유저 상호작용 테스트는 앱을 상호작용할 때 불편한 경험이나 예상치 못한 결과를 맞닥뜨리지 않도록 도움을 준다. 앱의 UI 가 기능적으로 잘 돌아가는걸 검증 하려면 UI 테스트를 만드는걸 습관화 해야한다.

로컬 단위 테스트 빌드하기

3 분 소요

로컬 테스트는 안드로이드 에뮬레이터나 실제 기기말고 JVM 을 사용하여 개발머신에서 동작한다. 로컬 테스트는 앱의 로직을 빠르게 평가해준다. 하지만 안드로이드 프레임워크와 상호작용을 할 수 없기 때문에 할수 있는 테스트 유형에 한계가 있다.

안드로이드 앱 테스트 코드 기초

3 분 소요

테스트의 이점 개발 프로세스에 있어 테스트는 필수적인 부분이다. 앱에 대해서 계속 테스트를 돌린다는것은 앱의 정확성과 기능적인 부분 그리고 출시하기전 사용성등을 확인해볼수 있다.

ExoPlayer 샘플 만들기 및 정리

7 분 소요

ExoPlayer 는 안드로이드 어플리케이션단의 미디어 플레이어다. 안드로이드 MediaPlayer 과 똑같이 구글에서 만들었지만 오픈 소스 미디어 플레이 라이브러리로 MediaPlayer 보다 장점과 기능이 많다 (내장되있지 X). 음악,비디오 재생을 로컬이나 스트리밍단에서 동...

안드로이드 테스트 코드 기본

4 분 소요

안드로이드 스튜디오는 테스트 작업을 간단히 수행하도록 설계가 되있다. 기본적으로 JVM 단에서 동작하는 로컬테스트와 실제 에뮬레이터가 디바이스를 동작시켜 테스트 하는 계측 테스트로 나뉘는데 해당 디렉토리에 작성함으로 각자에 맞는 테스트를 진행할 수 있게된다.

Git-Flow 와 진행과정

2 분 소요

Git-Flow 란 사례 혹은 프로그램을 의미할 수 있다. 여기서는 사례에 의거해서 설명하고 기본적으로 서로간의 약속인 방법론이다. 그렇다고 Git-Flow 가 완벽한 방법론은 아니고 각자 개발환경에 따라 수정하고 변형해서 사용하게된다.

Kotlin Flow

20 분 소요

우리는 어떤 연산을 수행후 한개의 값을 반환하는 중단함수를 정의하고 이를 비동기로 수행할 수 있다. 하지만 어떤 연산 후 두개이상의 값을 반환하는 중단함수를 만드는게 가능한가? 코틀린 플로우(Flow) 를 이용해 이를 수행할 수 있다.

BindingAdapter 정리

3 분 소요

BindingAdapter 는 적절한 프레임워크를 호출해 값을 설정한다. setText() 메서드를 호출하는 것과 같이 속성값을 설정하는 작업을 예로 들수 있다.

Kotlin에는 Static이 존재하지 않는다.

5 분 소요

Static은 어디로 갔을까? 그리고 왜 사라졌을까? 최근 현대 언어들은 static 이 Primitive Type 의 명시적 지원중단 같은 이유로 static을 삭제 했다.

Kotlin에서 DSL 사용하기 파트2

4 분 소요

앞에 포스트 Kotlin에서 DSL 사용하기 파트1 에서 대략적인 DSL의 정의와 DSL 을 표현하기 위한 Kotlin 문법들을 활용해 보았다.

Kotlin에서 DSL 사용하기 파트1

2 분 소요

코틀린은 코드를 읽기 좋게 더불어 BoilerPlate 코드를 줄이기 위해 많은 기능들을 제공한다. 그런것들중 하나가 도메인 특화 언어 이다.

클래스의 종류

2 분 소요

자바와 코틀린의 클래스는 매우 유사하지만 자바에는 없는 몇몇 기능을 추가로 제공한다.

코딩테스트 - 연구소

3 분 소요

문제 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.

코딩테스트 - 특정 거리의 도시 찾기

2 분 소요

문제 어떤 나라에는 1번부터 N번까지의 도시와 M개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다. 이 때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X에서...

코딩테스트 - 음료수 얼려먹기

1 분 소요

문제 N × M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를...

Reified Parameters

1 분 소요

제네릭과 런타임 자바에는 제네릭이 지원 안됬을때가 있었다. (Java 5 버전부터 추가되었다.) 그러기 때문에 하위 버전과의 호환성 유지때문에 Type Erasure 를 사용했다. Type Erasure는 원소 타입을 컴파일 타입에만 검사하고 런타임에는 해당 타입 정보를 알 수...

Lambda With Receiver

1 분 소요

리시버가 있는 람다함수 lambda with a receiver 는 간결하고 읽기 좋게 만들어준다. DSL 같은 구조적 언어에 적절하고 중첩 구조를 짜기 좋은 기능들을 제공한다.

람다의 동작 흐름

1 분 소요

Lambda returns 먼저 볼 부분은 람다의 return 문이다. 람다 내부에서 어떻게 return 문이 동작하는지 예시를 먼저 보자

DFS/BFS 개념

최대 1 분 소요

탐색이란 많은 양의 데이터중에 원하는 데이터를 찾는 과정이다. 프로그래밍에선 그래프 트리등 자료 구조 안에서 탐색을 다루는 문제를 주로 다룬다. 대표적인 탐색 알고리즘 중에는 BFS/DFS 가 존재한다.

정렬의 종류와 정의

2 분 소요

정렬의 정의 정렬이란 데이터를 특정한 기준에 따라서 순서대로 나열하는것으로 검색을 효율적으로 만들거나 일련의 항목에 대한 병합을 효율적으로 할수 있게 해준다.

withContext 와 async 의 차이점

2 분 소요

withContext 와 async 둘은 유사하면서 다른점을 가지고 있다. 코루틴은 골치아프게 반응형 스타일 코딩의 번거로움 없이 비동기코드를 유창한 API를 사용해 순차적으로 다룰수 있게 해주는 도구다. 코루틴은 CoroutineContext 안에서 동작하고 Context는 ...

CoroutineContext 와 Dispatcher

3 분 소요

코루틴이란? 코루틴은 협력적 멀티태스킹을 하기 위한 서브루틴 혹은 프로그램이다. 코루틴은 중단과 재개를 할 수 있고 다른 코루틴에게 양보도 가능하다. 여기서 중단의 뜻은 호출자를 중단하고 코루틴내에서만 호출할 수 있다는 뜻이다.

코루틴 기초

1 분 소요

코루틴은 스레드와 유사한 개념이다. 그러나 코루틴은 어떤 특정 스레드와 묶이지 않고 하나의 스레드에서 동작을 중단하고 재개한다.

AAC ViewModel 에 대해서

3 분 소요

Android 에 화면 회전 문제 Android 는 AAC(Android Architecture Components) 를 통해 ViewModel 을 제공한다. MVVM 의 ViewModel 과 같은 ViewModel 이라 같은거라 생각할 수 있는데 실제로는 완전 다르다.