일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uiscrollview
- MVVM
- 애니메이션
- UITextView
- 리펙토링
- tableView
- swift documentation
- HIG
- UICollectionView
- Human interface guide
- Clean Code
- swiftUI
- 스위프트
- collectionview
- Protocol
- ios
- 리펙터링
- ribs
- Refactoring
- RxCocoa
- 클린 코드
- 리팩토링
- clean architecture
- Xcode
- Observable
- SWIFT
- rxswift
- uitableview
- map
- combine
- Today
- Total
목록분류 전체보기 (1542)
김종권의 iOS 앱 개발 알아가기
url 파싱 아래와 같은 url이 있을 때, a1_b, a2같은 값을 파싱하는 방법? "abc://host?a1_b=1&a2=2" 보통 Swift의 Codable을 사용하여 API의 응답값들을 미리 struct로 정의하여 표현하는데 url 파싱도 이렇게 처리가 가능 // Codable을 사용한 API 응답 파싱 예시 struct SomeResponse: Codable { let age: Int let name: String } 구현 목적 딥링크를 구현하다보면 여러 url을 처리해야하는데, API의 응닶값처럼 url도 Codable을 준수하는 struct모델을 만들어서 정의되도록 구현하는 것이 목적 ex) 아래와 같은 url이 있을 때, parameter 2개에 대한 모델을 따로 정의하고 싶은 경우? le..
parameter packs 개념 Swift 5.9에서 등장 Swift 5.9미만에서는 아래와같이 여러개의 parameter가 있을때 이 parameter 개수만큼 그대로 튜플로 리턴해주고 싶은 경우 일일이 써주어야하는 번거로움이 존재 parameter packs를 이용하면 아래처럼 한줄로 표현이 가능 또 기존에는 여러개의 parameter를 갖는것은 ... 으로 받을 수 있지만 return type에는 ... 연산자를 사용하지 못함 func f1(v1: Int) -> Int { v1 + 1 } func f2(v1: Int, v2: Int) -> (Int, Int) { ((v1 + 1), (v2 + 1)) } func f3(v1: Int...) -> (Int...) { // Variadic parame..
Apple ID 인증 에러 아래와 같은 에러는 Xcode에서 Apple ID 로그인이 실패했다는 의미 만약 예전에 Xcode에 로그인을 하고 그 이후에 Apple ID 패스워드를 바꾸었을때 아래같은 에러가 발생 가능 Xcode > settings (cmd + ,) > Accounts 탭 > Sign In Again을 클릭하여 다시 로그인 할 것 성공하면 빨간 에러 메시지가 사라지고 이제 정상동작
1. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - Share Extension 생성까지 2. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - UI 구현 3. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - 데이터 교환 데이터 교환 방법 데이터 교환이란? 특정 앱에서 text를 share extension으로 공유해줄때 text를 받는 방법? ex) 유튜브 앱에서 특정 글을 인스타그램으로 공유할 때, 인스타그램의 share extension 쪽에 코드 구현이 필요 인스타그램과..
animationImages로 gif 재생 방법 animationImages는 UIImageView의 프로퍼티이고 이미지 배열을 넣어서 duration, repeatCount를 설정한 후 startAnimating()으로 실행이 가능 * animationImages 자세한 개념은 이전 포스팅 글 참고 animationImages를 알면 연속으로 재생이 가능하기 때문에 gif파일을 불러와서 frameCount와 images 배열을 얻어내는것이 목적 파일을 읽어오는 방법은 애플의 ImageIO를 사용 ImageIO 관련 자세한 내용은 이전 포스팅 글 참고 ImageIO의 CGImageSource를 사용하면 frameCount와 cgImage 가져오기가 가능 예제 - gif 재생시키기 gif 이미지 준비 im..
animationImages 개념 UIImageView가 가지고 있는 UIImage 배열 값 animationImages은 UIImageView의 프로퍼티 @available(iOS 2.0, *) open class UIImageView : UIView { public init(image: UIImage?) ... open var animationImages: [UIImage]? // default is nil } 이 값을 사용하여 여러가지의 이미지들을 animationDuration동안 aimationRepeatCount만큼 반복해서 보여주기가 가능 duration, count 옵션을 설정한 후 startAnimating()하여 이미지들을 표출 ex) animationImages에 circle이미지와 ..
UniformTypeIdentifiers 개념 파일 형식 및 데이터 유형을 식별하기 위한 표준을 의미 다양한곳에서 파일 형식을 식별하고 처리가 필요한데 일종의 규격이므로 개발자들이 파일 형식을 관리하고 다루는 데 있어서 유용한 표준 사용처 앱에서 특정 데이터 포멧을 사용할 때, info.plist에 등록하는 형태로도 사용 애플의 파일 시스템 object들을 식별할 수 있는 단위로 사용 OS단에서 파일등의 데이터들을 주고받을때 확장자 구분이 필요할 경우가 있는데, 이럴 때 UTType.으로 접근 UTType의 static 프로퍼티로 선언되어 있고, id값을 얻어오려면 아래처럼 접근 id값은 일반적으로 public prefix를 붙인 형태 share sheet에서 UTType을 활용하는 예제는 이 포스팅 글..
UINavigationController 접근 주의사항 UIViewController에서 navigationController 접근 시 viewDidLoad 시점에서는 nil임을 주의 ex) VC를 navgationViewController로 push하여 viewDidLoad시점과 viewWillAppear시점에 naviagtionController 출력 class SecondVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() print("(viewDidLoad) naviVC:", navigationController) } override func viewWillAppear(_ animated: Bool) { super.vie..