wanna be dev 🧑‍💻

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

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

Android/Challenge

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

Kick_snare 2022. 2. 8. 10:25
728x90

30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online

강의 목표


  • 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
  • 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
  • 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
  • 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.

목차 02 Basic - Ch02. 로또 번호 추첨기


  • 인트로(완성앱&구현기능소개)
  • Collection 개념 소개
  • 로또 번호 추첨 알고리즘 생각해보기
  • Constraintlayout 이용하여 기본 UI 그리기(1)
  • Constraintlayout 이용하여 기본 UI 그리기(2)
  • 기능 구현하기(1)
  • 기능 구현하기(2)
  • Resource를 이용하여 꾸며보기
  • 아웃트로(정리)

기능 구현하기(1)

  • 번호 추가를 위해 예외 처리를 해줬으므로 직접적인 View에 추가하는 코드를 추가한다
  • 먼저 로또 번호를 표시할 6개의 TextView를 List로 받아올 수 있다
private val numberTextViewList: List<TextView> by lazy {
    listOf<TextView>(
        findViewById<TextView>(R.id.num1),
        findViewById<TextView>(R.id.num2),
        findViewById<TextView>(R.id.num3),
        findViewById<TextView>(R.id.num4),
        findViewById<TextView>(R.id.num5),
        findViewById<TextView>(R.id.num6),
    )
}
  • 그리고 번호 추가 버튼을 눌렀을 때
    1. 해당 차례의 textView가 보여야한다 (defalut는 gone 상태)
    2. textView의 text부분이 numberPicker의 값으로 되야한다
    3. 중복 검사를 위한 pickerNumberSet에도 numberPicker의 값이 추가되어야한다
val textView = numberTextViewList[pickNumberSet.size]
textView.isVisible = true
textView.text = numberPicker.value.toString()
pickNumberSet.add(numberPicker.value)

기능 구현하기(2)

  • 초기화 버튼의 동작도 정의해주도록 한다
    1. numberSet 이 초기화 되고
    2. 모든 추출한 번호인 textView를 보이지 않도록하고
    3. didRun을 false로 돌려준다
private fun initClearButton() {
    clearButton.setOnClickListener {
        pickNumberSet.clear()
        numberTextViewList.forEach {
            it.isVisible = false
        }
        didRun = false
    }
}
  • 💡forEach : 순회 반복문이며, it 으로 원소에 접근할 수 있다

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

수강인증샷

링크

https://bit.ly/37BpXiC

728x90