본문 바로가기
패스트캠퍼스 30일챌린지

[안드로이드] 패스트캠퍼스 챌린지 19일차!!

by 욧닭 2021. 9. 24.
반응형

들어가며

드디어 어제를 마지막으로 로또 추첨 어플을 마쳤습니다!! 이번 로또 추첨 어플은 그 전에 만들었던 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

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형

댓글