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

GDG Songdo/Incheon에서 지난 4월부터 6월까지 2개월간 진행됐던 Compose 스터디에서 발표한 내용을 올려봅니다. 본 내용은 Codelab - Jetpack Compose theming 기반으로 작성되었습니다. Jetpack Compose 테마 설정 학습 내용 Material Design 기본 지침서 및 브랜드에 맞게 맞춤설정하는 방법 Compose에서 Material Design 시스템을 구현하는 방법 앱 전체에서 색상과 서체, 도형을 정의하고 사용하는 방법 구성요소의 스타일을 지정하는 방법 밝은 테마와 어두운 테마를 지원하는 방법 빌드 항목 잠깐! Material과 Material3는 요구되는 파라미터와 타입이 다른 등 일부 호환되지 않습니다. Color Material lightCo..

코틀린 멀티플랫폼을 통해 Android/iOS를 연구/개발하면서 슬슬 iOS Platform API를 통해 Native Feature를 다뤄봐야지라는 생각을 하였습니다. 사실 그전까지 안드로이드/데스크탑 위주의 코틀린 멀티플랫폼만을 만들기도 하였고 Swift는 다루지 못하기에 그동안 제한이 있었습니다. 그러다 지난 4월 Swift 공부를 하면서 간단하게나마 개발을 해보자는 생각을 하였고 무엇을 만들까 고민하다 토치(플래시)앱을 주제로 삼았습니다. 결과물 미리보기 Logic Share 범위 설정 우선 가장 먼저 고민한 부분은 토치 기능 뿐만이 아니라 UI까지 컴포즈 멀티플랫폼으로 구현할지, 아니면 UI를 제외한 토치 기능만 코틀린 멀티플랫폼으로 구현할지 고민하였습니다. UI를 제외한 공통된 로직(토치 기능..

오랜만에 Proto Datastore를 사용하려고 하니 2가지 오류가 발생하였습니다. Plugin 적용하는 부분에서 아래의 오류가 발생하였습니다. Could not get unknown property 'source' for generate-proto-generateDebugProto of type org.gradle.api.internal.file.DefaultSourceDirectorySet. 실수가 있나하여 공식 문서, Codelab을 참고하여 시도하였지만 변화가 없었습니다. 여기저기 찾아보니 스택오버플로우에서 관련 내용을 찾을 수 있었습니다. 해결 방법은 간단합니다. 코드랩에 안내된 0.8.17 버전 대신 0.9.1을 사용하면 됩니다... id("com.google.protobuf") versio..

컴포즈 멀티플랫폼으로 개발하다보면 아래의 컴파일 오류를 만나는 경우가 있습니다. Shortly: The required symbol androidx.compose.runtime/remember|1835138394250687683[0] is missing in the module or module dependencies. This could happen if the required dependency is missing in the project. Or if there is a dependency that has a different version (without the required symbol) in the project than the version (with the required symbol) ..

올해 1월부터 6월동안 개발한 프로젝트가 최종 TOP 100위에 선정되었습니다. 치매 노인을 위한 서비스로, 아쉽게도 TOP 10위에는 들지 못하였지만, 처음 플러터로 개발한 프로젝트이자 현직 구글 멘토님들과의 멘토링을 통해 새로운 경험을 해볼 수 있었던 프로젝트였던 것 같습니다. (영어는 어려워요...) 아래는 소개 영상입니다!
![ERROR: Compose targets '[uikit]' are experimental and may have bugs!](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FqwNaD%2FbtspFmYD04p%2FAAAAAAAAAAAAAAAAAAAAACDL31pjb1CzBDj50tYMdcvrp-m71o4_A7T0jrNtAryx%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DufW%252FY%252BBiuPllbBmV4%252BdW5op6Sys%253D)
Compose Multiplatform을 처음 개발하면 다음과 같은 오류를 만나볼 수 있습니다. ERROR: Compose targets '[uikit]' are experimental and may have bugs! But, if you still want to use them, add to gradle.properties: org.jetbrains.compose.experimental.uikit.enabled=true 말 그대로 uikit을 대상으로 하는 컴포즈는 실험적이기에 많은 버그가 있다는 것을 의미합니다. 하지만 우리는 위험을 무릅쓰고 연구/사용을 할 것이기에 가볍게(?) 무시하고 강행하면 됩니다. 위의 오류에서도 설명은 나와있지만 이를 해결하는 방법은 간단합니다. gradle.propert..

Compose Multiplatform을 통해 Compose iOS를 구현하는 경우 매우 높은 확률로 아래의 컴파일 오류를 만날 것 이다. 물론 아래의 시나리오 외에도 발생할 수 있지만 가장 크게 만날 수 있는 오류이다. Undefined symbols for architecture arm64: "_kfun:com.haeyum.crosscomposemobile#HomeScreen(){}", referenced from: _objc2kotlin_kfun:com.haeyum.crosscomposemobile#HomeScreen(){} in shared(result.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command fa..