728x90
15일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch02. 로또 번호 추첨기
인트로(완성앱&구현기능소개)Collection 개념 소개로또 번호 추첨 알고리즘 생각해보기Constraintlayout 이용하여 기본 UI 그리기(1)Constraintlayout 이용하여 기본 UI 그리기(2)- 기능 구현하기(1)
- 기능 구현하기(2)
- Resource를 이용하여 꾸며보기
- 아웃트로(정리)
기능 구현하기 (1)
- View 파트의 버튼과 버튼 표시부를 완성하였음
- 기능 구현을 위해 Mainactivity 부에서 로직을 짜도록 한다
- 먼저 View 파트의 입력부를 연결한다
private val clearButton : Button by lazy {
findViewById<Button>(R.id.clearButton)
}
private val addButton : Button by lazy {
findViewById<Button>(R.id.addButton)
}
private val runButton : Button by lazy {
findViewById<Button>(R.id.runButton)
}
private val numberPicker : NumberPicker by lazy {
findViewById<NumberPicker>(R.id.numberPicker)
}
- 💡 by lazy란?
- 값을 지정하는 작업을 미루게 해줌
- 값이 할당되는 시점이 변수를 호출하는 시점이 된다
- numberPicker를 예로, 사용자가 값을 입력하여 할당되는 순간 초기화 된다
- var 키워드를 사용할 수 없고, val 로 선언해야함
- numberPicker의 max 값과 min 값을 설정해준다
numberPicker.minValue = 1
numberPicker.maxValue = 45
- 자동생성 버튼을 눌렀을때 랜덤 알고리즘을 짜보자
private fun getRandomNumber(): List<Int> {
val numberList = mutableListOf<Int>().apply {
for(i in 1..45) this.add(i)
}
numberList.shuffle()
return numberList.subList(0,6).sorted()
}
private fun initRunButton() {
runButton.setOnClickListener {
val list = getRandomNumber()
}
}
- 1부터 45까지의 리스트를 shuffle 한 뒤, 6개의 원소를 추출한다
- 번호 추가 버튼을 눌렸을 때 고려해보자
private fun initAddButton() {
addButton.setOnClickListener {
if(didRun) {
Toast.makeText(this, "초기화 후에 시도해주세요", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
if(pickNumberSet.size >= 5) {
Toast.makeText(this, "번호는 5개까지만 선택할 수 있습니", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
if(pickNumberSet.contains(numberPicker.value)) {
Toast.makeText(this, "이미 선택된 번호입니", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
}
}
- 이미 자동추가를 하였는지?
- 번호를 모두 추가하였는지?
- 이미 선택한 번호가 존재하는지?
- 3가지 경우를 예외 처리 해준다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
728x90
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 17일차 (0) | 2022.02.09 |
---|---|
패스트캠퍼스 챌린지 16일차 (0) | 2022.02.08 |
패스트캠퍼스 챌린지 14일차 (0) | 2022.02.06 |
패스트캠퍼스 챌린지 13일차 (0) | 2022.02.05 |
패스트캠퍼스 챌린지 12일차 (0) | 2022.02.04 |