Kotlin (5) 썸네일형 리스트형 Coroutine 뜯어보기 (1) - CPS, Continuation Coroutine 스터디를 진행하며 공부한 내용들에 대해 정리해보려고 합니다.CPS (Continuation Passing Style) 함수형 프로그래밍에서 Continuation의 전달로 프로그램 제어가 흐르게하는 프로그래밍 스타일말 그대로 Continuation을 전달하는 스타일 입니다. CPS 사용 이유비동기 작업을 더 직관적이고 쉽게 관리복잡한 콜백을 switch문으로 단순하게 표현함함수형 프로그래밍함수적 스타일로 상태와 흐름을 효과적으로 관리스택 스페이스 절약꼬리 호출을 사용하기 때문에, 서로 중첩된 함수를 스택 프레임에 보관하지 않고도 긴 재귀를 표현이를 통해 스택 오버플로우 방지여기서 꼬리 호출이란? 함수 내에서 마지막으로 수행되는 작업이 또 다른 함수 호출일 때, 이를 꼬리 호출 이라고 합.. [Android] Compose 사용 이유, 맛보기 Jetpack Compose 1.0이 출시된지 약 1년이 흘렀습니다. XML에 Databinding을 배워 적용한지도 얼마전인 것 같은데, 금세 또 새로운 기술이 나왔네요. XML을 사용하지 않는 새로운 패러다임이라서 많이 눈길이 갔었는데, Compose를 사용하는 곳도 늘어나고 있는 만큼, 공식 문서의 Compose 사용 이유와 기본적인 내용을 맛보기로 정리해보면서 차차 익혀보려 합니다. Compose 사용 이유 1. 코드 감소 코드를 Kotlin과 XML로 나누지 않고, Kotlin으로만 같은 파일에서 작성하여 코드 추적이 쉬워짐 코드 감소로 유지 관리가 쉬움 Recyclerview 작성 시 Adapter가 사라져 코드가 상당히 감소함 2. 직관적 선언적 API 사용, 읽기 쉬움 특정 활동이나 프래그.. 코틀린의 변수와 자료형 (Kotlin) 코틀린의 자료형코틀린은 기본적으로 null 허용을 하지 않습니다. 즉, 값이 항상 할당되어야 한다는 원칙이 있습니다.코틀린은 참조형 자료형만을 주로 사용하는데,Int, Long 등의 null을 허용하지 않는 변수들은 컴파일 후 기본형 (Primitive Type) 으로 변환되어 JVM에서 실행됩니다. 물음표(?)를 붙이면 코틀린에서도 null 할당이 가능하죠. 예를 들면 Int?, Long? 등은 기본형으로 변환되지 않고 힙(Heap) 공간에 저장됩니다.그래서 null을 가질 수 있는 Int?는 래퍼 클래스인 Integer으로 박싱(Boxing) 되어 처리됩니다. 즉,Int -> Int (Primitive type)Int? -> Integer 이와같이 처리됩니다 코틀린의 동등성 연산 (== , ===)먼.. [Android] TextWatcher 사용하기 - EditText 입력 변경 이벤트 탐지 (Kotlin) + 무한루프 해결법 안녕하세요! 오늘은 EditText를 사용하다보면 쓸 일이 생기는 TextWatcher에 대해 포스팅 해보겠습니다. TextWatcher는 단어 그대로 입력되는 Text를 감지하고 있다가 실시간으로 동작하는 유용한 클래스죠. 입력 값 형식 체크, 환율 계산 등등 여러 상황에서 많이 쓰입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 private val textWatcher = object : TextWatcher { override fun afterTextChanged(s: Editable?) { val length = s.toString().length tvLength.text = "$length / 120" } override fun beforeTextChanged(s: CharS.. [Android] Retrofit 2.0 사용 방법 (Kotlin) - 1. 시작하기 Retrofit 2.0 사용 방법에 대한 포스팅을 해보려고 합니다. 서버와 통신을 하는 데 많이 쓰는 아주 유용한 라이브러리입니다. HttpURLConnection을 사용하여 통신을 위한 코드를 직접 작성할 수도 있지만 코드의 양도 많아지고, 아무래도 직접 작성한 코드는 여러가지 유형의 버그에 취약할 수 있죠. Retrofit 2.0 은 인터페이스와, 여러가지 어노테이션을 사용하여 직관적이고, 간결하게 서버와 통신할 수 있도록 해줍니다. 한번도 써보지 않으신 분들은 신세계를 경험하실 거에요! 여기저기서 공부하고 직접 써본 후에 작성하는 포스팅이므로 잘못된 점이나, 더 나은 방법 혹은 질문이 있으시다면 얼마든지 댓글로 알려주세요 :) 시작하겠습니다! 1. 시작하기 먼저 app단의 build.gradle에 .. 이전 1 다음