본문 바로가기

전체 글

(174)
[Google play] Android, Cross app scripting 으로 인해 Reject 된 경우 한줄요약: 웹뷰에 UrlQuerySanitizer.getUrlAndSpaceLegal().sanitize(url) 를 쓰세요 fun WebView.loadFinalUrl(url: String) { val finalUrl: String = UrlQuerySanitizer.getUrlAndSpaceLegal().sanitize(url) loadUrl(finalUrl) } 구글덕분에 Android 로 밥먹고 살고 있지만, 구글플레이의 모호한 정책은 가끔 참 싫어집니다. 명확하게 원인을 알려주지 않고, 거대한 문서링크만 하나 던져주면서 정책위반을 했으니 수정하라는 식으로 Reject 되는 경우가 있기 때문입니다. 요즘은 그래도 코드 상에서 어떤 라인이 정책을 위반했는지 알려주는 경우가 있기 때문에 전보다는 좀 ..
삼성동 노티드 도넛 아침 산책을 하던 중 우연히, 사람들이 줄 서 있는 광경을 목격했습니다. 아, 요샌 사람들이 모두 마스크를 끼고 있으니, 사진찍을 때 혹시나 초상권을 침해할까 하는 걱정이 좀 덜합니다. 아무튼. 사람들이 줄 선 곳에는 줄서도 손해가 아니라는 원칙(?)에 따라 일단 줄을 서 봅니다. 일단 줄 선 다음 검색을 해 보니, 여기가 요새 핫한 노티드 도넛 Knotted Donut 이라고 합니다. 도넛이라고는 던킨, 크리스피 밖에 없는 줄 알았는데 생소한 것이 새로 생겼나봅니다. 오 10시부터 오후 1시까지 얼리버드 행사를 합니다. 얼리버드 치고 너무 늦게까지 하는게 아닌가 싶지만, 뭐 주말 오후 1시에 일어난 새면 일찍 일어난 새로 쳐줘도 된다고 봅니다. 원래 매장 안 사진을 찍으려고 했는데, 줄 선 사람들이 굉..
Structured vs Unstructured coroutine stackoverflow.com/questions/59368838/difference-between-coroutinescope-and-coroutinescope-in-kotlin Difference between CoroutineScope and coroutineScope in Kotlin Can anyone give clarity between functions CoroutineScope() and coroutineScope()? When I tried to check in source, I found that both of them are functions of CoroutineScope.kt. Additionally, stackoverflow.com Difference between Coroutin..
자바 인터페이스 이름관련: I로 시작하는 interface? impl로 끝나는 클래스? stackoverflow.com/questions/2814805/java-interfaces-implementation-naming-convention Java Interfaces/Implementation naming convention How do you name different classes / interfaces you create? Sometimes I don't have implementation information to add to the implementation name - like interface FileHandler and class SqlFileHandler.... stackoverflow.com Upvote: 363 Q: Java interfaces / Implementati..
온라인으로 한글 HWP 뷰어 + 편집하기 - 폴라리스 오피스 국산 오피스 프로그램이 있는 건 자랑스러운 일이지만, 현업에서 일하다보면 한글 프로그램은 좀 짜증납니다. 집에 한글을 설치해 놓고 쓰는 사람은 아마 드물 것이고, 워드에서 한글파일을 열면? 당연히 안됩니다. 한글뷰어? 물론 한컴에서 제공합니다. 근데 설치도 해야하고, 뭔가 잘 안될때도 있고... 솔직히 한컴에서 이걸 별로 신경쓰지 않는 것 같습니다. 버린 자식 아닐까 싶네요. 개인적으로는 네이버 오피스를 쓰긴 하는데, 이건 HWP로 저장이 안되는 것 같습니다. 네이버 안쓴지 오래되었는데 웹툰과 HWP 뷰어만 씁니다. 이제 21세기가 된지도 한참 되었는데, 우리도 글로벌 표준으로 갈수는 없는걸까요? 한컴에서 더 뛰어난 DOC뷰어를 만들거나, 또다른 누군가가 그런거 만들어 주면 안되나요? 안타깝지만, 그런거..
Jetpack Compose Beta: 2월 24일 부터! developer.android.com/jetpack/androidx/versions 안드로이드 Jetpack compose 가 2021년 2월 24일부터 베타버전으로 올라갔습니다. www.youtube.com/watch?v=Ef1xKWjA9E8
[Kotlin - Coroutine] Coroutine Context 와 Scope 이 글은 아래 글을 번역한 것입니다. 예제 실행이 곧바로 되지 않는 관계로 일부 예제는 변형되었으나 내용은 동일합니다. elizarov.medium.com/coroutine-context-and-scope-c8b255d59055 실제로 거의 동일한 사물을 두고서도, 그 사용목적이 다를 때는 원래와는 다른 이름을 붙이는 경우가 많습니다. 사용목적에 따라, 뱃사람들은 밧줄 하나를 부를 때도 목적에 따라 십여개의 다른 이름을 쓰는데 실질적으로는 같은 밧줄인 경우가 많습니다. (Wikipedia on Hindley-Milner type system) Coroutine Context and Scope Kotlin Coroutines have a context. There is a also a concept of ..
텍스트 오른쪽에 붙어다니는 이미지가 있을 때, 텍스트가 길어진다면 안드로이드 레이아웃 중에는 되게 쉬워보이는데 하다보면 이상하게 잘 안되는 것들이 있습니다. 그 중 대표적인 것이 텍스트 줄바꿈과 관련있는 레이아웃입니다. 아래와 같은 레이아웃이 있다고 가정합시다. 텍스트뷰가 하나 있고, 그 오른쪽에는 A라는 뷰가 텍스트 오른쪽에 붙어 있어서 텍스트 길이가 변경됨에 따라 위치가 이동됩니다. 단, A의 위치는 절대 B를 넘어서지 않습니다. 즉, 텍스트의 길이가 계속 길어져서 A가 오른쪽으로 계속 이동하다가, B를 만나면 거기서 멈춥니다. 텍스트는 2줄이 되거나, "..." 말줄임표로 처리되어야 합니다. 이렇게요. 되게 쉬울 것 같습니다. 간단하잖아요? 텍스트를 쭉 늘리기만 하면 되니까요. 한 번 해봅시다. (Constraint layout 으로 구현합니다. androidx...