일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ribs
- RxCocoa
- 리팩토링
- 리펙토링
- Observable
- Refactoring
- MVVM
- swift documentation
- Human interface guide
- 애니메이션
- SWIFT
- combine
- 클린 코드
- Protocol
- HIG
- clean architecture
- UICollectionView
- Xcode
- UITextView
- map
- ios
- rxswift
- Clean Code
- 스위프트
- uiscrollview
- tableView
- 리펙터링
- swiftUI
- collectionview
- uitableview
- Today
- Total
목록JSON (8)
김종권의 iOS 앱 개발 알아가기
* 기본적인 Codable, Decode, Encode 개념은 이곳 참고 * 관련 포스팅 글 json, codable, nestedContainer(keyedBy:forKey:), Decoding 중첩 모델 처리 방법 (디코딩) json, codable, nestedContainer(keyedBy:forKey:), Encoding 중첩 모델 처리 방법 (인코딩) json, codable, nestedContainer(keyedBy:forKey:), KeyedCodable로 중첩 모델 처리 방법 중첩 모델을 flatten 모델로 정의 방법 { "user_id": "jake", "blog_info": { "name": { "first": "iOS 앱 개발 알아가기", "second": "SwiftUI 앱 개..
필수 개념, Data 형 메모리 안의 바이트가 저장될 수 있는 `바이트 버퍼` `바이트 버퍼`: 운영체제의 커널이 관리하는 시스템 메모리를 직접 사용할 수 있기 때문에 데이터의 저장, 로드가 가능 swift는 URLSession으로 dataTask를 만들어, 네트워크 호출을 하면 응답으로 Data형을 받는데, 이는 저장, 로드, 변환이 쉽기 때문에 Data로 받는 것 자주 사용되는 것은 json데이터를 struct형으로 변경하거나, 반대로 struct형에서 json으로 변경할 때 먼저 `Data`형으로 변경한 다음 원하는 데이터형으로 변경하여 사용 ex) UserDefaults에 struct 자료형을 Encoder, Decoder를 이용하여 저장하는 방법: https://ios-development.ti..
JSON 내용, codable 모델 생성 클라이언트에서 데이터를 받는 방법은 .swift파일 내에나 plist에 세팅하는 방법이 있지만, 일반적으로 웹에서 json파일을 받아서 사용하는 방법이 많으므로 mock데이터도 json파일로 이용 json 데이터 작성 : quicktype에서 생성하여, json 내용 입력 시 자동으로 codable로 변경되도록 이용 iamge데이터는 따로 assets을 추가하고 json에는 이미지 이름만 명시 (실제 데이터는 url 존재하지만 mock 용도) // 입력한 json [ { "name": "Jake", "address_info": { "contry": "한국", "city": "서울" }, "image": "01" }, { "name": "Bob", "address_..
아래와 같은 json을 파싱할 때, carTypeCode를 파싱하여 swift에서 구별할 수 있는 방법? { "responseCode":0, "message":"COMMON_OK", "result":[ { "carTypeCode":"CTCD00001", "carName":"model x", "carCompany":"tesla" }, { "carTypeCode":"CTCD00002", "carName":"morning", "carCompany":"kia" } ] } 일반적인 carTypeCode // MARK: - CarResponse struct CarResponse: Codable { let responseCode: Int let message: String let result: [carResult] ..
Codable이란? Encodable + Decodable 두 속성 모두 가지고 있는 타입 Encodable: 스위프트의 struct구조의 "객체"를 "json형식"으로 변한 하는 것 (Binary Data로 변환) Decodable: "json형식"을 "객체"로 변환 필요한 이유: 서버와 통신할 경우, 객체 그대로를 보내지 / 받지 않고, Binary Data로 통신 Encode swift의 struct객체 -> Binary Data (json형) struct정의 struct Person: Codable { var name: String var age: Int var birthDate: Date } Encode_ Binary데이터 변환 // create let person = Person(name: "..
1. 세팅 1) pod 'RxAlamofire' 설치 2) 앱 내에서 ATS설정 (안할시 request불가) 2. 사용 1) json request 주의 할 점 : disposeBag을 viewDidLoad에 놓으면, viewDidLoad가 사라질 시, dealllc되므로 response되기 전에 종료됨 let disposeBag = DisposeBag() // 전역변수에 두지 않으면, response되기 전에 종료 // 먼저 ATS 설정 할 것 let urlString = "http://friendservice.herokuapp.com/listFriends" json(.get, urlString) .debug() .subscribe(onNext: { print($0) }) .disposedBag(by:..
* 통신은 주로 Alamofire프레임워크를 사용하지만, 기본기를 위해서 Foundation 프레임워크로 구현 해보기 1. ATS설정과 API문서 1) HTTP통신인 경우 ATS(App Transport Security)설정 - 허용되는 사이트를 설정 App Transport Security Settings 추가 -> 하위 탭에서 Allow Arbitrary Loads 추가 -> YES로 변경 - 특정 사이트만 허용하는 방법 (1)App Transport Security Settings -> Exception Domains 하위 항목에 아이템 생성 후 Dictionary로 설정 (2)New Item이라고 있던 곳을 "www"나 서브 도메인 제외하고 주소를 입력 (3) 하위 항목에 다음 세 가지 아이템 추..
1. 네트워크에 대한 기본 지식 1) 통신을 위한 프로그래밍 방향 - 소켓 방법 : 명시적으로 끊을 떄까지 지속해서 연결을 유지하는 방법 (TCP, UDP를 통한 화상통화, RPG 게임) - 비연결성 방법 : HTTP/HTTPS * 앞으로 비연결성 방법에 관한 내용만 진행 2) 웹 서비스의 종류 (웹 서비스 : 웹 페이지 같은 것이 아닌 데이터만을 주고받을 수 있도록 설계된 모듈) - SOAP(Simple Object Access Protocol) : HTTP, HTTPS, SMTP등의 프로토콜들을 통해 XML(eXtensibal Markup Language)형태의 메시지 주고 받는 것 - RESTful (Representational State Transfer) : HTTP프로토콜을 통해 조금더 쉬운 ..