AI 시대에 개발자는 무엇을 만들어야 할까?
구현 비용이 낮아진 AI 시대에 개발자가 어떤 문제를 고르고 무엇을 만들어야 하는지, 맥락과 완결성, 신뢰의 관점에서 살펴봅니다.
NOTES FROM THE BUILD
Android 개발과 제품을 만들며 배운 것들을 기록합니다. 오래된 플랫폼의 흔적부터 AI 시대의 제품 고민까지.
35 POSTS · SINCE 2015구현 비용이 낮아진 AI 시대에 개발자가 어떤 문제를 고르고 무엇을 만들어야 하는지, 맥락과 완결성, 신뢰의 관점에서 살펴봅니다.
AI로 생산성이 높아져도 매출이 늘지 않는 이유와 의사결정, 사업 구조, 병목을 통해 진짜 레버리지를 찾는 방법을 정리합니다.
앱 업데이트를 안내하기 위해 자체 버전 확인 로직과 Play 스토어 이동 화면을 구현하는 경우가 많다. AppUpdateManager를 사용하면 사용자가 앱을 벗어나지 않고 업데이트를 진행하는 인앱 업데이트 흐름을 구성할 수 있다. 즉시 업데이트와 유연한 업데이트의 차이와 기본 구현 방법을 살펴본다.
Android O부터 백그라운드 서비스와 암시적 브로드캐스트에는 여러 제약이 적용된다. 즉시 실행할 필요는 없지만 완료가 보장되어야 하는 작업을 WorkManager로 예약하고, 주기적으로 실행하는 방법을 살펴본다.
2011년에 출시된 ViewPager의 후속 버전인 ViewPager2가 2019년 알파 버전으로 공개되었다. RecyclerView 기반 어댑터, 세로 방향 페이징과 RTL 지원 등 주요 변경점을 살펴본다.
async에서 발생한 예외는 await()만 try/catch로 감싼다고 항상 처리되는 것은 아니다. 부모와 자식 Job 사이의 전파 규칙을 이해하고 coroutineScope 또는 SupervisorJob을 선택하는 방법을 예제로 살펴본다.
ConstraintSet을 사용하면 두 레이아웃 사이의 크기와 위치 변화를 애니메이션으로 표현할 수 있다. 이 아이디어를 확장한 MotionLayout으로 복잡한 화면 전환을 XML에 선언하는 방법을 살펴본다.
Dank 앱은 키보드가 나타나고 사라질 때 콘텐츠 크기와 스크롤을 자연스럽게 조절한다. 기본 동작에서 생기는 갑작스러운 레이아웃 변화를 줄이고 부드럽게 전환하는 원리를 살펴본다.
Android 앱 전체가 Background 또는 Foreground 상태로 전환되는 시점을 감지해야 할 때가 있다. 각 Activity의 Lifecycle을 따로 추적하는 대신 ProcessLifecycleOwner를 사용해 애플리케이션 수준의 상태 변화를 관찰하는 방법을 살펴본다.
Android의 UI 스레드에서 네트워크 요청, 데이터베이스 쿼리나 무거운 연산을 수행하면 화면이 멈추고 ANR이 발생할 수 있다. Kotlin Coroutines를 사용해 여러 Retrofit2 요청을 동시에 처리하고 결과를 조합하는 방법을 살펴본다.
Fragment 전환에 공유 요소 애니메이션을 적용하는 방법을 살펴본다. 기본적인 sharedElementViews 구성부터 Chris Banes의 ColumnedChangeBounds를 활용한 확장 효과까지 다룬다.
Android P 프리뷰와 함께 Design Support Library 28.0.0 alpha1이 공개되었다. 이 버전에 처음 포함된 BottomAppBar의 주요 속성과 FloatingActionButton을 배치하는 방법을 살펴본다. com.android.support:design:28.0.0-alpha1