Android 28

[안드로이드] 수명 주기 인식요소가 뭔데? - Lifecycle, LifecycleOwner

수명 주기 인식 구성요소. 안드로이드 개발자 공식 문서에서 Lifecycle-Aware Components 을 이렇게 번역하고 있습니다. 그런데 Lifecycle-Aware 컴포넌트가 정확히 뭘까요? Lifecycle-Aware 컴포넌트란? 먼저 정의부터 바로 하겠습니다. Activity 나 Fragment 같은 다른 컴포넌트의 `Lifecycle` 이 변경될 때 이에 대응하는 컴포넌트. 이 컴포넌트는 `lifecycleOwner` 의 상태 변화를 `observe` 해서 필요한 작업을 스스로 할 수 있다. (이때 컴포넌트는 안드로이드 component 만을 의미하는 게 아닌, 자신의 역할을 할 수 있는 컴포넌트를 의미함) 일반적인 패턴에서는 액티비티나 프래그먼트의 lifecycle 메서드 내에서 데이터를..

Android/Theory 2023.10.18

안드로이드 테스팅 (3-3) 코루틴 테스트 - viewModel 에서 디스패처 만들면?, DipatcherProvider, pauseDispatcher, resumeDispatcher

이전 글에서 이어집니다 https://sh1mj1-log.tistory.com/175 https://sh1mj1-log.tistory.com/176 https://sh1mj1-log.tistory.com/177 https://sh1mj1-log.tistory.com/178 안드로이드 테스트 코드를 배워보자 (3 - 2) - viewModelScope.launch 에서 테스트, 메인 디스패처 설정, 이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스 sh1mj1-log.tistory.com 먼저 테스트할 ViewModel ..

Android/테스팅 2023.10.17

안드로이드 테스트 코드를 배워보자 (3 - 2) 코루틴 테스트 - viewModelScope.launch 에서 테스트, 메인 디스패처 설정,

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com https://sh1mj1-log.tistory.com/176 안드로이드 테스트 코드를 배워보자 (2) - Room Unit Test https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드..

Android/테스팅 2023.10.17

안드로이드 테스트 코드를 배워보자 (3 - 1) 코루틴 테스트 - runTest, TestDispatcher, 디스패처 주입

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com https://sh1mj1-log.tistory.com/176 안드로이드 테스트 코드를 배워보자 (2) - Room Unit Test https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드..

Android/테스팅 2023.10.13

안드로이드 테스트 코드를 배워보자 (2) Room Unit Test

https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com 이전 글에서 이어집니다. Room Unit Test - ViewModel, LiveData 등 사용 Room DB 는 안드로이드 Jetpack Components 입니다. 그러므로 안드로이드 종속성이 필요합니다. 안드로이드 개발자 문서 - Room 지속성 라이브러리는 SQLite에 추상화 계층을 제공하여 SQLite를 ..

Android/테스팅 2023.10.10

안드로이드 테스트 코드를 배워보자 (1) liveData 테스트, 비동기 테스트 기본

안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티스토리 앱을 개발하시는 개발자 분의 기술 글에서 테스트를 해야 하는 이유를 이렇게 말하고 있습니다. (기술 글 출처) 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링을 안심하고 할 수 있다. 빠른 시간 내에 코드의 동작 방식과 결과를 확인할 수 있다. 좋은 테스트 코드를 연습하다 보면 자연스럽게 좋은 코드가 만들어진다. 의도한 대로 동작되는 것을 자신감 있게 말할 수 있다. 애자일 방법론의 도입! 로버트 C. 마틴은 이렇게 말했습니다. 기술 실천 방법 없이 애자일을 도입하려는 시도는 실패할 수밖에 없다.”..

Android/테스팅 2023.10.08

헤더에 다른 토큰을 넣는 동작에 따라 API, Interceptor 분리

이전 글 https://sh1mj1-log.tistory.com/164 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 지난 4개월 전쯤 친구를 통해서 여러 다른 분들과 플레이스토어에 바바-BABA 라는 앱을 출시했습니다. 작성했던 코드들을 천천히 보면서 리팩토링 및 버그 픽스를 하며 공부를 더 해보려고 합니 sh1mj1-log.tistory.com 이전 글 '안드로이드 레트로핏 api ... 인터페이스에서 @Header 제거하기' 글에서 이어집니다. 이전 글에서는 api 중에서 헤더에 access token을 넣는 api call 인터페이스와 헤더에 엑세스 토큰을 넣지 않는 인터페이스가 있었습니다. 그런데 이제는 헤더에 sign token 을 넣는 api call 이 추..

MVC, MVP, MVVM 봐도 봐도 조금씩 헷갈리면 모르는 거임

안드로이드에서 유명한 패턴인데 봐도 봐도 조금씩 헷갈리는 것 같아서 제대로 정리를 할 필요성을 느껴 정리합니다. MVC(Model - View - Controller) 패턴 MVC 패턴은 다른 소프트웨어 개발에서 많이 사용되는 디자인 패턴입니다. 당연히 안드로이드 앱 개발에서도 많이 사용됩니다. MVC 패턴은 앱을 세 가지의 주요 컴포넌트로 나누어서 관리하며, 각 컴포넌트는 다른 역할을 수행합니다. Model - MVC Model 은 데이터와 데이터 관련 로직을 포함하는 컴포넌트. 데이터는 앱의 핵심 데이터나 상태. 안드로이드 앱에서의 Model 은 데이터베이스나 네트워크 요청 결과, 앱의 상태 등을 포함할 수 있음. Model 은 주로 데이터를 가져오고 저장하며, 데이터의 유효성 검증을 하고 가공할 수..

Android/Theory 2023.10.02

안드로이드 통신에 자주 사용하는 Retrofit 알아보기 (2) - create 뜯어보기

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/167 안드로이드 통신에 자주 사용하는 Retrofit 알아보기 (1) - HttpURLConnection, OkHttp, Retrofit 장점을 중심 Jwt 토큰 관련해서 프로젝트의 버그 픽스, 간단한 리팩토링(리팩토링이라고 하기도 뭐하지만) 을 진행하면서 이 김에 Retrofit 클래스의 내부 구조에 대해서 조금 이해를 해야 할 필요가 있을 것 같 sh1mj1-log.tistory.com 이번에는 Retrofit 을 사용해서 서버와 통신을 할 때 Retrofit 클래스 내부가 어떻게 구현이 되어 있는지에 대해 조금 더 자세히 알아보겠습니다. Retrofit 클래스 이전 글(안드로이드 통신에 ... Retrofit 장점을 ..