Android Test Code 도입기 1편 - 사전 조사
본격적인 회사 앱에 테스트 코드 도입하기 전 제가 사전 조사한 내용을 공유합니다. 테스트 코드 적용 목표 및 이점 공용 코드 수정으로 인한 사이드 이슈를 빠르게 확인할 수 있습니다. 코드 수정 및 리팩토링 후 결과 확인 시간을 단축할 수 있습니다. 사소한 오류로 인해 apk를 다시 업로드하는 번거로움을 줄일 수 있습니다. 신속...
본격적인 회사 앱에 테스트 코드 도입하기 전 제가 사전 조사한 내용을 공유합니다. 테스트 코드 적용 목표 및 이점 공용 코드 수정으로 인한 사이드 이슈를 빠르게 확인할 수 있습니다. 코드 수정 및 리팩토링 후 결과 확인 시간을 단축할 수 있습니다. 사소한 오류로 인해 apk를 다시 업로드하는 번거로움을 줄일 수 있습니다. 신속...
values() 함수의 문제점 기본적으로 values()는 변경 가능한(mutable) Array type으로 반환하는데, 이는 매번 호출할 때 마다 Array를 할당하고 복제해야 합니다. 이는 Java와 Kotlin에서 성능 문제의 원인이 됩니다. 자세한 성능 이슈의 예는 아래 링크 참조하시면 됩니다. HttpStatus.resolve al...
Data classes data class는 데이터를 담기위한 목적으로 만들어진 클래스이며, 데이터 클래스를 다음과 같이 정의하면 컴파일러는 다음과 같은 함수를 자동으로 생성합니다. data class User(val name: String = "John", val age: Int = 42) .equals() / .hashCode() .to...
안녕하세요, 신입 때 기술의 성장을 목표로 무턱대고 시작한 것이 구글 플레이스토어까지 릴리즈하여 저의 기술 성장에 큰 원동력이 되어줬던 첫 사이드 프로젝트를 진행하며 느낀점을 남겨봅니다. 좋았던 점 신기술 스터디에 도움 끊임없는 공부는 개발자의 숙명이지만, 모바일은 늘 변화하고 항상 업데이트되며 그로 인한 새로운 기술들이 수없이 나오고 있습니다. ...
StateFlow와 SharedFlow의 차이점을 공부하기 전에 알아야하는 개념이 있었습니다. 그것은 바로 ‘Cold Stream’과 ‘Hot Stream’입니다. Cold Stream 하나의 소비자(Consumer)에게 값을 보냅니다. 생성된 이후에 누군가 소비하기 시작(collect)하면 데이터를 발행합니다. 상태가 변하지 않...
Object kotlin에서 객체를 싱글톤으로 동작하고 싶으면 간단하게 object 키워드를 사용하여 구현할 수 있습니다. 싱글톤 패턴 : 메모리상에 단 하나만의 객체를 생성하기 위해 만드는 패턴 object MyObject { fun printHello() { println("Hello World!") } } fun main...
코틀린에서 HashSet을 생성하기 위해 hashSetOf를 사용하며, LinkedHashSet을 생성하기 위해 setOf를 사용합니다. setOf를 자세히 들여다보면 LinkedHashSet으로 만드는 것을 볼 수 있습니다. public fun <T> setOf(vararg elements: T): Set<T> = if (e...
본문에 들어가기 앞서, 풀 소스코드 링크 공유합니다. 본 포스팅은 Paging3 라이브러리를 사용하여 리스트를 구성해본적이 있어야 쉽게 이해 하실 수 있습니다. Paging3 라이브러리를 사용방법은 구글링 해보면 많이 나오니 참고하시기 바랍니다. GitHub 소스 코드 링크 일반적인 페이징에서는 다음과 같이 한 개의 뷰 타입만이 고려가 됩...
Android Developer 홈페이지의 공식 문서를 읽다보면 Component에 대한 언급이 자주 등장 합니다. 그 만큼 android에서 기초가 되고 중요한 요소들이라는 것을 알 수 있는데요, Android Component에 대한 공부를 하며 내용을 정리 해볼까 합니다. Component 정의 컴포넌트는 앱의 구성 단위이며, 컴포넌트 ...
이번 포스팅은 Paging Library3를 사용하다가 버린 경험을 공유 하고자 올립니다. 페이징 라이브러리 UI를 구성할 때 Compose가 아닌 xml로 작성 되었음을 미리 알려드립니다. 페이징 라이브러리는 장점이 명확해서 널리 쓰인다! Google에서 런칭된 JetPack 라이브러리의 하나인 Paging Library는 디자인 패턴...