안드로이드 - Kotlin Coroutine을 사용하는 방법 및 예제

Kotlin Coroutine은 가벼운 쓰레드(Light-weight thread)입니다. 비동기적인(asynchronous) 프로그래밍이 가능하게 만들어 줍니다. async, launch, coroutine context 등의 코루틴 키워드를 설명하고 어떻게 코루틴을 작성해야하는지 설명합니다.

26 Oct 2019

안드로이드 - SAF(Storage Access Framework)로 파일 읽고 쓰는 방법

SAF(Storage Access Framework)는 문서 및 이미지 등 각종 파일을 탐색하고 저장하는 작업을 간편하게 하려고 도입하였습니다. 앱은 ACTION_OPEN_DOCUMENT, ACTION_CREATE_DOCUMENT 등의 인텐트로 파일을 읽고 쓸 수 있습니다. Document Provider, Client app, Selector 등으로 구성되어있습니다.

24 Oct 2019

안드로이드 - MediaStore에 미디어 파일 저장하는 방법 및 예제

Media provider는 단말에 저장된 이미지, 동영상, 오디오 파일의 정보를 제공하는 프로바이더입니다. Scoped Storage가 적용되면서 미디어 데이터를 저장할 때는 MediaStore를 이용하기를 권장하고 있습니다. P와 Q에서 MediaStore에 데이터를 저장하는 방법을 알아보고, 차이점을 알아보겠습니다.

19 Oct 2019

안드로이드 - MediaStore에서 미디어 파일 정보 읽는 방법 및 예제

Media provider는 단말에 저장된 이미지, 동영상, 오디오 파일의 정보를 제공하는 프로바이더입니다. MediaStore는 앱이 Media provider가 제공하는 파일들을 접근할 수 있도록 도와주는 API들의 묶음입니다. MediaStore의 API들이 어떤 의미인지 이해하고, 그 API를 통해 Media provider에 쿼리를 하여 데이터를 얻으면 됩니다.

19 Oct 2019

Java - HashMap 사용 방법 및 예제

HashMap은 Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관합니다. HashMap은 데이터의 저장순서를 보장하지 않으며 null을 허용합니다. 또한 put, putAll, get, remove, keySet, values 등의 API들을 제공합니다. 예제를 통해 어떻게 해시맵을 사용하는지 알아보겠습니다.

17 Oct 2019

Java - HashMap.forEach() 사용 방법 및 예제

HashMap을 순회할 때 forEach()를 사용할 수 있습니다. forEach()는 인자로 함수형 인터페이스를 받습니다. EntrySet.forEach()와 KeySet.forEach(), Values.forEach() 등도 forEach 메소드를 갖고 있습니다. 이것도 인자로 함수형 인터페이스를 받습니다.

17 Oct 2019

안드로이드 - CTS(Compatibility Test Suite) 테스트하는 방법

Android CTS는 Compatibility Test Suite의 약자입니다. CTS는 안드로이드의 호환성 테스트로, 제조사에서 안드로이드 단말을 만들면 CTS 테스트를 통과해야 판매를 할 수 있습니다. CTS는 안드로이드의 파편화를 어느정도 막아주며, 테스트 코드에서 요구하는 성능을 충족시키도록 합니다.

16 Oct 2019

Java - HashSet 사용 방법 및 예제

HashSet은 중복된 값을 허용하지 않고, 순서를 보장하지 않고, null 값을 저장할 수 있습니다. Set는 List와 다르게 순서가 보장되지 않는 자료구조입니다. 내부적으로 HashMap을 이용하여 데이터를 저장합니다. add(), remove(), removeIf(), removeAll() 등 각각의 메소드를 사용한 예제를 만들어보겠습니다.

16 Oct 2019