일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- clean architecture
- 스위프트
- UICollectionView
- Clean Code
- uitableview
- UITextView
- uiscrollview
- Protocol
- HIG
- Xcode
- Observable
- 애니메이션
- collectionview
- swift documentation
- 클린 코드
- SWIFT
- MVVM
- swiftUI
- rxswift
- ribs
- map
- tableView
- 리펙터링
- ios
- RxCocoa
- Human interface guide
- Refactoring
- 리펙토링
- combine
- 리팩토링
- Today
- Total
목록분류 전체보기 (1634)
김종권의 iOS 앱 개발 알아가기
뷰 데이터 넘기기parentView -> childView 데이터를 넘겨주는 방법1) @State와 Binding으로 넘겨주기 (양방향 바인딩)2) EnvironmentObject를 사용하여 넘겨주기 (양방향 바인딩)1) @State와 Binding으로 넘겨주기@State 프로퍼리를 부모 뷰에 놓고, 달러 $를 붙여서 자식 뷰에 Binding 형태 프로퍼티를 넘겨주기양방향 바인딩ChildView에서 childText를 변경하면 parentText도 같이 변경되고, parentText가 변경되면 childText도 변경됨struct ContentView: View { @State private var parentText = "parent_text" var body: some View { ..
@State 프로퍼티@State를 붙인 프로퍼티의 값이 변경되면 자동으로 이것을 사용하고 있는 뷰들이 다시 그려는 기능* 뷰들이 다시 그려는 기능: 해당 뷰가 다시 그려질 때 init도 다시 호출되는것을 주의@State var text = ""var body: some View { Text(text)}@State 사용 시 주의사항@State의 용도는 View내부에서 프로퍼티를 변경시킬때만 사용해야함init이나 메소드에서 @State를 변경해도 @State값이 변경되지 않음ex) init에서 text를 초기화해주어도 text값이 변경되지 않음struct ContentView: View { var body: some View { VStack { ChildView(t..
Text에 Lottie 넣기Text에 정적인 이미지를 넣는 방법은 기존 방법이 존재NSTextAttachment를 사용하여 AttributedText를 Text 컴포넌트에 대입하는 방법Text에 바로 이어 붙이는 방법하지만 Lottie와 같은 애니메이션을 Text에 넣는 방법은 알려진 방법이 xText에 Lottie 넣는 아이디어Text와 LottieView를 붙이는 것문자열이 있을때, 이 문자열을 띄어쓰기 단위로 쪼개고 Lottie를 넣고 싶은 위치 혹은 문자열을 정하여 그 옆에 LottieView를 넣는 것구조// Lottie를 마지막에 넣고싶고, 문구가 들어갈 뷰의 width를 200라 할 경우 아이디어VStack { 문자열을 " " 단위로 분해하여 배열로 나누기 라인별로 들어갈 문자열을 나누어..
@ObservedObject 사용 요건ObservableObject 모델을 사용할 때 아래 에러를 마주치는 경우가 존재바로 @ObservedObject를 선언한 프로퍼티는 프로토콜이 아닌 구체적인 타입을 사용해야함struct ContentView: View { // error: Type 'any Personable' cannot conform to 'ObservableObject' @ObservedObject var person: Personable var body: some View { HStack { } }}protocol Personable where Self: ObservableObject { var name: String { get }..
* Swift는 NSTextAttachement를 활용하지만, SwiftUI에서는 더욱 단순하게 처리가 가능문자열에 이미지 넣는 방법SwiftUI에서는 Text라는 UI 컴포넌트가 있는데 단순히 이것을 활용하면 쉽게 이미지 넣기가 가능HStack을 활용한다면 아래처럼 넣을 수 있지만, 문자열이 길어지게 되면 이상하게 적용 struct ContentView: View { var body: some View { VStack { Text("이미지 붙이기 예제") Image(systemName: "globe") Text("입니다") } }}문자열이 긴 경우, 두 줄이 되면 아래처럼 삽입Text("이미지 붙이기 예제 만..
문자열에 이미지 넣는 방법NSTextAttachment 사용NSAttributedString에 attachment를 가지고 초기화할 수 있는데, 이 때 attachemnt에 이미지를 넣어서 이 것을 사용하면 텍스트에 붙이기가 가능1. NSTextAttachment에 image, 크기를 입력2. NSAttributedString에 위 attachment를 가지고 초기화3. 위 NSAttributedString을 또 다른 문자열로 구성된 NSAttributedString에 append하면 합치기직접 구현해보기1. NSTextAttachment에 image, 크기를 입력height를 50으로할때 이 비율을 기준으로 width도 정해지게끔 처리let imageAttachment = NSTextAttachmen..
1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test)2. xcodebuild로 테스트 돌리기 - 결과 얻어오기 (xcresult)3. xcodebuild로 테스트 돌리기 - xcresult 파일 변환하여 분석하기 (xcrun xcresulttool, xcpretty, junit)1. xcresulttool를 사용하여 변환: xcresult -> json.xcresult는 범용적인 포멧이 아니므로 json으로 변환을 하면 ci와 같은 여러곳에서 사용이 가능xcrun xcresulttool을 사용xcrun xcresulttool get --path "TestResults.xcresult" --format jsonjson으로 보면 key-value 쌍으로..
1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test)2. xcodebuild로 테스트 돌리기 - 결과 얻어오기 (xcresult)3. xcodebuild로 테스트 돌리기 - xcresult 파일 변환하여 분석하기 (xcrun xcresulttool, xcpretty, junit)xcodebuild로 유닛 테스트 돌리기지난번 글에서 아래처럼 xcodebuild test [options]으로 빌드가 가능이렇게 유닛테스트를 실행하면 결과도 가져올 수 있는데, 이 결과를 통해 유닛 테스트가 잘 되었는지 분석도 가능xcodebuild test -scheme -destination 'platform=iOS Simulator,name=iPhone 15'결과 가..