1월 24일 금요일 오후 7시, 한빛미디어 유튜브에서 코틀린 멀티플랫폼으로 간단한 채팅 서버/웹/앱/데스크탑 만드는 라이브코딩을 진행합니다!관심있으신 분은 금요일 한빛미디어 채널에서 팡무와 함께 KMP를 즐겨봐요! 유튜브https://www.youtube.com/live/nvNQeYyJKkU 자세한 내용 확인https://www.hanbit.co.kr/event/current/current_event_view.html?hbe_idx=204&page=0
Flutter로 iOS 빌드 중 아래의 오류가 발생하였다.Module 'path_provider_foundation' not found 이에 구글링을 해보니 다음과 같은 글을 확인할 수 있었다.https://stackoverflow.com/a/75476084 Module 'path_provider' not foundI have used several times the Xcode simulator for my flutter app. One time I tried to change the simulator to iPhone 11 Pro (don't know if it did or did not cause the problem) but since then: I ge...stackoverflow.com 위의 ..
Compose Desktop 자체로만 본다면 기능적 한계(제공되지 않는 기능, 제한된 커스텀)이 명확하지만 기존 Swing, AWT를 그대로 사용할 수 있기에, 그리고 이전부터 만들어졌던 Java 라이브러리를 사용할 수 있기에 해당 문제를 해결할 수 있지 않나 싶습니다. 상호운용성 하나만큼은 정말 뛰어나기에 AWT와 Compose를 엮어서 간단하게 자유롭게 커스텀이 가능하다는 점이 정말 좋은 것 같습니다. 그렇지만 이는 AWT 지식이 있어야만 자유로운 데스크탑 개발이 가능하다는 것... 또한 이외의 기능들도 Flutter의 경우 이제는 수많은 라이브러리를 통해 네이티브 개발 없이도 구현 가능한 기능들이 많지만, Kotlin Multiplatform은 출시된지 얼마안됐기에 황무지인데... 과연 개척에 성공..
Compose Multiplatform에서 Resources를 사용할 수 있다는 소식을 듣고 마음속에 품고 살다, 이번주 열리는 상권님의 Native vs Flutter 그리고 KMP 컨퍼런스 발표 자료를 완성하자마자 신나게 달려갔습니다. 기존 프로젝트에서 이미 moko-resources 라이브러리를 사용하고 있었기에 이를 해체하기 위해 moko 관련 변수, 함수 및 dependency 등 모두 해제하고 gradle clean까지 완벽하게 한 상태에서 두근두근하게 실행을 해보았더니 다음과 같은 오류를 만날 수 있었습니다. Execution failed for task ':jsBrowserDevelopmentRun'. > [webpack-cli] Failed to load '/Users/holy-knigh..
지난주 그누보드6가 공개되었고, 엊그제 그누6 최초의 플러그인을 만들어 배포하였습니다. 공식 데모페이지에도 제가 만든 포인트 선물 플러그인이 적용되어 너무 기쁩니다. https://sir.kr/g6_plugin/1 그누보드6 포인트 선물 플러그인 > SIR 그누보드6 플러그인 최초 업로드 해봅니다 헤헤 깃허브에도 올려두었으니 편하신 방법으로 다운받으시면 될 것 같습니다. https://github.com/kisa002/g6_point_gift 추가 필 sir.kr 처음에는 이슈 제보 및 수정하면서 기여하다 문뜩 플러그인 개발도 가능하지 않을까 라는 생각에 함께 만들어봤는데, 정말 간단하게 만들 수 있도록 구성된 것 같았습니다. 중학교 때 처음 XE와 함께 가지고 놀면서 어떻게 만들었을까 신기해했었는데, ..
KUG Seoul 사이트(임시)를 Compose Web으로 만들면서 알게된 문제점들... https://haeyum.dev/kug-seoul 1. 리소스가 로딩되는 과정에서 웹사이트가 멈춘다... 2. 버튼 클릭으로 Alert 발생 시 Ripple 이펙트가 중단된다. 3. 초기 별다른 기능/화면이 없음에도 600MB나 잡아먹는다. 4. Compose Multiplatform에서 대표적으로 사용되는 moko-resources를 사용하여도 초기 폰트 로딩되는 과정에서 ㅁㅁ로 한글이 깨진다... 5. 각 Weight별로 폰트가 불러와지면서 FontWeight이 적용되는게 시각적으로 보인다. (ㅁㅁ였다가 얇은 글씨가 보였다 두꺼워진다!) 6. fontFamilyResource로 폰트를 불러왔더라도, 다시 호출 ..
안드로이드 앱에 없어서는 안 되는 기능인 뒤로가기 버튼을 통한 종료 기능, 일반적으로 구현할 때 크게 3가지로 나눌 수 있습니다.즉시 종료종료 팝업종료 토스트즉시 종료를 시키기도 하지만, 경우에 따라 종료 여부를 팝업으로 띄우거나 토스트/스낵바를 통해 한번 더 눌러 종료한다고 표시하기도 합니다. 이번 글에서는 작년 이 시기 쯤 Rx로 구현한 뒤로가기 기능을 Flow로 구현하기 위해 노력한 기억이 떠올라 시도하였던 경험과 함께 종료기능을 구현하기 위한 아래의 3가지 방법으로 이야기해 보겠습니다.일반적인 방법Rx를 사용한 방법Flow를 사용한 방법즉시 종료우선 뒤로가기 버튼을 눌렀을 때 종료한다면 다음과 같이 구현할 수 있습니다.Android API 33부터 onBackPressed 방식은 Deprecat..
모아키를 사랑하는 저는 아이폰으로 다시 넘어오면서 모아키를 사용하지 못하는 현실에 좌절하였습니다. 사실 안드로이드, 아이폰을 매번 번갈아가면서 사용하고 있어 알고있었기에 마음의 준비를 했음에도 불구하고 점점 그리워지는... 그래서 든 생각. 없으면 직접 만들어보자 라는 생각으로 도전해보고 있는데 받침 조합을 생각하니 복잡하다는 사실을 깨달았습니다. (완성할 수 있을까...?) 저작권이 삼성에 있어 출시는 못하겠지만 자기 만족으로 쓰지 않을까... 잠깐이나마 일부긴 하지만 돌아가는 모아키를 보고 반가웠습니다.
HTML로 Wrapping 된 Compose Web 방식이 아닌 SKIKO 자체로 렌더링을 하는 경우, 한글 출력 시 바로 깨져버립니다. 당연히 폰트와 연관있을 것이라 생각하였지만, 아무리 찾아도 폰트를 불러올 수 있는 방법이 없었습니다. 올해 초 실패한 이후, 이제는 인터넷에 관련 내용이 있겠지 생각했는데 놀랍게도 없었습니다. 우선 Compose Multiplatform에서는 Android의 Jetpack Compose처럼 Font를 받는 것이 아닌 ByteArray를 받습니다. fun Font( identity: String, data: ByteArray, weight: FontWeight = FontWeight.Normal, style: FontStyle = FontStyle.Normal ): Fo..
iOS 17 빌드를 위해 Xcode 15 업데이트 이후 iOS 빌드 시 오류가 발생하였습니다. Could not build the precompiled application for the device. Error (Xcode): DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead| 해당 오류는 Xcode 15 RC 버전부터 발생한 오류로 보이며, 간단하게 POD을 1.13.0 이상으로 업데이트하면 된다는 내용을 발견하였고, 현재 POD 버전은 1.12.1이었기에 1.13.0 이상으로 업데이트하면 해결될 것이라 생각하였습니다. https://github.com/CocoaPods/CocoaPods..