AppUpdateManager를 이용한 앱 업데이트 처리

2019-06-24

어느 정도 규모가 있는 앱에는 사용자에게 최신버전의 업데이트를 알려주는 기능과 강제 업데이트 기능이 대부분 포함되어 있습니다. 강제 업데이트의 경우 중요한 문제로 인해 더이상 해당 버전을 사용하지못하고 최신버전을 받아 사용하기 원하는 경우에 사용됩니다. 대부분 Backend를 통해 현재 앱버전을 체크하여 업데이트해야 하는 상황에 따라 사용자에게 다이얼로그를 노출시키고 플레이스토어로 이동하는 방법을 사용합니다. 플레이스토어로 이동 후 사용자는 업데이트 버튼을 눌러 업데이트가 끝난뒤 다시 앱으로 돌아오게 됩니다.

Read More

MotionLayout을 통한 코드 한줄 없이 전화효과 주기

2018-10-12

ConstraintLayout을 사용하는데 있어서 ConstraintSet을 이용한 애니메이션 처리는 간결한 코드를 통해 간단히 처리 할 수 있는 방법을 제공해 왔습니다. 두개의 레이아웃을 통해 서로 다른 크기와 위치의 변화를 감지하여 자동으로 애니메이션 처리하는 멋진 아이디어 덕분입니다.

Read More

ProcessLifecycleOwner를 이용한 앱 Background/Foreground이벤트 처리

2018-06-13

안드로이드 앱을 개발을 하다보면 앱이 Background, Foreground 상태에 대한 이벤트를 탐지를 필요로 합니다. 일반적으로 ActivityManager의 Activity의 갯수와 Lifecycle에 따라 이벤트 탐지를 합니다. 모든 Activity의 Lifecycle을 관리한다는 것은 번거로운 일입니다. 하지만 Android Architecture Components를 이미 사용한다면 간단히 몇줄 만에 해당 이벤트를 탐지 할 수 있습니다.

Read More

Kotlin Coroutines – Retrofit2 + Coroutines 동시처리

2018-05-12

Android의 스레딩 모델은 UI 스레드라고 불리는 싱글 스레드가 사용자의 인터페이스 렌더링, 이벤트 캡쳐 및 기타 여러 측면을 담당하는데 이는 모든 UI 프레임워크와 동일합니다. 네트워크 요청, DB 쿼리, 많은 연산과 같은 긴 작업을 수행하면 UI가 멈추어 ANR 오류가 발생합니다.

Read More

ConstraintLayout으로 아름다운 애니메이션하기

2017-06-30

ConstraintLayout은 날이 갈 수록 인기를 더해가고 있습니다. 수평적인 뷰 계층 구조와 성능을 향상시키고, 임의의 경계 규칙을 지원합니다. 이전 레이아웃의 단점을 모두해결 할 것입니다. ConstraintLayout의 이점 중 하나는 매우 적은 코드로 멋진 애니메이션을 수행 할 수 있습니다. 이는 대부분의 개발자들이 알지못하며, 공식 문서에도 아무것도 언급되어 있지 않습니다.

Read More

안드로이드 어플리케이션 아키텍처

2017-04-13

안드로이드 개발 생태계는 매우 빠르게 움직입니다. 매주 새로운 툴이 만들어지며 라이브러리가 업데이트되며 블로그의 게시물이 올라오며 커뮤니티에는 많은 문제들로 활발히 논의중입니다. 한 달간 휴가를 다녀온다면 새 버전의 서포트 라이브러리가 당신을 반길 것입니다.

Read More

RecyclerView DiffUtil로 성능 향상하기

2017-04-06

이제 notifyDataSetChanged()는 더 이상사용을 중단하세요! 우리는 리스트를 매일 사용합니다. 사용자가 목록을 스크롤 할때 데이터를 업데이트 해야합니다. 이를 위해 서버에서 데이터를 가져와서 아이템을 업데이트 합니다.

Read More