일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙터링
- Protocol
- uiscrollview
- Clean Code
- clean architecture
- Human interface guide
- Xcode
- 스위프트
- RxCocoa
- tableView
- uitableview
- 리팩토링
- SWIFT
- 애니메이션
- swift documentation
- ios
- 클린 코드
- collectionview
- swiftUI
- combine
- rxswift
- ribs
- UICollectionView
- HIG
- MVVM
- Observable
- 리펙토링
- map
- UITextView
- Refactoring
- Today
- Total
목록SWIFT (948)
김종권의 iOS 앱 개발 알아가기
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'결과 가..
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를 통..
SMS message filters 란?알 수 없는 발신자로부터 메시지를 받았을 때, 메시지를 가로채어, 메시지가 어떤 유형인지 분류해줄 수 있는 것"SMS Filter"라는 앱을 만들었을때, 여기에 SMS message filters 기능을 넣으면 iOS 메시지 앱에서 필터링 방법 리스트 중 노출됨응용하여 스미싱 보안 앱에서 이 기능을 적용해놓고, 스미싱 문자가 왔을 때 이 문자가 사기라는 것을 push 알림으로 보내줄 수 있음참고) iOS는 알 수 없는 사람이 보낸 메시지를 필터링하는 옵션을 메시지 iOS 앱에서 제공은 하고 있음iOS 16에서 향상된 기능iOS 16부터는 메시지를 12개의 하위 범주로 분류가 가능메시지 필터 처리하는 과정"SMS Filter"라는 앱에 Message Filter a..
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 탭 클릭 > 좌측 하단..
StackView sv LazyStackViewStackView, LazyStackView 모두 ScrollView와 같이 사용하여 리스트형 UI 구현이 가능// 1ScrollView(.horizontal) { HStack { ProfileView() ProfileView() ProfileView() ProfileView() ProfileView() }}.frame(maxWidth: 500)// 2ScrollView(.horizontal) { LazyHStack { ProfileView() ProfileView() ProfileView() ProfileView() ..
UITableView 데이터 추가하기UITableView에서 스크롤하면서 동시에 아래에 데이터를 계속해서 추가해주어야하는 페이지네이션 UI가 존재페이지네이션 UI 구현 방법은 이전 포스팅 글 참고 [iOS - swift] UITableView 하단 로딩 구현 방법 (#페이지네이션, footer loading, UIActivityIndicatorView)하단 로딩 구현 아이디어1단계) Pagination: tableView의 willDisplay 델리게이트에서 마지막 인덱스 값인지 체크하고, 마지막 인덱스 값이면 페이지네이션 구현2단계) 하단로딩: willDisplay에서 페이지네이ios-development.tistory.comex) 페이징 관련 코드마지막 셀이 보여질 때 로딩 뷰, footerView를..
struct, class 메모리 저장 위치strucrt는 보통 메모리에서 stack영역에, class는 heap영역이 저장되는데, 아래처럼 struct안에 class 타입이 있을때 이것은 어디에 저장될 것인가?class SomeClass { var value: Int init(value: Int) { self.value = value }}struct SomeStruct { var classInstance: SomeClass var otherValue: Int}결론은 SomeStruct는 stack영역에 저장되고, SomeStruct의 class타입인 프로퍼티 classInstance는 heap영역에 저장됨메모리 위치 알아내기swift에서 heap과 stack영역의 ..