본문 바로가기

Android22

결제 구현 중 productDetailsList가 empty list를 받아오는 이유 1. 증상 2. 원인 및 해결 방법 2-1. 타이밍 이슈 2-2. 플레이 콘솔에 상품을 제대로 등록했는가? 2-3. 패키지명이 일치하는가? 1. 증상 요즘 구독 결제 기능을 개발하고 있는데 플레이 콘솔에 등록된 상품 정보를 불러오지 못하는 이슈가 있었다. 코드를 정확히 짚어서 말해보자면 private fun querySubscriptionProductDetails() { val params = QueryProductDetailsParams.newBuilder() val productList: MutableList = arrayListOf() for (product in LIST_OF_SUBSCRIPTION_PRODUCTS) { productList.add( QueryProductDetailsParams... 2023. 11. 2.
[번역] UI Layer - 안드로이드 앱 아키텍처 1. 왜 앱 아키텍처 설계를 해야 할까? 2. UI 레이어가 하는 일 3. UI 레이어를 구현하는 방법 3-1. UI 상태를 정의하는 방법 3-2. UI 상태의 생산을 관리하는 방법 3-3. UDF 원칙에 따라 관찰 가능한 데이터 유형으로 UI 상태를 노출하는 방법 3-4. 관찰 가능한 UI 상태를 소비하는 UI를 구현하는 방법 이 글은 안드로이드 공식문서 중 "앱 아키텍처 학습 과정" 페이지를 공부하며 작성한 글입니다. 개인적인 생각이나 의견이 포함되어 있음을 알려드립니다. 1. 왜 앱 아키텍처 설계를 해야 할까? 건물을 지을 때 설계도를 그려야 올바른 구조를 잡을 수 있다. 만약 올바른 구조가 없다면 건물이 무너질 수 있다. 앱도 마찬가지다. 올바른 구조가 없다면 앱도 무너지기 마련이다. 그렇다면 앱.. 2022. 11. 11.
[번역] 앱 아키텍처 가이드 - Android 공식 문서 1. 아키텍처 1-1. 아키텍처란 무엇일까? 1-2. 그렇다면 왜 아키텍처가 필요할까? 2. 아키텍처 설계 원칙 2-1. 관심사 분리 2-2. 데이터 모델에서 UI 도출하기 2-3. 단일 소스 저장소 2-4. 단방향 데이터 흐름 3. 권장 앱 아키텍처 3-1. UI 레이어 3-2. 데이터 레이어 3-3. 도메인 레이어 4. 안드로이드 아키텍처를 위해 추천하는 방법들 4-1. Layered architecture 4-2. UI Layer 4-3. ViewModel 4-4. Lifecycle 4-5. Handle dependencies 4-6. Testing 4-7. Models 4-8. Naming conventions 이 글은 안드로이드 공식문서 중 "앱 아키텍처 가이드" 페이지를 공부하며 작성한 글입니.. 2022. 11. 1.
suspend 함수란 무엇인가요? 🚀 글 읽는 순서 🚀 코루틴은 왜 빠른 걸까요? -> suspend 함수란 무엇인가요? (현재) 1. 요약 2. await 2-1. 개념 2-2. 코루틴 내부에서 실행되는 await 2-3. suspend 내부에서 실행되는 await 3. Suspend 3-1. 개념 3-2. 내부 코드 4. 정리 1. 요약 🧑‍💻: suspend 함수란 무엇인가요? 👨🏻‍🦱: suspend 함수는 일시 중단 가능한 함수이며 코루틴 내부 혹은 suspend 함수 내부에서 사용해야 합니다. suspend의 내부 코드는 콜백 함수 형태를 띄고 있습니다. 2. await 2-1. 개념 이전 글 "코루틴은 왜 빠른 걸까요?"에서 코루틴에 대해 알아보았다. 코루틴은 스레드 안에서 더 잘게 나눠지는 작업 단위라고 표현했었다. 그렇기.. 2022. 8. 29.
코루틴은 왜 빠른 걸까요? 1. 요약 2. Thread 2-1. 스레드를 사용하는 이유 2-2. 스레드의 문제점 3. Coroutine 3-1. 코루틴의 동작 방식 3-2. 코루틴과 스레드의 비교 1. 요약 🧑‍💻: 코루틴이 빠르다, 가볍다라고들 하는데 그 이유가 무엇일까요? 👨🏻‍🦱: 코루틴은 동시성 프로그래밍이며 작업마다 스레드를 생성해서 사용하는 것이 아니라 스레드 안에서 루틴을 만들고 교환하여 자원 낭비가 덜 하기 때문입니다. 2. Thread 2-1. 스레드를 사용하는 이유 코루틴이 빠른 이유를 알아보기 전에 우선 코루틴을 사용하지 않고 스레드를 사용하는 상황을 알아보자. 안드로이드에는 메인 스레드라는 놈이 있다. (만약 스레드가 무엇인지 잘 모른다면 일꾼 정도로 생각하면 된다. 어떠한 작업을 하는 일꾼) 메인 스레드는 .. 2022. 8. 27.