전체 글

 iOS developer.
· iOS/Swift
지난 글에서는 Swift, SwiftUI 작성시 자주 마주하는 Property Wrapper 중에서 @State, @Binding, @Published, 그리고 @ObservedObject가 무엇인지 정리해봤습니다. 이번 글에서는 @EnvironmentObject와 @Environment에 대해 정리해봅니다. @EnvironmentObject SwiftUI에서는 환경값이 바뀌었을 때, 해당값에 따라서 뷰를 그릴 수 있게 해주는 @EnvironmentObject라는 Property Wrapper를 제공합니다. @EnvironmentObject Property Wrapper는 이전글에서 다룬 ObservableObject 프로토콜을 따르는 프로퍼티에만 사용할 수 있습니다. 이 값은 부모뷰로부터 주입된 값으로..
· iOS/Swift
지난 글에서는 Property Wrapper가 무엇인지 정리해봤습니다. 이번 글에서는 Swift, SwiftUI로 작성 시 자주 쓰게 되는 Property Wrapper를 정리해보겠습니다. @State와 @Binding @State와 @Binding은 SwiftUI에서 자주 사용하는 Property Wrapper입니다. @State로 선언한 값을 참조하여 SwiftUI를 그리면, 해당 값이 변경될 때 SwiftUI가 이를 반영하여 변경됩니다. // 예시 struct PlayButton: View { @State private var isPlaying: Bool = false var body: some View { Button(isPlaying ? "Pause" : "Play") { isPlaying.to..
· iOS/Swift
Swift, SwiftUI로 코드를 작성하다보면 프로퍼티 앞에 붙여주는 아래와 같은 친구들(?)을 마주하게 됩니다. @main, @Environment, @State, @Binding, @Published, @ObservedObject, @ViewBuilder, @escaping 등.. @가 앞에 붙어 있는 이 친구들은 Property Wrapper라고 부릅니다. 그 동안은 그냥 각각의 용도에 맞춰서 프로퍼티 앞에 붙여서 사용하고 있었는데, (1)에서는 이 Property Wrapper가 무엇인지 알아보고, (2)(다음글)에서는 자주 마주하는 Property Wrapper들의 용도도 정리해보려 합니다. swift.org의 property 문서를 보면 Property Wrapper의 설명이 아래와 같이 되..
WWDC22의 Platforms State of the Union 영상 뿐만 아니라 200여개의 모든 세션 영상에 한글자막이 추가되었습니다. https://developer.apple.com/news/?id=lw8dnr3l WWDC22 video subtitles now in more languages - Latest News - Apple Developer You can now watch the Keynote, Platforms State of the Union, and nearly 200 sessions from this year’s Apple Worldwide Developers Conference with Japanese, Korean, and Simplified Chinese subtitles...
· Dev Tips
Postman은 RestAPI(GET, POST, PUT,...)의 호출을 쉽게 하고, 응답값을 보기 좋게 확인할 수 있으며, 이를 문서화하여 체계적으로 관리, 공유할 수 있게 해주는 플랫폼입니다. 팀 기능을 사용하면, 이를 통해 협업을 할 수가 있는데 이는 유료 기능인 듯합니다. API 결과값으로 시각화를 할 수 있는 기능도 있습니다. https://www.postman.com/ Postman API Platform | Sign Up for Free Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you ..
· iOS/iOS Dev
SnapKit은 Autolayout 설정을 간결하고, 편리하게 사용할 수 있게 해주는 프레임워크입니다. iOS 8.0+, Xcode 9.0+, Swift 4.0+ 에서 사용 가능하고, CocoaPods, Carthage, Swift Package Manager를 지원합니다. GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub. github.com 매뉴얼도 잘 제공되어 있습니다. (SnapKit Docs: https://snapkit.githu..
· iOS/Swift
아직까지는 iOS의 수많은 프로젝트가 UIKit기반일 듯 한데요.그래서 Apple에서는 SwiftUI를 밀고 있으면서도UIKit을 SwiftUI에서 재사용하거나, 최근(WWDC2022)에는 UIKit(UITableview)에 SwiftUI를 녹여서 쓸 수 있는 방법을 제시하고 있습니다. 그중에서 SwiftUI에서 UIKit을 사용할 수 있도록 제공하는 방법이UIViewRepresentable, UIViewControllerRepresentable 프로토콜입니다.UIViewRepresentable 프로토콜은 UIView를UIViewControllerRepresentable 프로토콜은 UIViewController를 SwiftUI에서 사용할 수 있도록 해줍니다.두 프로토콜들은 iOS 13.0부터 사용 가능합..
· iOS/Swift
SomeSwiftUIView라는 SwiftUI 파일을 생성을 하면하단에 SomeSwiftUIView_Preview라는 이름의 PreviewProvider 프로토콜을 따르는 구조체가 함께 생성이 됩니다.struct SomeSwiftUIView_Previews: PreviewProvider { static var previews: some View { SomeSwiftUIView() }} 이 구조체는1. 우리가 작성한 SwiftUI View의 내용을 Preview(혹은 Canvas)에 반영시켜주거나,2. PreviewProvider 내의 previews의 내용을 Preview에 반영시켜주어우리가 확인하고자 하는 View를 빠르게 확인할 수 있게 해줍니다.1. 우리가 실제로 작성해서 사..
· iOS/iOS Dev
Then 라이브러리는 인스턴스 초기화시 클로저를 통해 깔끔한 작성을 할 수 있게 도와주는 라이브러리입니다. GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers ✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers github.com Github의 ReadMe만 봐도 어떤 용도인지 감이 잘 옵니다. Then은 CocoaPod, Swift Package Manager를 통한 Dependency 설정이 가능합니다. 기존의 인스턴스 초기화 과정은 //..
· iOS/iOS Dev
앱에서 푸시 메세지를 띄우는 방법은 1. 푸시 서버로부터 받는 방법 2. 로컬 푸시메세지로 받는 방법이 있습니다. 그 중에 로컬에서 띄운 푸시메세지를 UserNotification이라고 합니다. UserNotification을 띄우려면 UNUserNotificationCenter에 UserNotificationRequest를 추가해야하는데, UserNotificationRequest는 id, content, trigger 세가지가 필요합니다. id는 푸시메세지 고유값으로 해당 푸시메세지를 취소시키고 싶을 때 필요합니다. content는 title, subTitle, body, sound, badge, launchImageName 등의 푸시메세지의 실제 내용입니다. trigger는 푸시메세지를 띄울 조건(..
· iOS/iOS Dev
우리는 어떤 값을 저장해놓았다가, 앱을 재실행했을 때도 이를 꺼내어 해당 값에 따라서 동작하도록 하고 싶을 때가 있습니다. 방법은 여러가지가 있겠지만, 간단한 값들을 저장해놓을 때 UserDefaults라는 수단을 많이 사용합니다. 매우 간단한 방법으로 값을 저장하고 불러올 수 있기 때문입니다. 이렇게 저장을 해놓으면, UserDefaults.standard.set("Honey Butter", forKey: "almond") UserDefaults.standard.synchronize() 이렇게 불러와서 쓰면 됩니다. if let almond = UserDefaults.standard.value(forKey: "almond") { print("Almond: ", almond) // Almond: Hone..
· iOS/iOS Dev
Alamofire는 swift기반의 네트워킹을 도와주는 라이브러리입니다. URLSession을 기반으로 하는 라이브러리로, 네트워킹 작업을 단순화시켜주고 네트워킹을 위한 다양한 메서드와 JSON파싱 등을 제공해줍니다. - 연결가능한 Request, Response메서드를 제공 - Combine을 지원 - URL, JSON형태의 매개변수 인코딩을 지원 - 파일, 데이터, 스트림, MultipartForm 데이터 등의 업로드 - Request, Resume Data로 파일 다운로드 - URLCredential로 인증 - HTTPResponse 검증 - Upload, Download 진행률 클로저 - cURL Command Output - 동적으로 Request를 조정 및 재시도 - TLS인증서 및 공개키 고..
SwiftyCody
 iOS.dev