Today I Learn

- 해당 문서와 번역본을 참고했습니다.https://kotlinlang.org/docs/composing-suspending-functions.html#sequential-by-default Composing suspending functions | Kotlin kotlinlang.orghttps://seyoungcho2.github.io/CoroutinesKoreanTranslation/undefined-1.html 일시중단 함수 구성하기 · GitBook이 섹션은 일시 중단 함수를 구성하기 위한 다양한 접근 방식을 다룬다. 일종의 원격 서비스 호출이나 계산 같은 두 유용한 일시 중단 함수들이 서로 다른 위치에 정의되어 있다고 가정해보자.seyoungcho2.github.io- 간혹, 서비스를 구성하면..
memoText.text = Html.fromHtml(timeBlock.description?.replace("\n", ""))- 위와 같은 코드가 존재한다. Html.fromHtml()을 사용하여 HTML 태그를 포함한 문자열을 Spanned 형태로 변환하여 TextView에서 HTML 렌더링을 할 수 있게 하는 코드이다. - replace("\n", "")를 통해 개행(\n)을 태그로 변환하여 HTML에서 줄 바꿈을 유지하도록 한다. - 그런데, 사용자가 만일 EditText에 이런식으로 입력해 버리면 통째로 사라져 버린다. 그래서 입력된 문자를 HTML 엔티티로 변환하는 과정이 필요하다. fun fromHtmlSafe(source: String?): Spanned { val safeTex..
YIQ란?YIQ는 NTSC TV 신호에서 사용된 색 공간(Color Space)아날로그 TV 방송에서 흑백 TV와 컬러 TV를 동시에 지원하기 위해 설계됨RGB보다 밝기와 색상 정보가 분리되어 있음 → 밝기 기반 이미지 처리에 유용Y(Luminance, 밝기), I(In-phase, 색상 성분), Q(Quadrature, 색상 성분)로 구성됨YIQ의 구성 요소- Y (Luminance, 밝기) : 이미지의 밝기(명도) 정보 (흑백 TV에서도 사용 가능)- I (In-phase, 색상 차 성분 1) : 주황색(Orange) ↔ 청록색(Cyan) 색상 정보- Q (Quadrature, 색상 차 성분 2) : 자홍색(Magenta) ↔ 녹색(Green) 색상 정보YIQ와 RGB 변환 공식- RGB → YIQ ..
- getIdentifier()는 이름(String)으로 앱의 리소스 ID를 가져오는 함수입니다.resources.getIdentifier(name: String, defType: String, defPackage: String) name: 찾고 싶은 리소스의 이름 (문자열)defType: 리소스의 종류 (drawable, string, layout, id, color 등)defPackage: 패키지 이름 (context.packageName을 사용하면 현재 앱의 패키지)- Drawable 리소스 반환하기context.resources.getIdentifier("ic_weather_sunny_day", "drawable", context.packageName) 만일 조건에 해당하는 리소스가 존재하지 않으..
위와 같이 상단 Bar 하단에 WebView 영역이 있는 인앱 웹뷰가 구성되어 있습니다.이럴 경우 외부 브라우저를 통해 웹뷰 접속이 아니라 인앱에서 웹뷰를 열어 현재의 앱 Context를 유지하는 것이 목적이 됩니다.활용하는 Activity 코드에서 WebViewClient 설정을 추가해 주도록 합니다.@SuppressLint("SetJavaScriptEnabled")private fun initWebView(url: String) = with(binding) { val set = webView.settings set.javaScriptEnabled = true set.builtInZoomControls = false webView.settings.javaScriptCanOpenWi..
프로젝트 진행 중에 전체 리스트에서 랜덤으로 값을 가져와야 하는 일이 생겨서 코틀린에서 방법을 찾아보다 shuffled라는 메서드를 제공하는 것을 알았습니다.. wowfun getRandomItems(list: List, count: Int): List { return if (list.size 위 함수를 구현하여 랜덤 값 count 개수만큼 추출할 수 있습니다.
프래그먼트를 포커싱 하면 구성한 로직에 따라 비동기적으로 데이터를 호출하고 결과가 오면 해당 프래그먼트의 View를 업데이트하는 로직이 있는데, API 호출하여 데이터 수신된 이후에 해당 View가 더 이상 유효하지 않아서 발생하는 문제로 보입니다.따라서 아래와 같이 코드를 처리했습니다.GetInfoApiTask().executeAsync({ result -> val isValidViewStatus = isAdded && !isDetached && context != null if (!isValidViewStatus) return@executeAsync세 가지 조건을 체크해줬습니다./** * Return true if the fragment is currently added to its act..
https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr [문제]전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, ..
2차원 배열을 1차원으로 정리하는 방법들을 정리해 봤습니다.코테에서도 많이 활용되는 부분입니다. - 중첩된 for 루프를 사용하여 변환하기fun flattenArray(twoDArray: Array): IntArray { val rows = twoDArray.size val cols = twoDArray[0].size val oneDArray = IntArray(rows * cols) var index = 0 for (i in 0 until rows) { for (j in 0 until cols) { oneDArray[index++] = twoDArray[i][j] } } return oneDArray}fun main() ..
이미지 로딩 라이브러리 중 하나인 Colil을 Compose UI에서 로딩 시, 실패했을 경우의 Error를 확인하기 위한 방법입니다. val painter = rememberAsyncImagePainter( model = ImageRequest.Builder(context).data(item.imageUrl) .placeholder(R.drawable.blank_ad).build())인자로 받은 item의 imageUrl을 통해 이미지를 로딩합니다. 물론 manifest에 인터넷 사용 권한이 허가되어 있는지 또한 반드시 체크해 주세요.로딩했는데, placeholder의 Drawable로 표시되면 뭔가 문제가 있는 것이겠지요? val state = painter.statepainter의..
SeungYong.Lee
'Today I Learn' 카테고리의 글 목록