목록전체 글 (50)
운기의 블로그
저번 포스팅에 이어서 ConstraintLayout의 제약사항의 종류에 대해서 알아보자 제약사항 종류 2) Margin 이전 포스팅을 보면 ConstraintLayout은 상대적 위치를 정해줄 수 있다고 했다. A의 위젯을 기준으로 B의 위젯의 위치를 조절 할 수 있다. 아무런 마진값을 주지 않는다면 위의 이미지 처럼 A의 위젯과 B의 위젯은 붙어 있게 된다. 하지만 이때 아래와 같은 속성 값을 이용하면 android:layout_marginStart android:layout_marginEnd android:layout_marginLeft android:layout_marginTop android:layout_marginRight android:layout_marginBottom A 위젯을 기준으로 특..
그 동안 UI를 그릴 때 ConstraintLayout을 이용해서 구현했다. 하지만 보다 정확한 개념을 가지고 사용하기 위해 포스팅으로 남겨두려고한다. ( 컴포즈도 공불해야하는데 ㅠㅠ.... 추후에 공부하고 남겨보도록 하겠습니다.) 1. ConstraintLayout 이란? 특정 제약 사항을 통해 레이아웃을 구성하는 단어로 생각하면 되는 구글 가이드에서는 어떻게 설명하고 있는지 한번 보도록하자. https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout ConstraintLayout | Android Developers developer.android.com 구글 문서에 보면 ConstraintLayou..
코틀린에서 collection을 mutable / immutable 인터페이스를 제공하는 이유에 대해 말하기전에 함수형 프로그래밍의 특징인 불변성에 대해서 이야기해보려고 한다. 1. 함수형 프로그래밍 - 불변성 코틀린은 함수형 프로그래밍을 지원한다고 이전 포스팅에서 언급했다. 함수형 프로그래밍의 중요한 특징인 불변성에 대해서 알아보자 불변성이란? 변하지 아니하는 성질 공간 좌표의 반전, 시간 반전, 회전, 로런츠 변환 따위의 특정한 변환이나 연산으로도 변화하지 않는다고 하는, 물리량이나 물리 법칙이 갖는 성질 정리해 보자면 이전의 상태를 그대로 유지하는 성질 또는 상태를 변경하지 않는 것을 말한다. 프로그래밍 관점에서 보자면 "메모리에 할당된 값을 바꾸지 않는 것을 의미한다" 2. Collection 메..
코틀린 collection은 자바와 동일하게 list, set, map 이 존재한다. 하지만 코틀린의 collection은 자바와 다른점이 있는데 읽기전용인터페이스와 쓰기가 가능한 인터페이스 두개로 나누어진다는 점입니다. 우선 코틀린 공식 홈페이지에서 가이드하고 있는 내용을 먼저보자 읽고 쓰기가 가능한(가변형) MutableCollection인 MutableList, MutableSet, MutableMap 읽기만 가능한(불변형) List, Set, Map으로 구성되어있다. -> 제가 생각한 두개의 차이점은 동적으로 메모리에 할당이 가능한가에 대한 여부이다. 가변형인 경우는 동적으로 데이터를 추가하고 삭제하고 가능하지만, 불변형의 경우에는 초기값을 할당해 주고 데이터를 변경 할 수 없다. 어떠한 이유로 ..
자바로 안드로이드를 개발하다 코틀린으로 넘어가면서 신기한 모양?을 보게 되었다. 변수에 조건문에 대한 값을 바로 넣는다고?? 어떻게 이런일이 가능한지에 대해 알아보기 시작했다. 우선 위와 같은 일이 가능한 이유는 코틀린이 "함수형 프로그래밍" 을 지원한다는 사실을 알아야한다. 함수형 프로그래밍에서 함수는 "일급 함수" 이다. 일급 시민? computer science에서는 어떤 프로그램언어의 함수가 일급시민이라면, 일급 함수를 가지고 있다라고 말한다. 사실 이것만 보고는 무슨말인지 알기 어려울것이다. 저 역시도 이부분에 대해서 이해가 되지않아 많은 시간을 사용했다. 최대한 이해한대로 쉽게 써보려고한다. 우선 "일급시민" 에 대해서 알아보자. 영어로는 First-class-citizen으로 단어 뜻은 공정..
when 구문은 코틀린에서 새롭게 등장했지만, 알고 보면 자바의 if문, switch문과 동일한 역할을 한다. 사용법은 아래 코드를 보며 알아보자!! 기존의 switch문에서 사용하던 case와 default가 빠지면서 코드가 간결해지는 모습을 볼 수 있다. 사용법은 조건 / 화살표 / 결과값의 구조를 가지고 있고 조건에 만족하면 결과값이 출력되는 원리이다. - 왼쪽(bmi) 조건이 >= 35.0 이라는 조건식에 참(true) 라면 오른쪽 " 고도 비만 " 이라는 결과값이 출력된다. 그리고 기존에 switch문에서 하나의 분기만 처리하기 위해 break를 선언해줬다면, when에서는 조건에 만족한다면 다음 분기를 실행하지 않는다. when만의 특별한 장점이라면, 기존에 switch문 에서 들어갔던 분기 ..