wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Android/Challenge

패스트캠퍼스 챌린지 15일차

Kick_snare 2022. 2. 7. 23:29
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
        }
    }
}
  1. 이미 자동추가를 하였는지?
  2. 번호를 모두 추가하였는지?
  3. 이미 선택한 번호가 존재하는지?
  • 3가지 경우를 예외 처리 해준다

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

 

수강인증샷

링크

https://bit.ly/37BpXiC

728x90