일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swiftUI
- SWIFT
- combine
- ios
- 리펙토링
- RxCocoa
- UICollectionView
- MVVM
- tableView
- clean architecture
- uitableview
- Protocol
- 리팩토링
- 애니메이션
- Refactoring
- Clean Code
- 리펙터링
- Observable
- 스위프트
- swift documentation
- Human interface guide
- Xcode
- 클린 코드
- HIG
- rxswift
- UITextView
- map
- ribs
- uiscrollview
- collectionview
- Today
- Total
목록class (6)
김종권의 iOS 앱 개발 알아가기
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영역의 ..
value type, reference type swift에는 2가지 타입이 존재 value type: struct, enum, collection, 기본타입(Int Double, Bool ...) reference type: class, function, closure 두 타입의 차이 - copying value tpye - 카피할때 데이터의 복사본을 생성 reference type - shared instance를 생성하여 같은 인스턴스를 바라보는 참조값을 생성 cf) value type을 사용하면, thread간 의도하지 않은 공유로부터 안전한 프로그래밍이 되어, 로버트 C. 마틴의 클린 코드에서 얘기하는 functional programming 핵심은 데이터의 불변성에 도움 메모리 공간 할당 일반..
클린한 클래스 작성하는 방법 * 아래에서 해당 개념 설명 예정 SRP 준수: 클래스의 변경 이유는 한가지가 되도록 설계 Cohesion 준수: 인스턴스 변수를 최소화 클래스는 작게 만들 것 함수에서의 클린 코드 내용과 같이 클래스 역시도 작아야 가독성, 유지보수에 이점이 있는 코드 함수에서는 내용의 길이를 행의 수 20줄도 긴 수치라고 했었지만, 클래스는 맡은 책임의 개수를 보고 판단 클래스의 책임의 개수 판단 메소드의 개수는 5개 이하가 적정 클래스 이름은 해당 클래스 책임을 기술하는 최소의 범위로 작성 (Manaer, Processor가 붙으면 해당 클래스에서 여러 책임을 떠안겼다는 증거) ex) 책임이 많은 클래스 WRONG - 메소드의 개수는 5개 이지만, SuperDashboard이름에서 Sup..
파싱을 위한 HTML 기초 HTML 구성 ... body 태그안에 자주 사용되는 태그 css: 디자인 javascript: 동적인 부분을 변경시켜 주는 것 css의 id와 class 개념 id와 class의 차이점은 우선순위: id > class > 태그 class 클래스1 예제 h3인 클래스1 예제 id ID1 선택자 가장 중요한 개념 id /class / tag / attribute 구분 attribute는 tag안의 값 인 경우, href의 정체는 attribute SwiftSoup의 Element속성 중 id, class, tag 는 모두 element.select()로 접근하는 반면, attribute는 element.attr()로 접근하는 것을 주의 SwiftSoup 프레임워크 준비 pod '..
struct와 class 중에서 어떤 것을 사용할지 정하는 기준 상속이 필요하지 않고 모델이 크지 않으면 struct 사용 json파싱할 경우 struct사용 serialize해서 전송하거나 파일로 저장할 일이 있다면 class사용 Obj-C에서도 사용하려면 class사용 * serialize: 객체를 직렬화 하여, 전송 가능한 파일 형태로 만드는 것 struct call-by-value: closure에 의해 capture되는 경우도, reference copy stack memory할당(빠른 속도) scope base lifetime: 컴파일 타임에 complier가 언제 메모리를 할당/해제할지 알고 있음 data locality: 캐시 히트율이 높음 Codable 프로토콜을 통해 JSON ..
https://ios-development.tistory.com/114 1. 기본 용어 1) View Hierachy - view들 사이의 계층 관계가 존재 - Superview : 뷰의 계층 구조상 다른 뷰를 포함(가장 뒤에 있는 뷰) - Subview : Superview에 포함된 뷰(가장 앞에 있는 뷰) 2) 뷰의 구성 - Root View(Contentes View) : 뷰 계층 구조 최상위에는 항상 하나의 뷰가 존재 3) Container View Controller (contents view controller가 아닌, 컨트롤러들의 연결관계를 도와주는 역할) - 자식 뷰 컨트롤러 : 컨테이너 뷰 컨트롤러의 제어하에 있는 뷰 컨트롤러 - 루트 뷰 컨트롤러 : 컨테이너 뷰 컨트롤러와 직접 연결된 ..