일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxswift
- uitableview
- collectionview
- 리팩토링
- HIG
- Xcode
- tableView
- ribs
- clean architecture
- ios
- Observable
- 애니메이션
- Protocol
- SWIFT
- 리펙터링
- 스위프트
- uiscrollview
- Clean Code
- swift documentation
- Human interface guide
- combine
- MVVM
- UITextView
- 리펙토링
- 클린 코드
- UICollectionView
- Refactoring
- map
- swiftUI
- RxCocoa
- Today
- Total
목록ios (1094)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/s5c8H/btsJdJhdkI0/WnktGHiJTJw3JTWrVtD7NK/img.png)
* Swift는 NSTextAttachement를 활용하지만, SwiftUI에서는 더욱 단순하게 처리가 가능문자열에 이미지 넣는 방법SwiftUI에서는 Text라는 UI 컴포넌트가 있는데 단순히 이것을 활용하면 쉽게 이미지 넣기가 가능HStack을 활용한다면 아래처럼 넣을 수 있지만, 문자열이 길어지게 되면 이상하게 적용 struct ContentView: View { var body: some View { VStack { Text("이미지 붙이기 예제") Image(systemName: "globe") Text("입니다") } }}문자열이 긴 경우, 두 줄이 되면 아래처럼 삽입Text("이미지 붙이기 예제 만..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cFk54g/btsJe5Dp79k/je4XLruX5d6JEgduV7rKP0/img.png)
문자열에 이미지 넣는 방법NSTextAttachment 사용NSAttributedString에 attachment를 가지고 초기화할 수 있는데, 이 때 attachemnt에 이미지를 넣어서 이 것을 사용하면 텍스트에 붙이기가 가능1. NSTextAttachment에 image, 크기를 입력2. NSAttributedString에 위 attachment를 가지고 초기화3. 위 NSAttributedString을 또 다른 문자열로 구성된 NSAttributedString에 append하면 합치기직접 구현해보기1. NSTextAttachment에 image, 크기를 입력height를 50으로할때 이 비율을 기준으로 width도 정해지게끔 처리let imageAttachment = NSTextAttachmen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/It6Gh/btsI4pC2hV3/hBePnFrj4sybClPGKNENFK/img.png)
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'결과 가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVeDtw/btsI43Gcv1B/K7TjkB3pJsGs9iJAmeqop0/img.png)
1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test)2. xcodebuild로 테스트 돌리기 - 결과 얻어오기 (xcresult, junit, xml)3. xcodebuild로 테스트 돌리기 - xcresult 파일 변환하여 분석하기 (xcrun xcresulttool, xcpretty, junit)xcodebuild란?커멘드 라인으로 build, query, analyze, test, archive할 수 있는 라이브러리Xcode는 GUI 방식인 반면, xcodebuild는 커멘드 라인 방식xcodebuild를 잘 사용하면 CI/CD에서도 빌드를 돌릴 수 있고 활용하면 프로젝트 구조 파악이 용이xcodebuild 기능 살펴보기xcodebuild를 통..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/t4YvJ/btsIZQ1WJer/nqQWf7Ylzh15vTXuRIhK0k/img.png)
ObservableObjec, @Published, objectWillChanged 개념ObservableObject는 옵저빙 될 수 있는 모델을 의미옵저빙 된다는 의미는 값이 변경되었을때, 이 모델을 옵저빙하고 있는 대상에게 알림을 주는 것변경된다는 기준은 @Publihsed 키워드로 선언된 프로퍼티가 변경되었을때 알림을 줌@Published를 사용하면 objectWillChanged라는 내부 프로퍼티에 send()를 날리는 것과 동일class User: ObservableObject { let name = "name" /// @Published: 변경되었다는 기준이 될 property에 선언 @Published var score = 0 /* objectWil..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cjhfUx/btsI00a8evV/TmiggP3g6xACCFJNcKakHK/img.png)
SMS message filters 란?알 수 없는 발신자로부터 메시지를 받았을 때, 메시지를 가로채어, 메시지가 어떤 유형인지 분류해줄 수 있는 것"SMS Filter"라는 앱을 만들었을때, 여기에 SMS message filters 기능을 넣으면 iOS 메시지 앱에서 필터링 방법 리스트 중 노출됨응용하여 스미싱 보안 앱에서 이 기능을 적용해놓고, 스미싱 문자가 왔을 때 이 문자가 사기라는 것을 push 알림으로 보내줄 수 있음참고) iOS는 알 수 없는 사람이 보낸 메시지를 필터링하는 옵션을 메시지 iOS 앱에서 제공은 하고 있음iOS 16에서 향상된 기능iOS 16부터는 메시지를 12개의 하위 범주로 분류가 가능메시지 필터 처리하는 과정"SMS Filter"라는 앱에 Message Filter a..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cemLMz/btsISU4dBwJ/Mj8FGR6qlUkqi7KkO0lgb0/img.png)
Xcode에서 시뮬레이터가 보이지 않을 때Xcode에서 다른 버전 혹은 다른 시뮬레이터를 설치했는데, 목록에 보이지 않는 경우가 존재기기 보이게 하는 방법디바이스의 iOS버전에 맞게 Minimum Deployments가 낮게 설정되었는지 확인Minimum Deployments을 iOS 17에서 iOS 14로 낮추니 여러가지 디바이스가 등장하지만 아직 원하는 iPhone SE1기기가 보이지 않음"Manage Run Destinations..." 클릭시뮬레이터 탭에도 iPhone SE1이 보이지 않음+ 버튼을 눌러서 추가만약 아래처럼 "could not create iPhone SE..."가 나오면 시뮬레이터를 설치해야함시뮬레이터 설치 방법"CMD + ," 단축키 > Platforms 탭 클릭 > 좌측 하단..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dGqtjM/btsIUwVhfDm/gGFdtp8Q8PTvGg0xrfVKk1/img.png)
StackView sv LazyStackViewStackView, LazyStackView 모두 ScrollView와 같이 사용하여 리스트형 UI 구현이 가능// 1ScrollView(.horizontal) { HStack { ProfileView() ProfileView() ProfileView() ProfileView() ProfileView() }}.frame(maxWidth: 500)// 2ScrollView(.horizontal) { LazyHStack { ProfileView() ProfileView() ProfileView() ProfileView() ..