안녕하세요 :) 블로그는 오랜만이네요. ㅇㅖ... 그동안 회사일에 치여 사느라 이제야 돌아왔습니다. 오늘은 스냅샷 테스팅에 대해서 포스팅해보려 합니다. 먼저 스냅샷 테스팅이 뭐냐? 스냅샷 테스팅은 UI 컴포넌트를 렌더링하여 스냅샷을 찍어두고 실제 결과와 저장된 스냅샷 파일과 비교하는 테스트 기법입니다. 현재 UI 스냅샷을 이전에 저장된 UI 스냅샷 이미지와 비교해서 두 이미지가 동일하면 테스트가 통과되고 두 이미지가 다르다면 테스트에 실패하게 됩니다. 스냅샷 테스팅 왜 하는데? 스냅샷 테스팅은 UI가 예기치 않게 변경되는 것을 막을 수 있습니다. 테스트를 위해 프로젝트를 하나 만들어줍니다. Podfile을 열어줄게요. pod 'SnapshotTesting' Podfile에 스냅샷 테스팅을 추가해 줍니다...
안녕하세요 오늘은 371 문제를 풀어보겠습니다. 난이도는 Medium, Acceptance는 50.6%입니다. 문제를 봅시다아 두 정수 a,b가 주어지면 두 정수를 더한 값을 리턴해라. 단 +,- 연산자는 쓰지마 Example 1번을 살펴보면 1, 2를 더한 값인 3을 리턴해주고 Example 2번을 살펴보면 2,3을 더한 값인 5를 리턴해줍니다. 마음으로는 advanced(by: ) 함수 써서 끝낼 텐데^^,, func getSum(_ a: Int, _ b: Int) -> Int { return a.advanced(by: b) } 조금 남은 양심이 말리네요. 근데 21년 5월 30일에 그렇게 풀었음ㅋ 심지어 22년 9월 15일에도 동일하게 advanced(by: )로 풀었음ㅋ 이 정도면 잔머리 대마왕..
오늘은 SwiftUI에 Animation을 사용해보려 합니다. 먼저 isZoomed @State프로퍼티를 만들어줍니다. 디폴트 값은 false로 해주고 scrollView가 onAppear 되는 시점 애니메이션이 실행되고 isZoomed값도 토글됩니다. banner의 높이를 결정지을 bannerHeight변수는 isZoomed 값에 따라 253이 되거나 0이 됩니다. frame에 height로 바로 사용하기 위해 타입은 Double(CGFloat)로 선언해줍니다. 이게 끝 struct ContentView: View { @State private var isZoomed: Bool = false var bannerHeight: Double { isZoomed ? 253 : 0 } var body: some..
안녕하세요 오늘은 얼럿에 대해서 알아보겠습니다. 얼럿은 iOS15에서 업데이트되었기 때문에 iOS 15 이상만 지원하면 되는지? iOS 13,14도 지원해야하는지? 생각해보시고 상황에 따라 다르게 구현하면 됩니다. 먼저 iOS 15에서는요 modifier를 통해 얼럿을 생성할 수 있습니다. struct ContentView: View { @State private var showingAlert = false var body: some View { Button("얼럿 생성") { showingAlert = true } .alert("여기 타이틀", isPresented: $showingAlert) { Button("OK", role: .cancel) { print("OK 누름") } } } } 여기서 @S..
안녕하세요 오늘은 Rectangle, RoundedRectangle에 대해서 포스팅하겠습니다. SwiftUI는 Rectangle, RoundedRectangle, Capsule, Ellipse, Circle 이렇게 5가지 Shape를 제공합니다. 그중에서 오늘은 Rectangle과 RoundedRectangle만 살펴보려 합니다. (나머지는 나중에) VStack으로 빨간색 Rectangle 200x200짜리 하나 RoundedRectangle 200x200짜리 하나 그려줍니다. struct ContentView: View { var body: some View { VStack { Rectangle() .fill(.red) .frame(width: 200, height: 200) RoundedRectang..
안녕하세요. 오랜갑만입ㄴ다. 오늘은 VStack과 LazyVStack에 대해서 포스팅하려 합니다. 먼저 VStack은 익숙하시죠? (모르겠으면 여기) 2020.05.28 - [개발/SwiftUI] - SwiftUI 유형별 스택 VStack, HStack, ZStack ㅇㅇ VStack을 사용하면 수직으로 뷰를 쌓을 수 있습니다. 간단한 예로 텍스트 두 개 생성해서 VStack에 넣어봅시다. struct ContentView: View { var body: some View { VStack { Text("안녕") Text("하세요") } } } 안녕, 하세요를 VStack안에 넣어주면? 아래와 같이 세로로 텍스트가 노출되게 됩니다. 여기까지 오케이! 그럼 LazyVStack은 언제 쓰는데? 애플 공식 문서..
WWDC 21 보다가 발견한 내용인데 SwiftUI 3.0부터 마크다운을 지원한다고 합니다. https://developer.apple.com/videos/play/wwdc2021/10018/?time=1635 iOS 15, macOS 12에서부터 마크다운 사용이 가능합니다. - Bold - Italic - Strikethrough - Inline code - Link (이미지는 지원하지 않는다고 함) 이렇게 지원한다고 하는데 한 번 사용해봅시다. struct ContentView: View { var body: some View { VStack { Text("안녕?") Text("안녕 **안녕이라니까** 안녕이라고 *아안녕* 안녕 ***볼드 안녕, 어어*** 어어.") Text("~~줄이 그어이이이서어..
오늘은 Image에 대해서 알아보겠습니다. 스유에서 이미지를 보여주는 뷰가 Image 구조체입니다. UIImage 비슷한거라고 생각하면 될 듯? 먼저 프로젝트에 기영이 이미지를 추가해줍니다. 기본 struct ContentView: View { var body: some View { Image("giyoung2", bundle: nil) } } frame 적용 기영이 이미지 사이즈를 변경해봅시다. 사이즈는 100, 100으로 변경해보겠습니다. struct ContentView: View { var body: some View { Image("giyoung2", bundle: nil) .frame(width: 100, height: 100) } } 응? 왜 안바껴? ㅇㅇ resizable 수정자를 적용하지..
- Total
- Today
- Yesterday
- ios
- 책 추천
- 딥러닝
- swift5
- Algorithm
- rxswift
- objc
- iOS SwiftUI
- 스위프트
- RX
- objective-c
- 책
- leetcode
- SWIFT
- 알고리즘
- wwdc
- Animation
- ReactiveX
- 문자열
- Deep learning
- 머신러닝
- 스위프트UI
- Xcode
- string
- 책 후기
- 애니메이션
- stanford SwiftUI
- ARC
- 독서
- swiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |