Intro
- TIL 쓸때마다 늘 막막함이 몰려오지만 확실히 쓰기전보다 쓰고난 후가 좀더 머리속이 잘 정리되는것같다. 아마도 한번더 정리하는 시간을 가지기 때문일 것이다.
- TIL에대한 제목이 늘 바뀌는데 이것도 오늘부터 정착해보고자한다. 이전의 자료들은 모두 내일배움캠프 7기 시리즈에 모아놓았으니 나름 Milestone이 되고있을지도..?
Activity 정리
- 오늘 Activity와 activity lifecycle에대해 정리해보는 시간을가졌다. 사실 찍먹정도의 수준으로만 정리를하였고 더 깊은 내용들이 공식문서에 존재하는데 이건 내일 한번더 살펴보려고 한다. 공부한 내용
알고리듬 문제풀이
- 오늘 총 2문제를 풀었고 '숫자찾기'와 '문자열 정렬하기(2)'였다. 첫번재 문제는 String에 대한 이해를 물어보는 것 같았고, 두번재문제는 정렬문제였다. 나도 세련되게 코틀린의 확장함수들 막 써가면서 풀고싶었는데.. 첫번째문제와 두번째문제 모두 for문으로 풀었다..
- 두번째문제는 아스키코드를 이용해서 풀었는데, 다른분들이 푸신 방법들을 보니 소문자로 바꿔주는 확장함수를 쓰시더라.. 공부하는데에는 아스키코드를 이용해 바꾸는것도 나쁘지않지만 한번해봤으니까 다음에는 그냥 소문자로 바꾸는 확장함수를 사용해야지..!
- 풀다가 잘 이해되지 않았던 요소가 등장했었는데 그것에 관한 글은 여기에
계산기 만들기
- 마냥 이론만 공부하는건 개발공부랑 좀 동떨어져있기에 실제 앱을 만들면서 문제를 해결해보고자했다. 그래서 계산기를 만들기로했다. 내 스마트폰(겔럭시 Z플립4)에 설치되어있는 계산기를보고 만들고있다.

- 이게 내 폰에 있던 계산기이고


- 이게 내가 만들고있는 계산기이다.
- UI 부분에서 버튼모양을 커스텀하는 방법에대해 새롭게 배우는 시간이었다. 역시나 구글공식문서를 꼼꼼히 읽어보면 쉽게 만들수 있는 것들이었다. 구글 공식문서
- 또한가지는 확장함수를 써봤는데 너무너무 편했다. 일단 C#에서와 다르게 구현도 편하고 사용도 너무 편하고 좋았다. 무엇보다 코드가 깔끔해져서 너무 보기좋았다!!!
fun EditText.setVisibility(value: String): Unit {
this.setText(value)
this.visibility = View.VISIBLE
this.requestFocus()
this.setSelection(this.length())
imm.hideSoftInputFromWindow(this.windowToken, 0 )
}
fun EditText.reset() {
inputValue = ""
this.text.clear()
this.visibility = View.INVISIBLE
}
fun TextView.setVisibility(value: String): Unit {
this.setText(value)
this.visibility = View.VISIBLE
}
fun TextView.reset() {
inputValue = ""
this.text = inputValue
this.visibility = View.INVISIBLE
}
- EditText와 TextView의 visible을 설정하기위해 사용했고 그 이유는 개발시 xml에서만 text값을 보고싶어서 실제 사용할때 값을 바꿔넣은 후 View에 보이도록하기위해 이렇게 구현했다. 사용은 아래와 같이 했다.
when (view.id) {
R.id.btn_num0 -> {
addValue("0")
tv_print.setVisibility(inputValue)
tv_preview.setVisibility(inputValue)
}
}
- 이런식으로 버튼이 클릭될때 화면에 해당숫자가 보이도록 코드를 짰다.
- 내일은 실제 계산기능을 구현해보고자 한다.
Outro
- 아직까지 안드로이드 개발에 익숙하지 않다.(사실 얼마 하지않았으니 당연하다만..) 그러다보니 새로운 개념들을 내재화하는데 시간이 걸리고 이걸 내 손가락에 익숙하게 하는데에도 당연히 시간이 걸리지만 뭔가 더 많이 그리고 더 빠르게 이해하고자하는 내 마음속 욕심이 스멀스멀 올라온다. 매일매일 시간이 있을 때 사용할줄 아는것에서 그치지않고 조금씩 깊게 파고들어 내 머리속 Android Tree에 잘 쌓아가는 시간으로 남은 기간도 잘 보내자!
우와 이렇게 스스로 과제를 만들어서 공부를 하는거군요!