분류 전체보기

· iOS/Swift
바로 이전 글에서 정리했던 ViewModifier 프로토콜과 유사하게ButtonStyle 이라는 프로토콜이 있습니다.이 프로토콜로 작성한 구조체는SwiftUI Button의 .buttonStyle() modifier를 통해 ButtonStyle을 설정할 때 쓸 수 있습니다. 간단한 예제입니다.ButtonStyle 프로토콜의 구조체는func makeBody(configuration:) -> some view 를 구현해주면 됩니다.struct CustomButtonStyles: ButtonStyle { var systemName: String var title: String func makeBody(configuration: Configuration) -> some View { ..
· iOS/Swift
ViewModifier 프로토콜은'View 혹은 View Modifier에 적용해서 기존과 다른 버전을 생성하는 프로토콜' 입니다.다시말해 커스텀 Modifier를 만들 수 있게 해주는 프로토콜입니다. 간단한 예시로 보겠습니다.아래와 같이 ViewModifier 프로토콜을 작성해줍니다.저는 제 앱에서 공통으로 사용할 타이틀 크기와 색상을 지정해주었습니다.struct MyAppTitle: ViewModifier { func body(content: Content) -> some View { return content .font(.system(size: 30, weight: .bold)) .foregroundColor(.indigo) }}  그리..
· Dev Tips
집에서는 M1 Pro 맥북을 사용중이고, 최근 회사에서는 M1 iMac을 사용중인데요. 실리콘 환경에서의 빌드에서 문제가 가끔 발생하여, 이를 해결한 케이스들을 정리해봅니다. (이 글은 추가 케이스가 생길 때 업데이트될 수 있습니다) (마지막 업데이트: 2023.01.17) #1 외부 framework는 가급적 xcframework를 쓰는 것이 좋음. 기존 lipo로 묶는 유니버셜framework는 arm단말용 바이너리+arm시뮬레이터용 바이너리가 묶일수가 없음. carthage는 0.37.0부터 xcframework를 지원. #2 터미널(혹은 iterm)을 쓰는 경우 homebrew, npm, pods 등 패키지관리자 설치시 문제가 발생할 수 있는데, 실행할 때 로제타로 실행한 후 설치하면 해결. (앱..
· 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
'분류 전체보기' 카테고리의 글 목록 (8 Page)