일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 명언모음
- Coroutine
- 벤자민플랭클린
- 이모지
- Firebase
- 장자명언
- bash
- 코틀린
- Freesound
- Linux
- ASMR
- Streaming
- androidx
- recyclerview
- 넷플릭스
- jetpack compose
- 이모지메모
- kotlin
- 오픈소스
- DART
- 소울칼리버6
- Android
- 명심보감
- Flutter
- 좋은글필사하기
- 공부집중
- 1인개발자
- FSM
- 파이썬
- 공자명언
- Today
- Total
목록Source code or Tip/Android(Java, Kotlin) (63)
Vintage appMaker의 Tech Blog
kotlin에서 확장함수는 많이 사용된다. 특히 귀찮을 정도의 반복적인 코드들을 확장함수로 정해놓으면 간편하게 사용할 수 있다. 다음은 View의 확장함수로 AlphaAnimation을 구현한 함수이다. fun View.showAndHide(time : Long = 1500){ visibility = View.VISIBLE startAnimation( AlphaAnimation(1.0f, 0.0f).apply { duration = time fillAfter = true } ) } 이렇게 정의를 해놓으면 AlphaAnimation을 아래와 같이 어디에서나 간편하게 사용할 수 있다. private fun testAlphaAnimation() { val btnAlphaAni = findViewById(R.i..
몇년전 문제없이 돌아가던 프로젝트 소스가 최신 Android Studio에서 에러가 발생했다. e: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 자바버전 에러이다. 자바의 버전이 업그레이드 되면서 이전의 종속성 몇 개가 삭제되었는데, gradle에서 수동으로 추가해주어야 한다. 문제는 어떤 개발환경에서는 java 1.8 환경으로 되어 있기에 java 1.8이상을 사용하는 PC 처럼 종속성을 지정하기에 껄끄러운 경우가 발생한다는 것이다. 그럴경우, java version을 참고하여 선택적 implementation할 수 있다. Gralde은 Groovy 문법을 사용하기에 다음과 같은 코드로 선택적 종속성 처리가 가능하다. // jdk 1.8이..
Android에서 코틀린으로 개발하다보면 closure와 람다는 자신의 의지와 관계없이 많이 사용하게 된다. 그러다보니 어느 순간부터 람다식과 closure를 활용한 코딩스타일에 익숙하게 되는데, 그 때 많이 실수하는 것이 람다식의 scope이다. (1) { 람다를받는함수( {람다식} ) } (2) 람다를받는함수(){ {람다식} } 일반적으로 람다식의 범위는 (1)의 영역인 [람다를받는함수]를 호출하는 영역이다. 그러나 람다를받는함수가 클래스내의 함수(메소드)이고 그 객체를 생성하고 apply를 사용하게 된다면 복잡한 상황이 발생한다. inerCls와 outerCls의 리소스를 동시에 사용할 수 있다. 2.번의 경우, 호출부(innerCls)와 실행부(outerCls) 범위의 리소스를 모두 액세스 가능하..
Android에서 어떤 위젯 근처의 특정 크기와 위치로 새로운 위젯을 보여주고 싶다면 PopupWindow를 생성하고 showAsDropDown()으로 특정 위젯기준으로 위치와 크기를 지정하여 화면에 보여줄 수 있다. PopupWindow | Android 개발자 | Android Developers developer.android.com 그러나 화면에 PopupWindow를 자주 사용해야 할 경우, PopupWindow 객체를 보관 후, dismiss()를 호출하는 것이 귀찮을 때다 많다. 그럴 경우, kotlin에서는 확장함수와 closure를 이용해 범용적으로 편하게(???) 사용할 수 있다. 📢 [PopupWindow 관리용 확장함수] fun View.dpToPx(dp: Float): Int = ..