Serializable 에 대해 모르고 사용하고 있는 것 같아 분석하게 되었는데, 주석에서 설명을 너무 잘해주고 있어서 이를 공유하게 되었습니다.Serialization 과정의 진입점Kotlin class에 Serializable 적용하면 자동으로 KSerializer
https://velog.io/@evergreen_tree/Android-MVI-%ED%8C%A8%ED%84%B4이전에 MVI에 대해 작성했던 글입니다. 연관되는 내용이 많으니, 보고 오시면 이해가 더 쉽습니다.필자의 개인의 주관적인 생각이 섞여있습니다. 오타
YAPP 후원을 통해 얻은 인프런 수강권으로 피그마 강의를 듣고, 스터디를 진행하며 작성하게 된 후기입니다.IT 연합동아리 YAPP 21기로 활동하면서 느낀 점 중 하나는, 다른 기업과 연계하여 구성원들에게 스터디가 가능한 환경을 잘 조성해 준다는 점입니다. 이번 21
람다식 내에서 외부 변수를 변경하는 것에 대해 아무런 의문을 느끼지 않다가, 문득 궁금증이 생겼습니다. 함수를 작성하는 시점에는 람다식의 블럭 내부가 실행되지 않다가, 호출되는 시점에 실행될텐데 과연 어떻게 동작하게 될까요?위 코드는 Jetpack Compose에서 T
Nexters 21기의 첫 프로젝트인 "클라이머를 위한 출석 시스템 홀디" 를 배포하면서 생긴 Issue를 해결하기 위한 과정을 담았습니다. Issue💡 Debug에서 정상적으로 작동하던 홀디 앱을, 출시를 위해 Release Variants로 설정하여도 잘 작동되
💡개요 협업하는 개발자들 끼리 서로의 코드를 다 살펴볼 순 없습니다. 특히, 각자 개발한 UI에 대해 한눈에 알아보는 것은 더욱 힘든 일입니다. UI Test를 작성하는 것 만으로도 이것이 어떻게 작동하는지 유추가 가능하게 되고, 이것은 일종의 문서 역할을 하게
어떤 프로세스에게 자원을 할당할지 결정하는 운영체제 커널의 모듈 다중 프로그래밍(Multi-programming)에서는, CPU의 이용을 극대화하기 위해 항상 어떤 프로세스가 실행될 수 있도록 하고, 시분할(Time-Shared)은 프로세스 간 문맥 전환이 빠르게 이루
Nexters 21기 CS 스터디 첫 번째 주제로 프로세스와 스레드에 포스팅하게 되었습니다. 프로세스와 스레드의 차이를 알고 작동하는 방식에 대해 이해하는 것이 요점일 것 같습니다.프로세스는 수행 중인 프로그램을 의미합니다.디스크에 저장된 실행 파일을 프로그램이라고 하
Compose로 UI를 작성하면서 "Modifier' can't be called in this context by implicit receiver. Use the explicit one if necessary" 라는 이슈를 만나게 되었고, 그런 김에.. 재사용 가능한
개발하면서 sealed class를 잘 모르고 썼던 것 같아서 이번 토픽으로 정하게 되었습니다. Navigation, State등의 상태 나열 등에 썼었던 것 같은데 왜 sealed로 선언하는지 그 이유를 보겠습니다. Sealed class는 자기 지신이 추상 클래
이전 글에 이어서, 이번에는 Delegated Property에 대해 포스팅하겠습니다. KProperty 라는 생소한 개념도 나와서 함께 작성해 보았습니다.Class Delegation과 비슷하게 프로퍼티의 getter, setter를 다른 객체에 위임하는 것을 의미합
코틀린에서 많이 사용하는 by 키워드, 특히나 뷰모델을 사용할 때 많이 봤었습니다. val viewModel: MainViewModel by viewModels()단순히 viewModel을 위임하는 것이라고 알고 있었는데, 위임한다는 것이 무슨 의미이고, 어떤 식으로
이번 토픽은 inline class입니다. inline fun은 사용해 봤지만 inline class는 사용해 본적이 없는 것 같아서 주제로 선정하게 되었습니다. 클래스 내부 구조를 살펴볼 때 몇번 본 것 같은데, 왜 사용하는지 알아보겠습니다.다른 변수와 혼동되지 않기
자바에서도 Generic에 대해 얕게 이해하고 있었는데, Kotlin에서 in, out를 만나면서 제대로 알아봐야겠다는 생각이 들게 되었습니다.Data Type Generalize클래스 내부에서 사용할 Data Type을 컴파일 시 미리 지정하는 것을 의미합니다.자바와
코틀린 기본 문법 중 프로퍼티에 대한 이해를 확실하게 하고, 설명할 수 있을 정도로 이해하기 위해 글을 작성하게 되었습니다.객체지향 프로그래밍에는 캡슐화라는 개념이 있습니다. 데이터와, 그 데이터를 처리하는 메소드를 묶어 클래스 안에 보호하는 것입니다. 이를 위해 내부
클린 아키텍처로 프로젝트를 진행하면서 겪었던 많은 고민을 공유하기 위해 글을 작성하게 되었습니다. 늘 그랬듯 많은 관심과 지적 부탁드립니다. 안드로이드 앱 개발을 시작하던 초기에, 같이 프로젝트를 진행하면서 멘토였던 선배로부터 디자인 패턴과 함께 아키텍처라는 개념을
https://velog.io/@evergreen_tree/Android-MVVM-AAC-FireBase-Google-Logind 에서 이어집니다!다음 예제는 FireBase를 통해 Google 로그인을 구현하는 예제입니다. AAC와 MVVM을 이용해 구현해
구글 로그인을 구현해볼 겸 안드로이드 Architecture Components를 활용해 mvvm과 observer pattern을 이해하기 위해 예제를 만들게 되었습니다.생각보다 mvvm의 View와 Logic 분리에 고민을 많이 하게 되는 시간이었습니다.조언, 반박
https://velog.io/@evergreen_tree/AndroidMVI-2.-MVI%EC%9D%98-Purecycle 에서 이어집니다.항상 모든 흐름이 Pure cycle로 이루어 질 순 없습니다. 앱은 외부세계의 상태를 변화시켜야 하는 상황이 발생하기
https://velog.io/@evergreen_tree/Android-MVI-%ED%8C%A8%ED%84%B4 에서 이어집니다.MVI는 순수 함수로 이루어진 Pure Cycle과, 부수효과가 포함되어있는 SideEffct Cycle로 표현할 수 있습니다.