Develop/Swift

    [Swift] 토스트(Toast) Message WindowScene 연구

    [Swift] 토스트(Toast) Message WindowScene 연구

    안드로이드에서는 기본적으로 있지만 swift에서는 직접 구현해주어야합니다. toast 관련해서 라이브러리도 존재하고 swiftUI ViewModifier로 구현한 예제도 많습니다. 하지만 안드로이드랑 다르게 현재 자신의 뷰에서만 표시되고 이전 뷰로 가거나 다음 뷰로 이동 시, 토스트가 사라지거나 가려지는 문제가 있었습니다. 그래서 연구하는 도중 WindowScene 맨 위로 올리면 어떻게 될까 구현해본 결과, 항상 맨위에 존재하는 것을 확인할 수 있었습니다. 위의 이미지와 같이 뷰가 이전으로 가거나 다시 생기더라도 항상 Toast가 맨 위에 존재하는 것을 확인할 수 있습니다. 1. Get WindowScenes func getWindowScenes() -> [UIWindow] { return UIAppl..

    [SwiftUI] TabView PageStyle 회전 연구 (iPad 기준)

    [SwiftUI] TabView PageStyle 회전 연구 (iPad 기준)

    TabView PageStyle 고찰 SwiftUI에서 iOS14 부터 TabView PageStyle이란 기능이 존재합니다. iOS13에서는 직접 제작을 했고, iPhone일 경우에는 화면 세로고정한 상태로 이용했기 때문에 인지를 못했었는데 회전을 한 경우 content 위치 문제가 있다는 것을 알게 되었습니다. 위의 이미지를 보시면(검은색 이미지만 봐주세요..) 가운데로 설정을 해논 상태지만 우측으로 더 가는 문제가 있었습니다. 이는 Tabview 내의 width가 안맞는 현상이였습니다. max(UIScreen.main.bounds.width, UIScreen.main.bounds.height) 그래서 저는 tabView frame의 width를 UIScreen의 width, height 중 max값..

    [SwiftUI] ViewModifier 사용해보기

    ViewModifier? 기존에 생성한 뷰 또는 modifier에 추가적으로 꾸며줄 때 사용합니다. https://developer.apple.com/documentation/swiftui/viewmodifier Apple Developer Documentation developer.apple.com 애플 개발자 사이트에서 자세한 내용을 확인하실 수 있습니다. 저는 iOS 버전에 따라 분기처리, 그리고 원하는 뷰를 커스텀할 때 이용하고 있습니다. 1. iOS 버전 분기처리 13.0 이상의 SwiftUI 프로젝트를 하게 되면 13, 14, 15 버전마다 분기처리를 해야하는 경우가 있습니다. 예로 들면 overlay, navigationTitle, ignoresSafeArea 등 버전이 추가되면서 각 버전에..

    [SwiftUI] fullScreenCover 고찰

    [SwiftUI] fullScreenCover 고찰

    처음 SwiftUI 프로젝트를 시작하면서 학습하는 도중, iOS 14이상부터 사용할 수 있는 기술들이 있었습니다. 그 중 하나가 fullScreenCover로, Model View를 전체로 띄울 때 사용하는데 해당 수식자는 iOS 13에서 사용할 때 직접 구현해줘야하는 문제가 있었습니다. fullScreenCover(isPresented:onDismiss:content:) https://developer.apple.com/documentation/swiftui/list/fullscreencover(ispresented:ondismiss:content:) Apple Developer Documentation developer.apple.com 위는 iOS 14에서 사용할 수 있는 수신자로, 애플 개발자 사..

    [iOS] 무음모드 상태에서 WebView 음원 출력하기

    최근 무음모드로 여러가지 시도를 많이 해봤습니다. 현재 나의 기기가 무음모드인지 판단하는거부터 시작해서.. 전화 수신 후의 음원 재생 등등.. 이번에는 무음모드에서 WebView 내의 음원 출력하는 문제도 해결해야 했습니다.. 먼저 왜 소리가 안나는지 공부해본 결과! 무음모드 일 때 iOS의 웹 오디오 기능이 정상적으로 작동되지 않는 원인이 safari 와 관련되어 있는 것을 확인하였습니다. 해결방안 기존 무음모드를 판단할 때, 무음 음원을 재생시켜 소리 음량으로 비교했던 방식을 기반으로 WebView 상에서 무음 음원을 재생시키는 방향으로 진행했습니다. 확인 결과, audio 또는 video 요소를 재생시키면 WKWebView 오디오 세션 범주가 Ambient라는 default에서 Playback으로 ..

    [iOS] 코드 문서화 도와주는 Jazzy 도전기

    [iOS] 코드 문서화 도와주는 Jazzy 도전기

    회사에서 새프로젝트를 진행하면서 개발 외에도 문서화가 정말 중요한 것을 느꼈습니다. 물론 깃이나 위키로 정리하여 문서화할 수 있지만 코드 관련 문서화는 한계가.. 그렇게 찾아보다가 Jazzy를 알게 되었고, 지금도 여러 방식으로 수정하며 이용하고 있습니다. https://github.com/realm/jazzy GitHub - realm/jazzy: Soulful docs for Swift & Objective-C Soulful docs for Swift & Objective-C. Contribute to realm/jazzy development by creating an account on GitHub. github.com objective-c 뿐 만아니라, swift도 모두 문서화가 가능합니다. 기..