반응형

전체 글 104

[kotlin] 뒤로가기 두 번 눌러 종료하는 코드

처음 뒤로가기 시 토스트 띄우고 그 상태에서 다시 누를때 종료 아래 코드 참조 private var backPressTime: Long = 0 override fun onBackPressed() { val tempTime = System.currentTimeMillis() val intervalTime: Long = tempTime - backPressTime if (intervalTime in 0..2000) { moveTaskToBack(true) // 태스크를 백그라운드로 이동 finishAndRemoveTask() // 액티비티 종료 + 태스크 리스트에서 지우기 // 액티비티만 죽이고, 프로세스는 계속 실행하려면 아래 주석처리. //android.os.Process.killProcess(andro..

레고 10274 고스트버스터즈 엑토-1

지난 생일에 받은 고스트버스터즈 엑토-1. 이 제품을 받는데는 우여곡절이 좀 있었다. 레고 공식 홈페이지에서 주문을 했었는데, 발송이 되는데도 시간이 소요되었고, 발송 이후에 택배사에서 처리가 시작되는데도 시간이 며칠이나 소요되었었다. 한참 후 택배가 옥천HUB 까지 도착한 것은 확인이 되었으나, 그 이후의 진행상황이 며칠동안 업데이트가 되지 않았다. 주문한지 열흘쯤 되기까지 여러차례 레고 홈페이지 문의를 남겼고, 처음엔 추석 물량으로 인한 지연이라고 답변 받았으나, 옥천에서 출발했다는 제품이 며칠이 지나도록 전혀 진행상황에 변화가 없어, 결국에는 분실로 처리하였다. 레고 고객센터 전화통화를 하며 다시 재발송 받기로 하고, 그렇게 약 보름 정도가 소요되며 받은 것이 이 제품이다. 재발송 과정에서 시간이 ..

취미/레고 2022.01.04

에어팟 3세대 언박싱

남은 회사 복지포인트로 구매한 에어팟. 에어팟 3세대를 살 것인지, 에어팟 프로를 살 것인지 한참을 고민한 끝에 최근 출시한 에어팟 3세대를 선택하게 되었다. 프로는 출시한지 2년이 넘은데다, 내년엔 새로운 에어팟 프로가 나올거라는 소식이 있기도 했고, 3세대 음질 평가가 대체로 긍정적인 편이어서 결정을 하게 되었다. (사실 프로를 사기에는 복지포인트가 살짝 부족한게 큰 이유이기도 했다.) 쿠팡을 통해 에어팟을 구매하게 되었는데, 이번 구매는 약간의 스토리가 있다.... 처음 받았을 때 너무 깜짝 놀랐다. 박스에 완충제 하나 없이, 에어팟 본품 박스만 저렇게 들어있던 것이었다! 아니, 다른 것도 아니고, 전자제품을, 그것도 애플 제품을! 아무런 보호가 되지 않게 엉망으로 포장해서 보낼 수가 있나. 개봉한..

일상 2021.12.26

wireless debugging on Android 11

안드로이드 앱 개발시 에뮬레이터를 이용하기 보다는 핸드폰을 직접 이용하는 것이 보다 확실한 디버깅에 좋은데, USB 를 직접 연결해서 개발해도 되겠지만, 무선이면 더욱 편리할 것이다. 개발자 옵션 켜기 개발자 옵션은 소프트웨어 정보의 '빌드번호' 메뉴를 여러차례 터치하면 된다. 위와 같이 연결하고 나면 설정 메뉴 최하단에 개발자 옵션 메뉴가 뜨게 된다. Wifi 연결 무선 디버깅을 위해서 개발PC와 핸드폰은 동일 wifi 네트워크에 연결한다. 개발자 옵션 메뉴를 보면 '무선 디버깅' 옵션이 보인다 새롭게 페어링을 하려면 '페어링 코드로 기기 페어링'을 선택한 후 표시되는 ip address와 port를 사용하여 아래 명령 실행. 일반적으로는 192.168... 으로 시작하겠지. % adb pair xx...

GoogleSignInPlugin.java uses or overrides a deprecated API. 오류처리

파이어베이스 연동 테스트를 하던 중 아래와 같은 오류가 발생하였다. Note: /Users/insomnia/.pub-cache/hosted/pub.dartlang.org/google_sign_in-5.2.1/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java uses or overrides a deprecated API. pubspec.yaml 파일에 package 를 이것저것 넣고 있는 와중이었는데, 아마도 어딘가 dependency 가 꼬인게 원인이 아닌가 싶은데, 위와 같은 종류의 오류가 발생할 때는 아래와 같이 초기화를 해 보면 대체로 해결된다. flutter pub cache repair terminal 에서..

Stateful Widget Lifecycle (위젯 생명주기)

안드로이드 코틀린 프로그래밍에서의 Activity Lifecycle 처럼 플러터에서도 위젯의 생명주기가 있다. 플러터에서는 크게 Stateless Widget, Stateful Widget 두 가지가 존재하는데, Stateless 위젯의 경우 한 번 만들어지면 갱신하지 않으므로 따로 생명주기라는게 없다. 따라서 플러터에서 생명주기라 함은 곧 Stateful Widget의 생명주기라고 할 수 있겠다. Stateful widget 은 또 StatefulWidget 클래스와 State 클래스로 구분되어 있는데, 화면 갱신 등의 실제 동작은 State 클래스에서 이루어지므로 Stateful Widget 생명주기는 또한 State 클래스의 생명주기라고 해도 될 것 같다. 1. createState() Statef..

Schubert - Impromptus op.90 no.2 (슈베르트 즉흥곡 2번)

많은 학생들이 콩쿨곡으로 연주하는 슈베르트 즉흥곡 2번이다. 이 정도 곡을 제대로 연주한다면 어디서든 부러운 시선을 받겠지.. 시현이가 방문수업 받으며 연주하는걸 듣고 있으면 부럽다는 생각이 든다. Krystian Zimerman 연주 영상 위 지메르만의 영상은 오래된 영상이라 그런지 소리가 작은데, 볼륨 높이고 들어보면 물 흐르듯 굴러떨어지는 듯한 피아노 선율에 감탄이 절로 나오게 된다. 지메르만의 쇼팽 발라드 1번 연주는 조성진이 그렇게 좋아했다더라.. 김시현의 연주 시현이는 마음에 안들어했지만, 맘에 들때까지 안올리면 영영 못올릴거 같아서 시현이 연주 영상도 유튜브에 올렸다. 유명 연주와 비교하면 너무 차이가 크지만,,, 언젠가는 지메르만에 버금가는 연주를 할 수 있겠지..

취미/피아노 2021.11.30
반응형