본문 바로가기

전체 글

(36)
WWDC2023) Unity + SwiftUI Integration (Apple Vision Pro 준비) WWDC23 에서 애플은 웨어러블 AR기기인 Vision Pro를 발표했습니다. 그리고 기기와 함께 사용될 프레임워크들에 대해서도 발표가 이루어졌는데요. 그 중에 RealityKit과 ARKit을 제외하고 UI 프레임워크로는 SwiftUI만 있는 것을 보면, SwiftUI 전용 하드웨어라는 생각도 들게 했습니다. 그리고 소프트웨어 구축을 위해 애플의 VR/AR 프레임워크인 RealityKit과 ARKit에 별도로, Unity와 협력을 한다고 발표를 했습니다. 사실 Unity는 ARFoundation이라는 iOS와 안드로이드에 호환이 되는 AR 앱을 구축할 수 있는 패키지를 제공중이었는데요. 오늘은 Unity에서 SwiftUI 앱으로 Integration 하는 방법을 알아보겠습니다. 1. 설치 Unity ..
WWDC 2023) SwiftData (vs. CoreData) SwiftData는 기존의 Core Data와 공존할 수 있는 Swift-native 지속성 프레임워크(Persistance framework) 이며, iOS17+ 에서 지원된다. 따라서, 기존의 오프라인에서 사용될 데이터들을 저장하고 관리하고, 일시적인 데이터를 캐시하는 기능을 그대로 가져간다. 기존 Core Data가 xcdatamodeld라는 파일을 만들어서 Entity와 Relationship을 추가했던 것에 비해, SwiftData는 외부 파일이 전혀 필요없고 스위프트의 새로운 매크로 시스템과 함께 100% 코드 베이스로 이루어진다. 스위프트 네이티브인 점과 새로운 '매크로' 시스템을 지원하는 부분이 SwiftUI와 함께 했을 때 빛을 발한다. 그 이유는 다음의 과정을 함께 보며 느껴보도록 하자..
Firebase FireStore Error(message: "Missing or insufficient permissions.") 해결법 Firebase 보안규칙 업데이트를 안한 오류 입니다. Cloud Firestore의 규칙으로 가서 코드를 보면, 다음과 같이 나올 것입니다. 금일 날짜가 6월 10일인데 5월 21일 이전 요청만 허용되고 있네요. (근데 그 뒤에도 잘 되던거 보면 살짝 sync가 느린가봅니다) 그리고 알람창에 가면 이러한 경고도 떴을 겁니다. 위의 코드를 다음과 같이 수정해줍시다. rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } **이것은 개발과 테스트용 규칙이므로 출시 이후엔 적절한 규칙을 설정해주세요**
StoreKit 2) 앱스토어 리뷰 가이드라인을 충족하는 In-App Purchase 구현 StoreKit를 이용한 리뷰 요청 글은 여기입니다. *****제가 이 글을 쓴 이후로 버그가 발견되었습니다, 버그를 수정한 코드로 블로그 글도 수정했습니다만, 이 링크를 참고하는 것이 더 좋을 것 같습니다.***** 이번엔 WWDC2021에서 발표된 StoreKit 2와 WWDC2022 내용을 참고하여 인 앱 펄체이스를 구현해보도록 할 것이다. 본론으로 들어가기 전에, IAP(In-App-Purchase) 기능에는 하나의 논란이 있었는데, 개발자에게 팁을 주는 기능이 불가능한가? 이다. 사실 이전까지의 자료들을 찾아보면 나오는 결과는 '결제를 요구하는 상품이 실제로 이용자에게 실익을 주어야한다'는 내용이었다. 혹시 기부를 받거나 하게 된다면 애플에서는 실제 기부를 담당하는 기관과 연결되어 있도록 요구하..
오류해결 공유) The address you submitted couldn't be verified. Review the address, edit if needed, and click Add. AppstoreConnects의 Agreements, Tax, Banking에서 Agreements Add가 안될 때 해결방법 다음과 같은 화면에서 빨간색으로 The address you submitted couldn't be verified. Review the address, edit if needed, and click Add 라는 경고가 뜰텐데, 이때 저 Add가 로딩중일 때 '빠르게', '여러번' 클릭해야 한다. (이 캡쳐도 찍기 어려워서 동영상으로 찍은다음에 캡쳐 다시했습니다ㅎㅎ) 그러면 다음과 같은 화면으로 넘어가게 된다. 꽤나 원식적인 해결법입니다만, appstore connects는 업데이트를 자주 안 해주는 관계로 이게 제일 빠를 겁니다...ㅎ
StoreKit1) SwiftUI 앱에서 HIG를 만족하는 리뷰 요청기능 만들기 앱 내에서 리뷰 요청을 어떻게 하는 지 알아보자. 앱 출시 때 마다 사용자들한테 리뷰를 받는 것이 필자에겐 정말 큰 행복이다. 근데 이번 SeoulSalam은 다운로드 수가 꽤 나오는 데에도 불구하고 이용자 리뷰가 생각보다 안 나와서 섭섭했다... 리뷰 요청을 위해서는 StoreKit에 있는 SKStoreReviewController의 requestRiview() 함수를 불러와줘야 한다. 그리고 구현 전에 확인해야할 사항이 있다!! 바로 애플 개발자 웹사이트의 앱스토어 리뷰와 HIG의 리뷰인데, 해당 사안들을 전부 다 확인하면 좋지만, 몇 가지 중요한 부분들을 해석하고 공유해드리려고 한다. 1. You can prompt for ratings up to three times in a 365-day per..
앱 수익화 - SwiftUI 앱에 광고넣기(AdMob vs Meta Audience Network) 앱의 수익화는 앱을 유지하기 위해 정말 중요한 부분이라고 생각한다. 그래서 SeoulSalam에도 Google Admob을 이용해 광고를 게재중이었다 iOS 앱에 광고를 게재 하는 방법은 여러가지인데, 그 중 가장 인기있는 것은 Google Admob이다. 이전에는 애플에서 직접운영하는 iAD도 있었지만, deprecated 되었고, Amazon Mobile Ads도 몇 년 전에 deprecated되었다. Meta Audience Network 또한 사용되지만, 필자 개인적인 경험으로는 TIN을 요구하는 것도 그렇고, 계좌 연결 그리고 앱 인증까지 Google AdMob 보다는 더 복잡한 부분이 있었다.  위 인증 상황을 해결하는 데에까지 총 7일 이상의 시간이 소요되었기 때문에, 그 사이에 AdMob..
TCA - Reducer -> ReducerProtocol 오늘은 작년 말 쯤에 커밋되었던 ReducerProtocol을 적용시켜, SeoulSalam 앱의 deprecated된 코드들을 리팩토링하였다. 이전에 TCA에 대한 글을 읽어보셨다면 아시겠지만, 다시 한 번 설명하자면, TCA에는 Reducer 라는 상태(State)를 업데이트 해주고 이펙트(효과)를 내보내는 핵심적인 컴포넌트가 있다. 이는 ReducerProtocol이 Point-Free에서 2022년 8월쯤에 발표되며, deprecated되었다. 물론 Reducer라는 중심적인 개념은 남아있으니, 이것의 형태가 어떻게 변화되었는지에 집중하면 좋을 것 같다. 필자는 처음에 Protocol이라고 하기에 그저 하나의 blueprint라고 생각하였으나, 그 이상의 효과를 기대하고 도입한 큰 변화였다. 그 ..