| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 클린 코드
- Observable
- Human interface guide
- uiscrollview
- uitableview
- clean architecture
- scrollview
- ribs
- Clean Code
- SWIFT
- 리팩토링
- 리펙토링
- 애니메이션
- RxCocoa
- Xcode
- swiftUI
- UICollectionView
- combine
- HIG
- map
- tableView
- swift documentation
- 스위프트
- MVVM
- Protocol
- rxswift
- collectionview
- Refactoring
- ios
- UITextView
- Today
- Total
목록ios (1133)
김종권의 iOS 앱 개발 알아가기
API 테스트 사이트 참고 무료 API 테스트 사이트: https://reqres.in/ 위 링크 클릭, 복사: https://reqres.in/api/users?page=2 데이터 형식이 page, per_page, total, total_pages, data 형식인 경우 대응 - 두 데이터 사용 예정 Moya 프레임워크 네트워크 기본인 URL Session 개념 참고 moya 프레임워크 개념 참고 다운 > swift Package Manager > https://github.com/Moya/Moya.git Network 설계 주요 4가지 파일 NetworkLoggerPlugin: 네트워크 통신 시 MoyaProvider라는 객체를 통해 접근하는데, MoyaProvider의 파라미터 값으로 plug..
일반적인 Cache 방법 memory cache(메모리에 존재하는지 체크) 없다면 > disk cache(디스크에 존재하는지 체크) 있으면 Memory에 저장 후 캐싱, 없다면 > 서버통신 memory cache 방법 중 하나는 NSCache 사용 disk cache는 보통 FileManager객체를 사용하여 데이터를 파일 형태로 디스크에 저장하거나 UserDefaults, CoreData 사용 NSCache란? key-value쌍을 임시로 저장하는데 사용되는 변경 가능한 Collection NSCache는 자체적으로 시스템 메모리를 너무 많이 사용하지 않도록 자동으로 제거되는 정책을 소유 다른 응용 프로그램에서 메모리가 필요한 경우 이러한 정책은 캐시에서 일부 항목을 제거하여 메모리 사용 공간을 최소화..
Cell 선택 UI 설정 방법 custom cell이 있다면 custom cell의 setSelected(:animated:) 함수에서 사용 tableView가 표출될때 초기에는 모든 cell이 선택되지 않은 상태 하나를 선택하면 나머지 cell이 선택되지 않은 상태가 되고 해당 cell 하나만 선택되게끔 내부적으로 동작 // 선택, 미선택에 따라 cell의 테두리 색깔을 다르게 하는 부분 // UITableViewCell을 상속받은 customCell안에서 override override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) if selected { conten..
Attributed text 개념 UILabel은 attributedText 프로퍼티를 가지고 소유 이름 그대로 Text에 '속성'값이 존재하는 프로퍼티 UILabel의 text에 font, color같은 속성값을 지정할수 있다는 의미 사용 방법 NSAttributedString 객체를 만들어서 프로퍼티에 대입 let fullText = label.text ?? "" let attribtuedString = NSMutableAttributedString(string: fullText) 대입 하기전에 font, color 속성값을 부여 > font, color속성값을 특정 문자열에 부여하기 위해서는 NSRange값을 이용 let range = (fullText as NSString).range(of: "i..
iOS 푸시 원리 앱 > 애플 서버에 토큰 요청 > 앱에서 토큰 수신 > push 서버에 토큰 등록 > push서버에서 가공된 내용 + token 앱에서 수신 > 애플서버에 다시 전송 > 애플서버에서 앱으로 최종 푸시 전송 앱에서 push를 “p8 or .p12 certificate 파일” 인증서와 함께 애플서버에 HTTP로 토큰 달라고 요청 애플 서버는 인증서, 프로파일을 받고 인증 후 토큰 응답 받은 토큰값과 메시지를 앱에서 push 서버로 POST방식으로 요청 push서버에서 POST요청을 받아 내용을 가공 > 애플 서버에 요청 (push서버에서는 APNs키가 등록되어 있어야함) 애플 서버는 토큰을 확인하고 토큰의 주인에 해당하는 아이폰 기기에 push 전송 앱 가동 APNs(Apple Push N..
일반 주석 vs 퀵 헬프 주석 일반 주석: // 퀵 헬프 주석: /// 퀵 헬프 Xcode에서 레퍼런스 문서의 요약된 내용을 보여주는 기능 option + 왼쪽 마우스 클릭 cmd + option + 3 퀵 헬프에 사용되는 주석 /// 사용 단축키: cmd + option + / /// 해당 클래스는 예제 클래스 class MyClass { let myProperty: Int init(myProperty: Int) { self.myProperty = myProperty } } 사용하는쪽에서 주석 확인 description삽입: > 사용 /** (해당 부분은 summary) 해당 클래스는 예제 클래스 > (해당 부분은 description) */ class MyClass { let myProperty: I..
MyDynamicView의 내부 컨텐츠(text)가 변할때 마다 컨텐츠를 감싸고 있는 view도 동시에 조정 class ViewController: UIViewController { lazy var myView: MyDynamicView = { let view = MyDynamicView() view.text = "123" return view }() override func viewDidLoad() { super.viewDidLoad() view.addSubview(myView) myView.center = view.center DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { self.myView.text = "1" self.myView.center ..
UILabel의 이해 UILabel은 초기에 frame.size를 지정해주지 않으면 width, height가 0으로 세팅 text의 내용이 있더라도 0으로 존재 // 텍스트에 무엇이 존재하던지 frame.size 값은 0으로 초기화 class ViewController: UIViewController { lazy var titleLabel: UILabel = { let label = UILabel() label.textColor = .black label.text = "초기 텍스트" return label }() override func viewDidLoad() { super.viewDidLoad() titleLabel.center = view.center print(titleLabel.frame.si..
