들어가며
드디어 어제를 마지막으로 로또 추첨 어플을 마쳤습니다!! 이번 로또 추첨 어플은 그 전에 만들었던 BMI 측정 어플에 비해 다향한 기능을 배웠습니다 그럼 로또 추첨 어플에서 사용됬던 기능을이 무었이 있었는가 확인해 볼까요?
Layout 을 그리는 법
ConstraintLayout
constraintLayout은 단어의 의미를 보더라도 한번에 알 수 있습니다 바로 제약을 거는 것입니다. 기본적인 LinearLayout이나 ReletiveLayout은 view를 구성하는 데에 제약 조건이 붙지 않습니다 그러나 constraintLayou은 좌 우 위 아래에 제약조건을 주어서 체인을 걸 수 있도록 속성값을 줄 수 있습니다.
app:layout_constraintStart_toStartFrom="parent"
다음과 같은 속성 Start / End / Top / Bottom의 to 와 from을 설정 하여 사용자가 UI를 꾸릴 때 원하는 위치에 뷰잉 할 수 있습니다 요즘 추세가 다 constraintLayout을 사용한다고 합니다!
NumberPicker
NumberPicker는 숫자 리스트를 스크롤 해서 원하는 값을 뽑아 오도록 할 수 있습니다. 스크롤효과는 NumberPicker가 제공함으로 따로 디자인 할 필요가 없습니다
NumberPicker를 kotlin코드에서 사용할땐 두가지를 설정해 줘야 합니다 바로 max값과 min값입니다
numberPicker.maxValue = 100
numberPicker.minValue = 1
다음과 같이 설정을 한다면 NumberPicker 리스트는 1부터 100까지 선택 가능하도록 스크롤 UI를 구성하게 됩니다
이렇게 선택한 값은
numberPick.value
로 가지고 올 수 있으며 가져온 값은 어디서든 사용 할 수 있습니다
코틀린 문법
이번 로또 추첨 어플에서 코틀린 문법은 꽤나 다양하게 사용해보았습니다 어떠한 값을 초기화 할때 사용되는 apply, 자바의 switch와 기능이 비슷한 when, 값을 랜덤하게 가져올 수 있는 Random, Collection, 람다 함수 등 다양한 것을 사용 해 보았는데요! 여기서 대표적인 apply 와 when문만 살펴보도록 하죠!
apply
apply는 주로 값을 초기화 할때 많이 사용됩니다. 객체를 초기화 하거나 collection 객체를 초기화 할때 자주 사용되곤 합니다
val list = mutableListOf<Int>.apply{
for(i in 1..45){
add(i)
}
}
위 코드 처럼 Int 자료형을 담는 list객체를 선언과 동시에 초기화 하는 모습을 볼 수 있습니다. 정말 신기하죠 자바만 평생 했다면 모를 엄청난 기능입니다 원래 자바에서 저런식으로 리스트를 초기화한다면 list선언문 따로 초기화 따로 해야되는 번거로움이 있는데 apply만을 사용해서 두가지 일을 처리 할 수 있다니... 대단한 언어입니다
When
when은 앞서 코틀린 기본을 다루는 포스트도 설명이 잘 되어 있듯이 자바의 switch문과 매우 비슷합니다. 아마 사용자의 액션에 따라 코드와 UI가 자주 바뀌는 어플에서는 when문이 유독 많이 쓰일 것이라고 생각이 듭니다!
val number = 10
when(number){
1..10 -> print("1과 10 사이입니다.")
11...20 -> print("11과 20 사이입니다.")
else -> print("아무 것도 아님...")
}
스위치 문과 매우우우우우우 비슷하지만 다른 문법이 여러가지 있죠?
일단 switch의 case 절에는 조건 절을 줄수가 없습니다 그러나 when은 바로 조건을 줄 수 있죠 1 부터 10 까지의 수라면 / 11에서 20까지의 수라면 이렇게 조건을 줄 수 있습니다 그리고 람다 표현식을 사용해서 코드를 한줄로 사용하는 모습도 볼 수 있습니다. "에이 코드 몇줄 줄일려고 람다를 사용하내" 라고 생각 드실 수 있겠지만 코드가 몇 천줄 될대 몇몇개의 안좋은 엔터가 가독성을 떨어뜨리는 주요 요인이라고 생각합니다.
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발#패스트캠퍼스후기#30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 30일챌린지' 카테고리의 다른 글
[안드로이드] 패스트캠퍼스 챌린지 21일차!! (0) | 2021.09.26 |
---|---|
[안드로이드] 패스트캠퍼스 챌린지 20일차!! (0) | 2021.09.25 |
[안드로이드] 패스트캠퍼스 챌린지 18일차!! (0) | 2021.09.23 |
[안드로이드] 패스트캠퍼스 챌린지 17일차!! (0) | 2021.09.22 |
[안드로이드] 패스트캠퍼스 챌린지 16일차!! (0) | 2021.09.21 |
댓글