분류 전체보기 (64) 썸네일형 리스트형 [TIL] Moya 라이브러리 Plugins Logging 도입기 도입 배경네트워크 통신에 관해 디버깅하던 도중 추상화되어 있는 Moya를 print로 일일히 원하는 시점에 찍어가며 디버깅하다보니 디버깅하는데 너무나 큰 불편함을 느껴 Moya 라이브러를 통한 Logging을 적용하게 되었습니다. Moya PluginsMoya 공식 문서에 따르면 Plugins 요청과 응답을 수정(modify)하거나 side-effects를 수행하는 데 사용된다고 기술되어 있습니다.Moya plugins are used to modify requests and responses or perform side-effects. 이 수정 과정을 도와주는 메서드들이 있는데요. 이들은 다음과 같습니다.public protocol PluginType { /// Called to modify a .. [TIL] SwiftUI에서 Bottom Sheet 구현기 기획이번 프로젝트에서 앱의 시작부분을 아래 사진처럼 기획 중인데요. 그래서 이번 기회에 이 Bottom Sheet를 구현한 내용에 대해 작성해 보려고 합니다. Bottom Sheet 만들기하단 시트 구현struct BottomSheetView: View where Content: View { @Binding var isPresented: Bool private var height: CGFloat private var content: Content @GestureState private var translation: CGFloat = .zero init(_ isPresented: Binding, height: CGFloat, content: () -> Con.. [TIL] SwiftUI 시작화면 제작기 시작 화면 흐름구현부Launch Screen처음 앱 시동시 Launch Screen(실제 구현에선 SplashView로 명명)을 띄운 후, 2초뒤 dismiss 처리하고, 대신 홈 화면(실제 구현에선 ContentView)를 띄웁니다.struct LaunchScreenView: View { @State private var isLaunching: Bool = true var body: some View { if isLaunching { SplashView() .onAppear { // 2초후 SplashView가 사라짐 DispatchQueue.main.as.. [TIL] Custom Modifier 적용기 오늘은 Custom Modifier를 적용하였던 과정에 대해 게시글을 작성해볼까 합니다. 적용 화면 기존 UI화면이 위와 같았는데요 이것을 아래와 같이 전일대비 변동률에 따른 텍스트 색을 변화시키는 Modifier을 커터마아징해보겠습니다. 적용과정 우선 Custom Modifier 정의를 위해 ViewModifier 프로토콜을 따르는 구조체를 선언해줍니다.애플 공식문서에 따르면, SwiftUI 프레임워크에 내장되어있는 한 프로토콜이고, 기존의 뷰 또는 다른 View Modifier에 적용시켜 또 다른 버전을 만들 수 있는 Modifier라고 합니다. 즉, 이 프로토콜을 채택하면 Custom Modifier를 구현해줄 수 있는 것이죠다음은 변동률에 관한 열거형 처리입니다. API 테스트 결과 변동률에 대한.. [TIL] SwiftUI 나머지 영역 차지 하기 문제사항 가장 오른쪽 파란색 영역으로 칠해진 거래대금 영역이 나머지 영역을 차지하기 하게 하고 싶습니다. 해결.frame(maxWidth: .infinity, alignment: .trailing) maxWidth를 .infinity로 설정해주면 아래와 같이 남은 전체 영역을 차지하면서 내부 View에 원하는 정렬을 적용해줄 수 있습니다. 참고 사이트https://medium.com/@youable.framios/%EA%B7%B8%EB%8C%80%EB%93%A4%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-layout%ED%95%A0-%EA%B2%83%EC%9D%B8%EA%B0%80-1-feat-swiftui-3877186521c5 (swiftUI Layout 1편)https://m.. [TIL] '손상되었기 때문에 열 수 없습니다. 해당 항목을 휴지통으로 이동해야 합니다.' 오류 해결법 원인 발생 상황Realm Studio가 새로 업데이트되어 Application 폴더에 있던 파일만 지우고 새로 업데이트된 Realm Studio를 설치하여 실행하였는데 아래와 같은 오류창이 표시되었습니다. 순간 당황했지만 차근차근 원인 파악을 위해 바로 구글링을 해보았습니다. 원인MacOS에서는 다운로드한 파일에 대해서, 개발자 (Code Signing) 확인을 하고, 각 파일에 대해서 속성(Attribute)을 부여한다고 합니다. 여기서 코드 사이닝(Code Signing)이란 디지털 서명을 통해 해당 애플리케이션이 신뢰할 수 있는 출처에서 가지고 왔음을 보증하는 역할을 한다고 합니다. 말 그대로 애플리케이션이 악성코드를 가지고 있느냐를 판별해주는 역할해준다고 보시면 될 것 같습니다. MacOS에서는.. [TIL] Charts 적용기 적용 배경처음 SwiftUI Charts 프레임워크를 활용하여 그래프를 그리려고 하였습니다.하지만 제가 프로젝트 최소 버전을 iOS15로 설정해 두었기 때문에 iOS16이상에서만 사용가능한 Charts 프레임워크 버전 호환 이슈롤 불가능해보였습니다. 따라서 UIKit 기반으로 구성되어 있는 DGCharts 라이브러리를 대신 사용하였습니다. SwiftUI에서 UIKit 적용우선 DGCharts는 UIKIt 기반으로 구성되어있기 때문에 SwiftUI의 View Life Cycle에 속하게 하기 위해선 다음과 같은 과정을 거처야 합니다.UIViewRepresentable 프르토콜을 준수하는 구조체를 하나 선업합니다.UIViewRepresentable 프로토콜은 UIKit의 UIView 타입을 SwiftUI의 .. [TIL] 숫자 타입 소수점 나타내기(feat. 디테일 설명) 오늘 포스팅은 숫자의 소수점을 일정 자리까지 나타내는 법에 대해 작성하고자 합니다. 생각보다 굉장히 간단합니다. 바로 아래 코드처럼 작성해주시면 되는데요.아래 코드는 정확히 묘사하면 소수 다섯재짜리에서 반올리하여 나타내준 것입니다.// 소수 넷제자리까지 나타내기Text("\(40294.392848223, specifier: "%.4f")") // 결과: 40294.3928 이렇게 끝맺음을 하면 아쉽기 때문에 조금 더 깊이 있게 들어가보겠습니다. 조금 더 깊이 들어가보자LocalizedStringKey SwiftUI의 Text 뷰에 대한 정의를 들어가보면 위와 같이 정의되어 있는 것을 확인해보실 수 있습니다.여기서 눈에 띄는 타입이 바로 LocalizedStringKey인데요. 애플 공식문서에 따르면 Lo.. 이전 1 2 3 4 5 6 7 8 다음