Photo by Mel Poole on Unsplash안드로이드 개발을 하다가보면 하나의 다음과같은 요구사항이 생기는 상황이 생깁니다. TextView 안에 2줄일 때는 14sp, 텍스트가 만약에 길어질 때는 3줄로 제한하면서 12sp로 변경이런 요구사항을 어떻게 해
안녕하세요. 이번 글에서는 얕은복사(Shallow Copy)와 깊은복사(Deep Copy)에 대해서 알아보려고합니다.자바나 코틀린으로 개발을 하다보면 객체를 복사할 일이 생기는데 이 때 주의해서 복사하지 않으면 의도치 않은 결과를 마주할 수 있습니다. 객체를 복사하는
동시성(Concurrency은 Task들이 빠르게 전환하면서 실행되어 동시에 실행되는 것처럼 보이는 것입니다. 싱글 코어에서도 여러 작업은 동시적(Concurrent)으로 실행되며 Task간의 Context Switch가 발생하면서 여러 작업들을 동시에 실행하는 것처럼
최근 컴포즈 스터디모임에서 논의된 내용으로 컴포즈에서 ViewModel을 생성할 때 viewModel()을 이용한 생성과 hiltViewModel()을 이용한 생성이 구체적으로 어떻게 다른지에 대한 논의가 있었습니다. ViewModel을 생성하는 두개의 방법이 어떤
중재자 패턴(Mediator Pattern)은 객체간의 상호작용을 캡슐화하는 디자인 패턴으로 프로그램의 실행중 행위를 바꾸는 방법으로 Behavior Pattern에 속하게됩니다. 객체 지향 프로그래밍에서 프로그램은 일반적으로 비즈니스 로직이나 계산 처리로 분류된 수
함수형 프로그래밍에서는 불변성을 중요하게 생각합니다. 코틀린은 함수형 프로그래밍을 지원하는 언어로 불변성을 강제하지않고 가변을 허용하지만 불변성을 권장하고 있습니다. 불변성(Immutability)이란 함수형 프로그램에서 중요하게 다루는 부분으로 보통의 의미는 상태를
안드로이드 개발을 하다보면 상태와 이벤트처리를 해야합니다. 기존에는 LiveData, SingleLiveData를 활용해서 View의 상태를 업데이트하거나 이벤트를 전달하는 방법을 제공했습니다.하지만 LiveData를 도메인 레이어안에서 플랫폼 독립적으로 사용하려고 한
평상시에 코틀린 파일을 디컴파일하면서 final로 선언되어있는 코드를 보면서 의문만 가졌지만 코틀린에서 Default가 final인 이유에 대해서 궁금해서 알아보았습니다.제가 생각했을 때는 크게 두가지 이유가 있습니다.첫번째는 코틀린은 함수형 프로그래밍에서 아이디어를
:question: 이 글은 Kotlin 공식 문서를 번역과 함께 추가 첨언한 글입니다.alias는 사전상의 의미로 가명, ~라는 가명으로 알려진의 뜻으로 정의되어있습니다.코틀린에서 Type aliase는 제네릭 타입의 컬렉션 쓸 때 이름이 길게 된다면 짧은 이름으로
코틀린 1.8.0 버전이 2022년 12월 28일에 정식으로 출시되었습니다. 새로운 코틀린 버전이 출시되면서 어떤 부분이 변경되었는지 업데이트를 요약해 보았습니다.
커맨드 패턴(Command pattern)이란 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다.커맨드 패턴에 사용되는 4가지 주요 용어가 있다
페이지 교체 알고리즘(Paging Replacement Algorithm)은 페이징 기법으로 메모리를 관리하는 운영체제에서 페이지 부재(Page Fault)가 발생하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법이다. 페이지
미국식 철자는 Marshaling CS에서 마샬링(Marshalling)은 파일로 저장하거나 네트워크 전송하기 위해서 객체의 데이터 포맷을 적합한 형태로 변환하여 메모리에 표현하는 과정입니다. 일반적으로 컴퓨터 프로그램에서 서로 다른 파트끼리 데이터를 전달하거나 하
코틀린에서는 두 객체를 비교하는타입에는 2가지가 있습니다.동등성, Structural equality (==)동일성, Referential equality (===)동일성은 객체가 참조하는 주소값을 비교하고, 동등성은 객체가 가지는 정보를 비교합니다.Java에서는 동일
이 글은 Shubham Garg님의 글을 번역한 글입니다.안드로이드 앱을 다른 모듈로 모듈화하는 것은 코드 유지보수 및 빌드 성능에 이점이 있는지는 모두 알고 있습니다.따라서 이 글에서는 계측 테스트에서도 동일하게 이 이점을 가져갈 수 있는지에 대해서 얘기해보려고합니
이번글에서는 디자인 패턴 중 하나인 싱글톤 패턴에 대해서 알아봅니다. 싱글톤 패턴은 객체 지향 소프트웨어에서 반복되는 문제를 해결하기 위해 잘 설명해진 GoF 디자인 패턴 중 하나입니다. 싱글톤 패턴은 클래스의 인스턴스화를 단일 인스턴스로 제한하는 패턴입니다. 오직 하
메서드 시그니처(Method signature)란 무엇일까?메서드 시그니처는 자바에서 프로그래머가 디자인한 메서드 구조를 의미하며 메서드 이름과 파라미터리스트로 구성됩니다. 작성된 코드는 Java 컴파일러에서 오버로딩된 함수들은 메서드 시그니처를 통해 식별합니다. 같
Kotlin standard library는 Collection과 함께 또 다른 유형인 Sequences(Sequence<T>) 를 포함하고 있습니다. 컬렉션과는 달리 시퀀스는 엘리먼트를 포함하지 않으며 반복하는 동안 엘리먼트를 생성합니다. 시퀀스는 Iterabl
안드로이드에서 구성변경(Configuration Change)가 일어날 때 ViewModel 객체는 Activity가 재생성 되더라도 파괴되지 않고 객체가 유지되는 것을 볼 수 있습니다. Activity가 파괴되고 사라질 때 생명주기 마지막 오버라이드 함수인 onDes