Kotlin Multiplatform의 특징Kotlin을 공통 언어로 사용android / iOS에서 KMP를 통해 작성한 부분은 framework 형태로 동작함비즈니스 로직부터 UI까지 공통 개발 가능현재 iOS 및 UI 공통 개발 기능은 Beta Kotlin 컴파일러의 경우, 소스 코드를 입력으로 가져오고 플랫폼별 바이너리 세트를 생성함. 동일한 코드에서 여러 바이너리를 실행하게 됨.ex) 동일한 코틀린 파일에서 JVM 파일과 기본 실행 파일 생성 java 코드가 어떻게 Native 코드로 동작할 수 있지? 하고 내부 구조를 찾아봤는데 Kotlin -> ObjC로 변환되는 구조인가봄 Swift로도 변환은 가능하지만 ObjC보다 제한적으로 가능함자세한 건 이쪽 참고https://kotlinlang..
이번 주 근황QA 준비를 하면서… … 이제는? 테스트 자동화를 프로젝트에 도입하고 있어요! 이전에 새싹에서 테스트 방법을 배우기는 했지만 이렇게?!?!?! 코드로 … 본격적으로? 하는 건 처음이라서 공부도 오래 하고 삽질도 많이 한 것 같아요 ^__^ … 그치만 잘 돌아가는 테스트 코드를 보면 절로 뿌듯해진답니다 Xcode 오류나서 아이폰 디바이스에 하얀 화면 뜨고 Xcode 강제 종료되면 절로 폭력성이 올라오지만요…. 😓😓다들 WWDC는 보셨나요?! 이번에 많은 것이 변한 것 같다가도 또? 작년처럼 많은 건 안 변한 것 같기도 하고…. 아리송한 기분이 드네요. 제가 생각했던 많이 바뀐 부분은 아래와 같았어요.자리를 많이 차지할 것 같아 접어놓자면….AI의 도입!Xcode에도 코파일럿처럼 자동으로 코..
이번 주 근황요즘 회사에서는 QA 준비를 하고 있어요! 저번 주까지는 QA 리스트를 만들고 설정을 상세히 정리했는데, 이번 주는 해당 정리한 것을 바탕으로 테스트 앱을 만들었습니다. ㅎㅎ해당 앱을 만들면서, 테스트 앱이지만 사용성과 개발의 편의성 중 뭘 우선으로 여겨야 할까 대해서 고민하게 되더라구요. 무조건 키보드가 올라올 때 TextField를 올려주는 게 아니라 TextField가 키보드에 가려지는 위치라면 올려줘야 한다든가. tableView에서 키보드를 자동으로 내려주려고 onDrag를 설정하려고? 했다가도 … … 그렇게 되면 처음 작성했던 textField와 키보드 관련 코드와 tableView의 코드가 얽혀 버려서 곤란했어요. 너무 깊게 고민하기 싫어서 그냥 tableView의 onDrag를..
테스트를 하다 보면 꽤 자주 뜨는 오류이당. 더는 까먹지 않기 위해 정리하고자 한다. Simulator의 캐시 때문에 해당 오류가 뜨는 것 같다. 해결하기 위해서 stackoverflow의 도움을 받았는데, 해당 방법은 다음과 같다.Xcode를 닫고 terminal에 sudo chmod 1777 /tmp~/Library/Developer/CoreSimulator/Caches/dyld 폴더에 남아 있는 캐시를 삭제해 준다.Xcode 재실행! 방법이 상당히 간단한데, chmod 1777은 왜 하는거지? 싶어서 조금 찾아보았다. chmod 는 흔히 알고 있듯이 파일이나 디렉토리의 권한을 변경할 수 있는 명령어이다. 해당 명령어는 각 bit 자리수를 계산하여 설정할 수 있는데,read(r): 4write(r):..
Swift와 Objective-C에서 Swizzling과 Hooking은 비슷한 기술이지만, 다른 목적과 구현 방식을 가지고 있다. Swizzling런타임에서 method 구현을 변경하는 것을 의미하며, 일반적으로 클래스의 method를 다른 method로 교체하는 것을 의미한다. 이를 통해 기존의 method 동작을 수정하거나 확장할 수 있다.Swift와 Objective-C가 동적으로 동작하기 때문에, Swizzling이 가능하다. (정적으로 동작하는 C / C++과 같은 경우에는 method Swizzling이 불가능)Swizzling은 주로 디버깅이나 런타임에서의 동작 변경에 사용된다.+ (void)swizzleMethod { Class class = [self class]; ..
Privacy Manifest 때는 바야흐로 24년 2월 29일. Apple Development News가 올라왔다. 바로 Privacy Manifest에 관한 것이었는데, 처음 봤을 때는 이… … 이게 뭐지? 싶었다. 그랬다. 내가 보지 않은 2023 WWDC 영상 중 하나가 Privacy Manifest 관련이었던 것이다…. Get started with privacy manifests - WWDC23 - Videos - Apple Developer Get started with privacy manifests - WWDC23 - Videos - Apple Developer Meet privacy manifests: a new tool that helps you accurately identify ..
문제 상황 .app has comflicting provisioning settings. Invalid Provisioning Profile Signature. The provisioning profile included in the bundle com.blablabla.BlaBla [com.blablaba.BlaBla.pkg/Payload/BlaBla.app] cannot be used to submit apps to the Mac App Store until it has a valid signature from Apple. For more information, visit the macOS Developer Portal. 회사 프로젝트를 빌드하다 보면 간혹 이런 인증서 오류가 뜨면서 빌드가 안 될 때..