| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- RxCocoa
- rxswift
- Refactoring
- MVVM
- 클린 코드
- UITextView
- Observable
- Protocol
- 리팩토링
- HIG
- 스위프트
- 애니메이션
- scrollview
- uitableview
- uiscrollview
- Human interface guide
- swift documentation
- swiftUI
- clean architecture
- 리펙토링
- ios
- map
- SWIFT
- combine
- tableView
- collectionview
- UICollectionView
- Xcode
- ribs
- Clean Code
- Today
- Total
목록ios (1133)
김종권의 iOS 앱 개발 알아가기
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..
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", "..
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..
cf) collectionView를 이용한 수평 스크롤 뷰: https://ios-development.tistory.com/632 [iOS - swift] CollectionView(컬렉션 뷰) - 수평 스크롤 뷰 (UICollectionViewFlowLayout) 1. custom layout이 아닌 UICollectionViewFlowLayout 사용한 방법 2. UICollectionViewFlowLayout을 이용한 CarouselView (수평 스크롤 뷰) 3. custom layout을 이용한 UICollectionView CollectionView에 사용.. ios-development.tistory.com 구성 ScrollView 안에 StackView 추가 StackView안에 Butt..
Error Handling 개념: 프로그램의 오류 조건에 응답하고 복구하는 프로세스 Swift에서는 런타임에 복구 가능한 오류를 다음 방법으로 처리 throwing, catching, propagating, manipulating Throwing Error (에러 던지기) Swift에서의 오류는 Error protocol을 conform하는 값으로 정의 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } Error Handling 함수에서 오류가 발생하면 프로그램의 흐름이 변경되므로 코드에서 오류가 발생할 수 있는 위치를 빠르게 식별해야 하는데, 이 ..
