EveDrop 개발기1
개발/개발 일기2024. 4. 15. 06:36EveDrop 개발기1

Compose Desktop 자체로만 본다면 기능적 한계(제공되지 않는 기능, 제한된 커스텀)이 명확하지만 기존 Swing, AWT를 그대로 사용할 수 있기에, 그리고 이전부터 만들어졌던 Java 라이브러리를 사용할 수 있기에 해당 문제를 해결할 수 있지 않나 싶습니다. 상호운용성 하나만큼은 정말 뛰어나기에 AWT와 Compose를 엮어서 간단하게 자유롭게 커스텀이 가능하다는 점이 정말 좋은 것 같습니다. 그렇지만 이는 AWT 지식이 있어야만 자유로운 데스크탑 개발이 가능하다는 것... 또한 이외의 기능들도 Flutter의 경우 이제는 수많은 라이브러리를 통해 네이티브 개발 없이도 구현 가능한 기능들이 많지만, Kotlin Multiplatform은 출시된지 얼마안됐기에 황무지인데... 과연 개척에 성공..

[Compose Web] moko 라이브러리 삭제 시, Error: Cannot find module 'mini-css-extract-plugin'
개발/Compose2024. 4. 5. 02:14[Compose Web] moko 라이브러리 삭제 시, Error: Cannot find module 'mini-css-extract-plugin'

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 최초 플러그인 개발 및 배포!
개발/Web2024. 1. 25. 14:05그누보드6 최초 플러그인 개발 및 배포!

지난주 그누보드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으로 만들면서 알게된 문제점들
개발/Compose2024. 1. 20. 06:44KUG Seoul 사이트를 Compose Web으로 만들면서 알게된 문제점들

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로 폰트를 불러왔더라도, 다시 호출 ..

안드로이드 뒤로가기 두번 눌러 종료 기능 Flow로 구현하기
개발/Android2023. 11. 28. 16:03안드로이드 뒤로가기 두번 눌러 종료 기능 Flow로 구현하기

안드로이드 앱에 없어서는 안 되는 기능인 뒤로가기 버튼을 통한 종료 기능, 일반적으로 구현할 때 크게 3가지로 나눌 수 있습니다. 즉시 종료 종료 팝업 종료 토스트 즉시 종료를 시키기도 하지만, 경우에 따라 종료 여부를 팝업으로 띄우거나 토스트/스낵바를 통해 한번 더 눌러 종료한다고 표시하기도 합니다. 이번 글에서는 작년 이 시기 쯤 Rx로 구현한 뒤로가기 기능을 Flow로 구현하기 위해 노력한 기억이 떠올라 시도하였던 경험과 함께 종료기능을 구현하기 위한 아래의 3가지 방법으로 이야기해 보겠습니다. 일반적인 방법 Rx를 사용한 방법 Flow를 사용한 방법 즉시 종료 우선 뒤로가기 버튼을 눌렀을 때 종료한다면 다음과 같이 구현할 수 있습니다. Android API 33부터 onBackPressed 방식..

아이폰에서 모아키 쓰고 싶다 = 직접 만들자
개발/개발 일기2023. 11. 16. 18:04아이폰에서 모아키 쓰고 싶다 = 직접 만들자

모아키를 사랑하는 저는 아이폰으로 다시 넘어오면서 모아키를 사용하지 못하는 현실에 좌절하였습니다. 사실 안드로이드, 아이폰을 매번 번갈아가면서 사용하고 있어 알고있었기에 마음의 준비를 했음에도 불구하고 점점 그리워지는... 그래서 든 생각. 없으면 직접 만들어보자 라는 생각으로 도전해보고 있는데 받침 조합을 생각하니 복잡하다는 사실을 깨달았습니다. (완성할 수 있을까...?) 저작권이 삼성에 있어 출시는 못하겠지만 자기 만족으로 쓰지 않을까... 잠깐이나마 일부긴 하지만 돌아가는 모아키를 보고 반가웠습니다.

Compose Web 한글 깨짐 해결 feat. 폰트 불러오기
개발/Compose2023. 11. 16. 01:46Compose Web 한글 깨짐 해결 feat. 폰트 불러오기

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..

Xcode 15 Flutter - iOS 빌드 오류 해결
개발/Flutter2023. 10. 29. 12:52Xcode 15 Flutter - iOS 빌드 오류 해결

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..

코틀린 멀티플랫폼: iOS 빌드 시 CTFont* 오류 해결
개발/Kotlin2023. 10. 3. 13:35코틀린 멀티플랫폼: iOS 빌드 시 CTFont* 오류 해결

코틀린 멀티플랫폼으로 처음 iOS를 만나 빌드하는 경우 아래와 같은 오류를 만날 수 있습니다. Undefined symbols for architecture arm64: "_CTFontCollectionCreateFromAvailableFonts", referenced from: SkFontMgr_Mac::SkFontMgr_Mac(__CTFontCollection const*) in libskia.a(fontmgr_mac_ct.SkFontMgr_mac_ct.o) "_CTFontCollectionCreateMatchingFontDescriptors", referenced from: (anonymous namespace)::SkCopyAvailableFontFamilyNames(__CTFontCollecti..

개발/Flutter2023. 9. 27. 22:42Flutter에 Unity를 더하다? with AR Foundation

지난 9월 13일-15일 경기 메타버스 해커톤 예선에 참여하였고 통과하여 다음달인 10월 18일-20일 결선을 진행합니다. 4가지 트랙 중 롯데백화점 트랙을 선택하여 XR 주제로 만들기에 저에게는 메타버스 해커톤 보다는 AR 해커톤에 가까운...? 당시 오랜만에 유니티를 꺼내서 AR을 만들었는데, 일반적으로 AR 기능만 보여주기보다 정말 애플리케이션 같은 인터렉션을 직접 구현하여 작업하려 하였으나 혼자 프로그래밍을 해야하기에 시간상 쬐끔 넣다 말아버린... 예선은 통과했지만 직접 모든 인터렉션을 하나하나 만들어 네이티브앱 느낌을 주기에는 한계가 있다고 판단하여 이전 플러터에 유니티를 빌트인 하는 글을 본적이 있어 시도해보았는데 많은 시련이 있었지만 해결하니 돌아가기는 하네요 (신기방기) 결선 때 제페토처..

image