일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode
- collectionview
- 스위프트
- map
- Human interface guide
- uiscrollview
- swiftUI
- SWIFT
- RxCocoa
- UITextView
- Clean Code
- 리펙터링
- Protocol
- 리펙토링
- Observable
- rxswift
- uitableview
- combine
- MVVM
- 리팩토링
- Refactoring
- UICollectionView
- HIG
- clean architecture
- ribs
- 클린 코드
- tableView
- 애니메이션
- swift documentation
- ios
- Today
- Total
목록ios (1095)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c9dRH0/btrimIomcJV/pRTi8lxxoT3OC94JbyzpkK/img.gif)
UITableView에서 스크롤 이동 tableView.scrollToRow(at:at:animated:) 메서드 사용 UI적인 접근이 필요하므로 main 스레드에서 접근 @IBAction func didTapButton(_ sender: Any) { DispatchQueue.main.async { [weak self] in self?.tableView.scrollToRow(at: IndexPath(row: 77, section: 0), at: .bottom, animated: true) } } CollectionView에서 스크롤 이동 collectionView.scrollToItem(at:at:animated:) 메서드 이용 main 스레드로 접근 @objc func didTapMoveScrollB..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9y1Uc/btrifoX1iUX/pzi4IRnvKH2KBXp7T9QCfk/img.gif)
* Alamofire를 사용했을 때 정석적인 방법은 retry 방법 참고 * 커스텀 팝업 구현 방법은 해당글 참고 retry 기능 아이디어 클로저 이용: `코드에서 전달하고 사용할 수 있는 2가지의 기능을 가진 자체 블록` - 호출하기 전까지 실행 대기 상태인 특성 이용 커스텀 팝업을 부르는 곳에 retry 클로저를 넘김으로써 retry가 필요할 경우, 버튼을 누른 completion에 적용 팝업은 ViewController 계층 구조상 가장 위쪽에 위치한 인스턴스에 present하는 방식 현재 보여지는 ViewController를 찾기 위해 UIWindow의 extension으로 연산 프로퍼티 정의 visibleViewController 이름으로 외부에서 사용할 수 있도록 구현 extension UIW..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bp2aip/btrh4MehzTp/Ek2I9ugckzN9SjERavvbPK/img.gif)
애플의 아이툰즈, 애플뮤직앱 등에서 자주 등장하는 메뉴 UI UIMenu를 통해 구현 사용 방법 UIAlertController를 만들고 addAction하여 UIAlertAction을 추가하듯이, UIMenu도 동일하게 접근 UIAction인스턴스를 만들어 놓고 UIMenu생서자에 배열로 삽입하면 적용 UIAction과 UIMenu UIAction UIMenu의 element이며 action 클로저가 존재하는 클로저 UIMenu에 넣을 UIAction 인스턴스 배열 생성 lazy var menuItems: [UIAction] = { return [ UIAction(title: "다운로드", image: UIImage(systemName: "arrow.down.circle"), handler: { _ i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cgtvl4/btrhVsTUlmI/Me7XhfvgPAxCKQgu29ydt0/img.gif)
Navigation Bar 사라지게 하는 방법 Contents를 위로 올릴때는 navigationBar를 hidden시키고, 아래로 내릴때는 보이게끔 설정 "hidesBarsOnSwipe" 프로퍼티 사용 navigationController?.hidesBarsOnSwipe = true TabBar 사라지게 하는 방법 Contents를 위로 올릴때는 navigationBar를 hidden시키고, 아래로 내릴때는 보이게끔 설정 ScrollView의 델리게이트 메서드인 `scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)`사용 velocity.y가 음수: Contents를 아래로 내리는 경우 velocity.y가 양수: Contents를 위로 올리는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WN06O/btrhTK75s2T/cTm0pY8AXh5OWh5qE35Ahk/img.png)
1. Alamofire 사용 방법 - Network Layer 구현 (Moya 프레임워크처럼 사용하는 방법) 2. Alamofire 사용 방법 - 토큰 갱신 방법1 (Interceptor, adapt, retry) 3. Alamofire 사용 방법 - 토큰 갱신 방법2 (AuthenticationCredential, Authenticator, AuthenticationInterceptor) 4. Alamofire 사용 방법 - 로그 Log (EventMonitor) EventMonitor request, response 시점에 불리는 메소드가 들어있는 프로토콜 구현해야할 주된 프로퍼티, 메소드는 3가지 queue 프로퍼티 /// The `DispatchQueue` onto which Alamofire's..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NRMTI/btrhXF5vXrM/oBkpGqkdvGHxL0Q442AX5k/img.jpg)
1. Alamofire 사용 방법 - Network Layer 구현 (Moya 프레임워크처럼 사용하는 방법) 2. Alamofire 사용 방법 - 토큰 갱신 방법1 (Interceptor, adapt, retry) 3. Alamofire 사용 방법 - 토큰 갱신 (AuthenticationCredential, Authenticator, AuthenticationInterceptor) 4. Alamofire 사용 방법 - 로그 Log (EventMonitor) AuthenticationCredential, Authenticator, AuthenticationInterceptor, 기존에는 RequestInterceptor를 준수하여 adapt, retry를 구현하여 사용했지만 Alamofire 5.2부터 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbfHA1/btrhWaYLoNA/czNjMUKrwSLxD0H3HEkWS0/img.jpg)
1. Alamofire 사용 방법 - Network Layer 구현 (Moya 프레임워크처럼 사용하는 방법) 2. Alamofire 사용 방법 - 토큰 갱신 방법1 (Interceptor, adapt, retry) 3. Alamofire 사용 방법 - 토큰 갱신 방법2 (AuthenticationCredential, Authenticator, AuthenticationInterceptor) 4. Alamofire 사용 방법 - 로그 Log (EventMonitor) Interceptor란? 서버에 요청을 보내기 전에, 중간에 가로채서 어떤 작업을 한 뒤 다시 서버로 보내는 역할 Alamofire를 사용하면 RequestInterceptor 프로토콜을 준수한 클래스의 인스턴스를 request에 실어서 보내..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bBRan2/btrhUlmy8N0/K2hMecnf2esSx2Ees86Tj1/img.jpg)
1. Alamofire 사용 방법 - Network Layer 구현 (Moya 프레임워크처럼 사용하는 방법) 2. Alamofire 사용 방법 - 토큰 갱신 방법1 (Interceptor, adapt, retry) 3. Alamofire 사용 방법 - 토큰 갱신 방법2 (AuthenticationCredential, Authenticator, AuthenticationInterceptor) 4. Alamofire 사용 방법 - 로그 Log (EventMonitor) Alamofire를 이용한 Network Layer Network/Bases TargetType은 API들의 공통 Endpoint를 가지고 있는 모듈 Alamofire에 내장되어 있는 protocol인 URLRequestConvertible의..