일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxCocoa
- 리펙터링
- swift documentation
- 애니메이션
- 리펙토링
- ribs
- 스위프트
- 리팩토링
- map
- Xcode
- SWIFT
- UITextView
- Refactoring
- HIG
- MVVM
- uiscrollview
- Protocol
- Human interface guide
- Observable
- uitableview
- tableView
- 클린 코드
- rxswift
- clean architecture
- ios
- Clean Code
- collectionview
- combine
- UICollectionView
- swiftUI
- Today
- Total
목록ios (1095)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHGj7M/btq9ZqVGMtc/Xddc7uEF7P5P3lMe1ZKkmk/img.gif)
1. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout 2. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout을 이용한 CarouselView (수평 스크롤 뷰) 3. CollectionView (컬렉션 뷰) - custom layout (grid, pinterest 레이아웃 구현) 4. CollectionView (컬렉션 뷰) -실전 사용 방법 (FlowLayout, CustomLayout, binary search, cache) CollectionView와 UICollectionViewLayout 개념 포인트 prepare: 레이아웃 작업이 발생하려고 할 때 UIKit이 해당 메서드 호출 collectionViewC..
Extensions 기존 class, struct, enum, protocol에 새로운 기능 추가 추가 가능한 것 computed property instance method 새로운 init sucscript 새로운 nested type extension - Computed Property 주의: stored property는 불가 literal값에도 extension이 가능 extension Double { var km: Double { return self * 1_000.0 } var m: Double { return self } var cm: Double { return self / 100.0 } var mm: Double { return self / 1_000.0 } var ft: Double {..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cIuIAM/btq9Reazt1i/eY85QKq3mkeGmTykqgpmcK/img.png)
GradientView UIView를 상속받아서 구현 layer.addSublayer로 CAGradientLayer 객체를 추가한 형태 특정 layout 또는 특정 component위에 gradientView 객체를 올려서 사용 isUserInteractionEnabled = false인 상태로 터치 이벤트는 responder chain을 통해 sublayer에 넘기도록 설정 GradientView 구현 BaseView 정의 class BaseView: UIView { override init(frame: CGRect) { super.init(frame: frame) configure() } @available(*, unavailable) required init?(coder: NSCoder) { fa..
Nested Types 유형의 정의 내에서 enum, class, struct를 중첩하여, 순수한 타입으로 한번더 타입으로 정의하는 것 예시 Suit: 네 개의 일반적인 게임 카드 설명 Rank: 대부분의 카드는 한가지의 값을 갖지만 에이스 카드에는 두 개의 값이 있다는 것을 표현 struct BlackjackCard { // nested Suit enumeration enum Suit: Character { case spades = "♠", hearts = "♡", diamonds = "♢", clubs = "♣" } // nested Rank enumeration enum Rank: Int { case two = 2, three, four, five, six, seven, eight, nine, te..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8vnkx/btq9R5SrgPH/Fyip2425XLPUBzjKf8MZc0/img.png)
1. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout 2. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout을 이용한 CarouselView (수평 스크롤 뷰) 3. CollectionView (컬렉션 뷰) - custom layout (grid, pinterest 레이아웃 구현) 4. CollectionView (컬렉션 뷰) -실전 사용 방법 (FlowLayout, CustomLayout, binary search, cache) CollectionView에 사용될 mock data 준비 struct CollectionViewData { static let data = ["1", "2", "3", "4", "5", "..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wOncu/btq9I3mOtEa/dsr0O345LQm2yfDS96lvr1/img.gif)
PageViewController 구현 원리 ViewController가 들어있는 배열을 준비 첫번째 ViewController를 PageViewController에 set 초기화 나머지 ViewController 전환은 DataSource, Delegate에서 index값을 바꿔가며 적용 PageViewController 구현 PageViewController위쪽에 위치할 NavigationView 정의 // ViewController.swift class ViewController: UIViewController { lazy var navigationView: UIView = { let view = UIView() view.backgroundColor = .lightGray return view }..
Type Casting instance의 유형을 확인하거나 해당 instance를 자체 클래스 계층 구조에서 superclass또는 subclass로 처리하는 방법 연산자는 두가지: is와 as Type 확인 is연산자 사용: 좌측엔 instance, 우측엔 type class MediaItem { var name: String init(name: String) { self.name = name } } class Movie: MediaItem { var director: String init(name: String, director: String) { self.director = director super.init(name: name) } } class Song: MediaItem { var artist..
* 기초: Sync vs Async vs Serial vs Concurrency 개념 Concurrency Swift는 비동기 및 병렬 코드 진행을 지원 Async코드는 일시 중단되었다가 나중에 다시 시작할 수있지만 한 번에 프로그램의 한 부분만을 실행 ex) 앱을 일시 중단 후 다시 시작하면 UI업데이트와 같은 작업을 진행하면서 네트워크를 통해 데이터를 가져오는 작업 swift에서의 Concurrency: await, async swift가 아닌 다른 언어에서는 Concurrency를 추가하면 디버그가 더 어렵게 만드는 상황이 발생 Swift의 언어 수준에서 지원하는 async, await를 사용하면 컴파일 시간에 Concurrency에 관한 문제도 파악 가능 Async 함수 정의 및 호출 (async..