본문 바로가기

Programming/Kotlin

(9)
사용가능한 앱이 여러개인 경우 Intent Chooser 위 이미지처럼 특정 기능을 사용하는 앱을 실행할때 원하는 앱을 선택해본 경험이 있을겁니다. 지도, 메일보내기, 웹브라우저 실행등 예시들이 더 있겠네요. 구현방법은 간단합니다. protected fun moveToStore() { // Google Play Store로 이동하는 Intent 생성 val playStoreIntent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("http://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}") } // One Store로 이동하는 Intent 생성 val oneStoreIntent = Intent(Intent.ACTION_VIEW).ap..
[Kotlin] NestedScrollView 안에 여백 생길경우 android:fillViewport="true" ScrollView에 해당속성을 추가하면 안에 여백이 사라진다
[kotlin] view pager 2 높이 조정(wrap_content) viewpager2 에 포함된 fragment 들끼리 높이가 서로 다를때 fragment가 잘려보이는 경우가 있었는데 꽤 오래동안 고통받았습니다. 해결방법을 찾아봐도 viewpager2 가아니라 viewpager일때 해결책들이였거나 동적으로 fragment 의 높이값이 변하면 적용안되는 경우였습니다. class MyFragment():Fragment(){ override fun onResume() { super.onResume() binding.root.requestLayout() } } requestLayout는 뷰의 크기에 맞춰서 다시 조정해주기 때문에 동적으로 크기가 변경되어도 알맞게 view의 크기를 맞춰준다.
코틀린 Retrofit2 Response 반환값 null 인경우 Retrofit으로 API 호출시 실패한경우의 Response 를 받아서 분기처리를 해야하는 경우가 있을겁니다. 근데 프론트에서는 에러메세지를 잘 받는데 앱에서면 받지못하는 이슈가 있었고 꽤나오랫동안 해결하지 못하고 있었는데 의외로 단순한 방법으로 해결이 되서 공유합니다. Log.d("ERROR RESPONSE",response.errorBody()?.string().toString()) body가 아니라 errorBody로 호출하면 null이 아닌 에러 메시지가 정상적으로 받아와진다!
CollapsingToolbarLayout 와 Viewpager2 호환문제 다음과같이 CollapsingToolbarLayout 와 NestedScrollView 로 스크롤되는 View를 만들던중 Viewpager 영역에 손을대고 스크롤을 하면 툴바가 사라지지 않는 오류가 있었다. 아무리 찾아봐도 관련글도없고 Viewpager를 쓰지말아야하나 고민하던 찰나에 다행히 글하나를 발견 https://stackoverflow.com/questions/71502803/how-to-use-viewpager2-with-collapsibletoolbar-layout How to use ViewPager2 with CollapsibleToolbar layout I am trying to achieve something with collapsible toolbar layout and I have..
[코틀린] constraint 속성 동적으로 추가 constraint layout을 사용할 떄 뷰들에 다음과같은 속성값을 추가해주어야한다. 해당 속성값들을 동적으로 추가해주려면 다음과같이 하면 된다. val layoutParms = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT) layoutParms.startToStart = ConstraintLayout.LayoutParams.PARENT_ID layoutParms.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID layoutParms.topToBottom = binding.campaignBtn.id..
코틀린(Kotlin)의 조건문(if) 활용법 사실 If를 누가모르냐 라고 생각할 수 있겠지만 자바를 주로사용하다가 코틀린을 사용하는 사람들은 코틀린을 제대로 활용하지 못하는 경우가 많습니다.(제 얘기 입니다) 아직까지도 자바스럽게 코틀린을 사용하는 자틀린 개발자이지만 천천히 익숙해져 봅시다. 다음코드는 실제로 프로젝트를 할때 구현했던 코드입니다. model.nickname.observe(this, Observer { if(it.isEmpty() || model.checkNickName()) binding.checkNickNameText.visibility = View.INVISIBLE else binding.checkNickNameText.visibility = View.VISIBLE }) editText에 닉네임을 입력받아 형식에 맞지않다면 경고..
[Kotlin] Android Compose 튜토리얼_1 https://developer.android.com/jetpack/compose/tutorial?hl=ko Android Compose 튜토리얼 | Android 개발자 | Android Developers Jetpack Compose는 네이티브 Android UI를 빌드하기 위한 최신 도구 키트입니다. Jetpack Compose는 더 적은 수의 코드, 강력한 도구, 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화합니다. 이 developer.android.com 앱개발자로 스타트업에 취업하게 되었는데 내부 사정으로 당장 받을 일이 없는 상황... 긍정적으로 생각해서 평소에 관심있던 Jetpack Compose를 공부 해보자는 계획을 했습니다. 간단하게 둘러본적은 있지..