본문 바로가기

IT/Android

9/1 read post

728x90
반응형

1.

출처 : Why we should use Android Bundle for value-passing instead of Intent?

제목 : Why we should use Android Bundle for value-passing instead of Intent?

요약 : value 를 한 액티비티에서 다른 액티비티로 전달시에 intent 로 전달하는 것보다 Bundle 에 넣어서 전달하는 것이 더 나은 방법이라고 설명합니다. Bundle 에 넣으면 그 value(여러개) 를 또 다른 액티비티로 전달시에 재사용 할 수 있어 더 유연하다고 설명합니다.

 

2.

출처 : The one and only object

제목 : The one and only object

요약 : object 키워드에 대해서 설명합니다. object 는 객체 선언과 객체 표현식 두가지로 사용되는데, 객체 선언에서 object 를 사용하면 하나의 인스턴스만 생성하기 때문에 간단하게 싱글톤을 만들수 있게 해줍니다. 다만 매개변수를 가질수 없습니다. 객체 표현식에서는 익명 클래스와 내부 클래스를 만드는데 사용됩니다.

 

3.

출처 : Handle Android State Changes in Inherited Custom View

제목 : Handle Android State Changes in Inherited Custom View

요약 : 상속받은 custom view 에서 state 를 저장하는 방법을 설명합니다. custom view 에서 onSaveInstanceState 와 onRestoreInstanceState 를 구현하여 state 를 저장하는 방법을 설명하고, 이 방법은 이 custom view 를 상속받은 custom view 에서는 동작하지 않는 것을 보여줍니다. 해결방안으로 계층 구조에 있는 모든 클래스의 상태가 저장하도록 하는 AbsSavedState 라이브러리를 사용해서 저장하는 방법을 설명합니다.

 

4.

출처 : Using Jetpack CameraX

제목 : Using Jetpack CameraX

요약 : JetPack CameraX 라이브러리 에 대해서 설명합니다. Carmera2 API 를 기반으로 만들어진 CameraX API 는 코드의 총량이 줄어 구현이 쉽고 이해하기가 쉽고, api 21 이상의 기기의 94%에서 일관된 동작을 보입니다. CameraX API 를 사용하여 구현하는 방법을 코드로 설명합니다.

 

5.

출처 : https://blog.canopas.com/how-to-use-responsive-images-to-speed-up-your-apps-with-android-glide-example-ece3924b84fd

제목 : How to use responsive images to speed up your apps — with android glide example

요약 : responsive 이미지 로딩에 대해서 설명하고 왜 필요한지 그리고 어떻게 구현하는지에 대해서 설명합니다. 기기해상도에 맞는 이미지를 로드하도록 하는 방법인데 서버에서 사용가능한 이미지 크기를 제공하는 방법과 동적으로 이미지 를 원하는 크기에 맞게 생성하여 제공하는 방법 2가지를 설명합니다. 그리고 그것을 Glide 를 통해 클라이언트에서 구현하는 방법을 설명합니다.

 

6.

출처 : Restoring scroll position of nested RecyclerViews

제목 : Restoring scroll position of nested RecyclerViews

요약 : 세로로 가로 리사이클러 뷰가 중첩된 경우에 세로로 스크롤시 수평 스크롤 위치를 잃는 문제에 대한 해결책을 설명합니다. 메인 리사이클러 뷰만 위치 복구가 되며 이는 LinearLayoutManager 에서 복구 로직을 호출하기 때문인데, viewHolder 내에 복구 로직을 구현함으로써 해결하는 코드를 설명합니다.

선정 : 리사이클러 뷰 중첩시에 포지션을 복구하는 방법이 흥미로워 선정합니다.

 

7.

출처 : 코루틴 공식 가이드 읽고 분석하기 — Part 1

제목 : 코루틴 공식 가이드 읽고 분석하기 — Part 1

요약 : 기본적인 코루틴 빌더 생성 방법과 runBlocking, delay, suspend 키워드, Scope builder 에 대해 간략히 소개합니다. 그리고 기본적인 코루틴이 어떻게 흘러가는지 코드로 설명합니다.

 

8.

출처 : My Incorrect Use of BigDecimal Leads to Software Failure

제목 : My Incorrect Use of BigDecimal Leads to Software Failure

요약 : Java 에서 BigDecimal 을 사용할 때 오류가 생기는 문제에 대해서 설명합니다. new BigDecimal(double type)을 사용할 경우 소수점 부분이 이진수로 변환될때 오류가 발생하므로 new BigDecimal(String type) 을 사용하거나 Double.doubleToLongBits(val) 를 사용하라고 해결책을 제시합니다.

 

9.

출처 : 코루틴 공식 가이드 읽고 분석하기- Part 1 — Dive1

제목 : 코루틴 공식 가이드 읽고 분석하기— Part 1 — Dive1

요약 : CoroutineContext 와 CoroutineScope 에 대해서 설명합니다. CoroutineContext 는 인터페이스이고, 내부에 plus, minusKey, get, fold 메서드를 가집니다. CoroutineScope 역시 인터페이스이고, 멤버속성으로 CoroutineContext 를 가집니다.

 

10.

출처 : 코루틴 공식 가이드 자세히 읽기 — Part 1 — Dive 2

제목 : 코루틴 공식 가이드 자세히 읽기 — Part 1 — Dive 2

요약 : 코루틴이 왜 스레드보다 가볍다고 하는지에 대해서 설명합니다. 코루틴 스코프에서 코루틴을 생성하면 coroutineScope 내부에 coroutineContext 가 있고 이 coroutineContext 는 dispatcher 를 가지는데, 새로 생성된 코루틴은 스코프(부모) 의 컨텍스트를 그대로 상속하고 dispatcher 만 재정의해서 사용하게 됩니다.(재정의하지 않으면 그대로 사용) 그렇기 때문에 새로운 스레드를 생성하지 않고 기존 컨텍스트에서 다 상속받아 사용하기 때문에 일반적인 함수호출과 동일하게 수행되기 때문에 경량 스레드라고 불리는 이유라고 설명합니다.

 

소요시간 : 3시간 30분

728x90
반응형