일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Refactoring
- swiftUI
- 리펙터링
- 리펙토링
- Human interface guide
- 리팩토링
- HIG
- ios
- map
- combine
- rxswift
- Protocol
- Observable
- UICollectionView
- Clean Code
- collectionview
- SWIFT
- RxCocoa
- UITextView
- 애니메이션
- uiscrollview
- 클린 코드
- ribs
- Xcode
- 스위프트
- clean architecture
- tableView
- swift documentation
- uitableview
- MVVM
- Today
- Total
목록분류 전체보기 (1640)
김종권의 iOS 앱 개발 알아가기
1. 이미지 리사이징 - ImageIO, ImageSource를 활용한 이미지 리사이징 개념 (CGImageSourceCreateThumbnailAtIndex, "Terminated due to memory") 2. 이미지 리사이징 - ImageIO, ImageSource를 활용한 이미지 리사이징 구현 (CGImageSourceCreateThumbnailAtIndex) 3. 이미지 리사이징 - CGImageSourceCreateThumbnailAtIndex와 이미지 회전 처리 옵션 (#CGDictionary) 지난내용) ImageSource를 이용한 이미지 리사이징 ImageSource 개념 ImageSource는 ImageIO모듈에 있고 file에서부터 I/O를 시도하고, ImageSource 이 이미..
1. 이미지 리사이징 - ImageIO, ImageSource를 활용한 이미지 리사이징 개념 (CGImageSourceCreateThumbnailAtIndex, "Terminated due to memory") 2. 이미지 리사이징 - ImageIO, ImageSource를 활용한 이미지 리사이징 구현 (CGImageSourceCreateThumbnailAtIndex) 3. 이미지 리사이징 - CGImageSourceCreateThumbnailAtIndex와 이미지 회전 처리 옵션 (#CGDictionary) 이미지 리사이징 (다운 샘플링) 보통 이미지 리사이징을 할 때 가장 단순하게 수행하는 방법은 UIGraphics를 사용하는 방법 UIGraphics를 사용한 이미지 리사이징 자세한 개념은 이전 포스..
deprecated 알림 표시 특정 메서드가 리펙터링 되거나 버전이 증가한 경우, 기존 메서드 사용을 지양시키고 싶은 경우? @avaialbe(*, deprecated)를 사용 a() 메서드를 deprecated 알림을 주고, b() 메서드를 실행시키고 싶은 경우? class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() a() } func a() { } func b() { } } @available(*, deprecated, message:) 키워드를 사용 @available(*, deprecated, message: "b()를 사용해주세요.") func a() { } 만약 이름만 변경된 메서드가 ..
용어 *메서드: 객체가 가지고 있는 하나의 행위 *함수: 객체없이 단독으로 있는 하나의 기능 (* 이 글에서는 편의상 메서드도 함수로 지칭) 함수의 파라미터 리펙토링 함수의 정의는 하나의 일을 하는 기능 단위로 볼 수 있다는 것은 유명한 의미 하지만 함수에서 인수와 파라미터를 사용할 땐 그저 함수 안에서 필요한 것을 넣는 경우가 존재 가장 위험한 코드는 함수 파라미터에 또 다른 struct나 class타입을 넣는 것 ex) 주식 정보 제공 앱을 만들 때, Candle이라는 구조체를 사용하는 경우 calculateMiPriceString 함수에서 candle 인스턴스를 받아서 candle안의 메서드를 호출하여 특정 문자열을 가져오는 함수 import UIKit struct Candle { var open:..
UITextView 입력 중 위로 스크롤 되는 현상 UIStackView를 사용하여 리스트 형태의 뷰를 보여줄 때 중간에 UITextView가 있다면 버그가 발생 뷰형태: UIScrollView안에 UIStackView을 넣고, 이 스택뷰에 UITextView 넣어서 리스트 형태의 뷰를 만든 형태 (UITextView의 isScrollEnabled는 false로 설정) ex) 뷰 형태 import UIKit class ViewController: UIViewController { private let scrollView = UIScrollView() private let stackView = UIScrollView() private let textView = UITextView() private let ..
adjustsImageWhenHighlighted 개념 iOS 16에서 deprecated되었지만, 해당 옵션 사용하면 적용됨 UIButton에 이미지를 set해주고 탭하 면 아래처럼 dimmed효과가 적용되는데 adjustsImageWhenHighlighted 옵션이 디폴트 true로 잡혀있기 때문 private let button = { let button = UIButton() let image = UIImage(named: "circleButton") button.setImage(image, for: .normal) button.addTarget(self, action: #selector(handleDidTapButton), for: .touchUpInside) button.translatesAu..
* 업데이트 된 최신글: https://ios-development.tistory.com/1565 UITextView 입력 중 위로 스크롤 되는 현상 UIStackView를 사용하여 리스트 형태의 뷰를 보여줄 때 중간에 UITextView가 있다면 버그가 발생 뷰형태: UIScrollView안에 UIStackView을 넣고, 이 스택뷰에 UITextView 넣어서 리스트 형태의 뷰를 만든 형태 ex) 뷰 형태 import UIKit class ViewController: UIViewController { private let scrollView = { let v = UIScrollView() v.translatesAutoresizingMaskIntoConstraints = false return v }(..
UITextInputDelegate 개념 텍스트 입력에 대한 델리게이트 UITextView와 UITextField가 가지고 있는 delegate iOS 3.2+에서 제공 코드로는 inputDelegate로 접근 selectionWillChange: textFIeld나 textView 글자를 눌러서 선택했을때 바로 직전 호출 selectionDidChange: textFIeld나 textView 글자를 눌러서 선택하거나 드래그했을때 selected range값이 업데이트된 후 호출 주의) text 자체가 change되는 이벤트들은 문서와는 다르게 실제로 코딩해보면 호출 x textWillChnage: text가 변경되기 직전 호출 textDidChnage: text가 변경되고난 후 호출 textField...