728x90

분류 전체보기 290

[WWDC22] Create your Privacy Nutrition Label

안녕하세요. WWDC22 'Create your Privacy Nutrition Label' 라는 세션의 내용을 가볍게 정리해 볼게요. 사실 별 내용 없습니다..ㅎ # Label creation process Privacy Nutrition Label은 이런 거예요. (어떤 데이터가 수집되고 어떻게 사용되는지 사용자에게 알려주는 정보입니다.) 이 라벨을 쓰기 위해선 앱 내에서 어떤 데이터가 수집되고 있고 어떻게 쓰이는지를 파악해야겠죠? 보통 앱을 만들면 외부 SDK(RxSwift, Alamofire 등)를 활용하는 일이 많을 텐데요. 앱 자체에서 수집하는 데이터 뿐만 아니라 외부 SDK에서 관리 및 수집하는 데이터를 모두 포함해서 Label을 작성해줘야 합니다. (어떤 데이터를 수집하는지에 대해선 외부 ..

WWDC 2023.07.31

[WWDC22] What's new in WKWebView

안녕하세요. 요즘 웹뷰를 자주 다루네요ㅎㅎ 좀 늦었지만 WWDC22 'What's new in WKWebView' 라는 세션을 보고 iOS 16에서 사용할 수 있는 WKWebView 신규 기능에 대해서 알아볼게요. # Web content interaction ## Fullscreen support Javascript의 webkitRequestFullscreen 기능을 쓸 수 있게 되었습니다. (특정 element를 전체화면으로 확대시키는 기능입니다.) WKWebView의 isElementFullscreenEnabled를 true로 설정해 주면 됩니다. 직접 테스트 해보실 수 있는 페이지도 만들어뒀어요! ## CSS viewport units dynamic viewport sizes를 따르는 새로운 CS..

WWDC 2023.07.29

TCA(6) : WebView

안녕하세요. 이번에는 TCA를 활용하여 WebView를 만들어볼게요. (TCA 0.54.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!) Reducer, Scope, TaskResult 등 지금까지 TCA에 대해서 간단하게 알아봤는데요. 지금까지 공부한 것을 활용하면 자식 WebView를 만들 수 있습니다!!ㅎㅎ [참고] TCA로 WebView 만들면 뭐가 좋아? UIKit 기반의 WebKit의 이벤트를 SwiftUI로 던져주거나, 반대로 SwiftUI 이벤트를 WebKit으로 던져주기 쉽습니다. 이전 글에서 다 다뤄봤던 내용이기 때문에 자세하게 설명은 생략하고 WebView, WebViewReducer 코드 먼저 보여드릴게요. (좀 길어요..;;) 아직까진 SwiftUI 용 WebView가 따로..

SwiftUI 2023.07.28

[Unity] Debug.Log 로그가 콘솔.app에서 안보일 때

안녕하세요. Unity에서 Debug.Log로 로그를 찍어놓고 iOS 빌드를 했을 때, 콘솔.app에서 로그가 안보이신다면 Unity 빌드 옵션 중에 Development Build가 체크 해제되어 있는지 확인해보세요. 이게 정확한 해결방법인진 모르겠으나, 제 경우엔 Development Build 옵션을 끄니까 콘솔.app에서 로그가 잘 찍히더라구요. 혹시 Development Build 옵션을 꺼도 로그가 안 찍힌다면, Xcode에서 실행 중인 빌드를 종료하고 앱을 직접 실행시켜 보세요ㅎㅎ 이번 글은 여기서 마무리.

TroubleShooting 2023.07.25

웹뷰에서 원하는 타입의 파일만 첨부하는 방법

안녕하세요. 오늘도 즐거운(?) 웹뷰 얘기입니다.. HTML에서 input 태그를 사용해서 파일 첨부를 하게 되면, iOS 웹뷰에서 자동으로 아래와 같은 팝업을 보여줍니다. 근데, 난 사진만 첨부하고 싶어!! 라고 하는 경우엔 어떻게 해야 할까요? 웹 내에서 첨부된 파일의 확장자를 보고 필터링해 줄 수도 있지만, accept라는 속성을 사용하면 사용자가 사진만 첨부하게끔 제한시킬 수 있습니다. 동시에 웹뷰 팝업에서는 'Take Photo or Video' 라는 문구가 'Take Photo' 라고 바뀌게 됩니다. 만약 이미지 말고 txt 파일만 받고 싶어!! 하는 경우엔 accept에 .txt 확장자만 넣어주면 되겠죠?? 이 경우엔 웹뷰에서 팝업이 뜨지 않고 바로 '파일' 앱이 실행되고 '파일' 앱 내에서..

기타 2023.07.23

Apple 기기별 os 최대 지원 버전 볼 수 있는 사이트

안녕하세요. 업무에 도움이 될 것 같은 사이트를 하나 발견했습니다. https://iosref.com/ios iOS Ref Quick reference tables, tools, and links for iOS developers. iOS Ref has iOS compatibility tables, a beautiful Swift cheatsheet, a hex code to UIColor converter, device screen resolution tables, and more. iosref.com 아이폰 기기별로 베타 버전 포함해서 iOS 최대 지원 버전을 알 수 있는 사이트예요. 아이폰 뿐만 아니라 iPad, 애플워치, Apple TV의 os 최대 지원 버전 같은 것도 알 수 있어서 요즘 애용하..

기타 2023.07.20

TCA(5) : 부모-자식 간 이벤트 전달

안녕하세요. 이번에는 TCA를 활용하여 부모 Reducer와 자식 Reducer 간에 이벤트 전달하는 방법에 대해서 알아볼게요. (TCA 0.54.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!) # 부모-자식 간 이벤트 전달하는 방법 부모 Reducer가 자식 Reducer에게 또는 자식 Reducer가 부모 Reducer에게 이벤트를 전달하는 방법은 개념만 알고 있으면 크게 어렵지 않습니다. (물론 Notification을 쓰지 않구요!) 부모 Reducer에서 Scope를 사용해서 자식 Reducer를 정의한 것 기억하시나요?? [참고] Scope란? Scope에 대해 정리한 글이 있으니 먼저 보고 오시면 쉽게 이해가 되실 거예요. 부모 Action 안에는 자식 Action도 포함되어 있어요..

SwiftUI 2023.07.20

Bundle 통째로 복사하기

안녕하세요. cp 명령어로 bundle을 통째로 복사해서 새로운 폴더 안에 넣으려고 했는데.. bundle 안에 있는 파일들만 복사가 되더라구요.. cp -rf Settings.bundle ./new ㅠㅠ.. 내가 원한건 이게 아닌데..;; # 해결방법 첫번째 방법은 cp 명령어를 사용하기 전에 타겟 폴더를 미리 만들어두면 두는 것입니다. (이미 존재하고 있는 폴더 안에 복사해서 넣으면 bundle 통째로 들어갑니다.) 오홓..ㅎㅎ 두번째 방법은 rsync 명령어를 사용하는 것입니다. rsync 명령어를 사용하면 타겟 폴더가 없어도 알아서 폴더를 만든 후에 bundle 통째로 넣어줍니다. rsync -a Settings.bundle ./new # 요약 - cp 명령어를 사용해서 A 폴더를 통째로 폴더 B..

기타 2023.07.14

TCA(4) : Scope

안녕하세요. 이번에는 TCA의 Scope에 대해서 알아볼게요. (TCA 0.54.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!) # Scope? Scope를 사용해서 부모 Reducer에 자식 Reducer를 포함(선언? 정의?)시킬 수 있습니다. (Scope로 A(부모) Reducer와 B(자식) Reducer를 연결해 준다고 이해하면 될 것 같아요.) Reducer에서의 부모-자식 관계는 여러 가지가 될 수 있는데요. 큰 Reducer를 작은 Reducer로 쪼개는 것도 부모-자식 관계가 될 수 있고, 뷰 계층에서 부모 뷰의 Reducer와 자식 뷰의 Reducer도 부모-자식 관계가 될 수 있어요. # TCA에서의 부모-자식 관계 특징 부모-자식 관계를 설정했을 때의 가장 큰 특징은 2가..

SwiftUI 2023.07.12

맥북에서 LoC 계산

안녕하세요. 혹시 LoC가 뭔지 아시나요?? 전 오늘 처음 알게 된 용어인데 Lines of Code, 즉 코드가 몇 줄인 지를 의미하는 용어라고 합니다. cloc 라는 모듈을 사용하면 맥북에서 파일 또는 폴더 단위로 여러 수치들(언어별로 파일이 몇 개인지, 빈 줄이 몇 개인지 등)을 쉽게 알 수 있습니다. brew로 설치해 주고요. brew install cloc 원하는 파일 또는 폴더 위치로 이동해서 cloc 명령어를 호출해 주면 됩니다. cloc . 언어별로 파일을 분류하고 분류한 파일이 몇 개인지, 빈 줄이 몇 줄인 지, 주석이 몇 줄인지, 코드가 몇 줄인 지를 표로 보여줘서 되게 좋더라구요. cloc 명령어에 옵션을 넣어서 추가 필드를 넣거나 필요 없는 필드를 뺄 수도 있습니다. 이번 글은 여..

기타 2023.07.11