일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UICollectionView
- 애니메이션
- Clean Code
- tableView
- clean architecture
- uiscrollview
- swiftUI
- Refactoring
- 리펙토링
- Human interface guide
- Xcode
- 리팩토링
- collectionview
- 클린 코드
- map
- HIG
- Protocol
- uitableview
- SWIFT
- 스위프트
- combine
- UITextView
- 리펙터링
- ios
- rxswift
- ribs
- MVVM
- swift documentation
- RxCocoa
- Observable
- Today
- Total
목록StoryBoard (10)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NyVTK/btrZPUAGVQc/B7rcJHL8qQnKrooKAHqz6k/img.gif)
* Storyboard로 UI 구현 기본기 목차 참고 Storyboard 장단점 장점 처음오는 개발자도 한눈에 어떤 화면들이 있는지 파악이 용이 UI 관련 내용이 코드와 분리가 되어 코드의 복잡도가 줄어드는 점 단점 협업 시 merge conflict 해결이 어려움 Storybaord를 열기만 해도 수정사항이 생기므로 git add . 할 때 구분 필요 Storyboard에 여러개의 UIViewController가 많아지면 느려지는 문제 property들을 살펴볼 때 오른쪽 Attributes inspector를 통해 하나하나씩 확인해야 하므로 섬세하게 property들을 파악하기가 코드 베이스보단 힘든 점 Storyboard Reference 개념 Storyboard안에서 reference를 두어서 다..
1. Storyboard로 UI 구현 기본기 - storyboard 장단점, Storyboard reference 개념 2. Storyboard로 UI 구현 기본기 - segue, Action Segue, Manual Segue (세그웨이) 3. Storyboard로 UI 구현 기본기 - @IBOutlet, @IBAction, UIStoryboard, instantiateViewController, 코드로 초기화 방법 4. Storyboard로 UI 구현 기본기 - Xib, Nib 개념, 커스텀 뷰
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDUZ7v/btrXEB4oZpL/KPkTmlXLBKZHZnVfdGnWS0/img.gif)
* Code base로 구현하는 방법은 이 포스팅 글 참고 구현 아이디어 UIStackView안에 UIStackView를 넣어서 구현 storyboard로 구현할때는 code base로 구현하는것보다 손이 더 가는 부분이 있으므로 따로 볼 것 UIScrollView 구현 방법만 숙지하고 있다면 매우 쉽게 접근 가능 UIScrollView 사용 방법 1) UIScrollView를 추가하면 frame layout guide와 content layout guide가 존재 frame layout guide는 UIScrollView를 잡고 constraint 시킬 때, 그 constraint가 frame layout guide로 적용 (동일한것) content layout guide는 스크롤 뷰 안에 새로운 뷰를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dDXNG5/btrmvdyHp73/r2s0ZUXyySCk5aS4eBsZdk/img.png)
1. ReactorKit - 개념 2. ReactorKit - 테스트 방법 (Storyboard 사용, IBOutlet 테스트 방법) 3. ReactorKit - `TaskList 구현`, 템플릿 (template), 비동기 처리 transform(mutation:) 4. ReactorKit - `TaskEdit 구현`, 화면전환, 데이터 전달 * 해당 코드는 ReactorKit git repository 코드를 참고하였습니다. * Unit Test가 중요한 이유, 클린 코드: https://ios-development.tistory.com/770 * Counter 예제 코드: https://github.com/JK0369/ExReactorKit/tree/BaseComponent ReactorKit 테스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZiceY/btq9hzNsBKd/uvLofS2JmjrGy00qvSV120/img.png)
아이디어 각 ViewController들은 해당 protocol들을 상속 받아서, Builder에서 해당 ViewController를 초기화 할때 정의된 함수 호출 StoryboardInstaiable 프로토콜 정의 public protocol StoryboardInstantiable { associatedtype ViewControllerType static var defaultFileName: String { get } static func instantiateViewController(_ bundle: Bundle?) -> ViewControllerType } default implementation 클래스의 이름을 얻기 위해 NSStringFromClass() 사용 class 타입을 받아서 그 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bR9wWL/btq45OtRjDI/jYCoxsz9p6KqoLKhdvhXMK/img.png)
https 통신을 허용 설정 info.plist의 "App Transport Security Settings" Allow Arbitrary Loads의 value값을 YES로 설정 WebView 생성 Storyboard에서 WebKit View생성하여 UIViewController에 추가 조건: iOS11+ 클래스 생성 import UIKit import WebKit class MyWebViewController: UIViewController { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() loadWebPage("https://www.naver.com/") } private func lo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/30mxL/btq36slCT5u/J4Xgf6q6vNU417l73yhmI1/img.png)
1. iOS 스러운, storyboard 활용 방법 (static prototype cell, segue, gesture) 2. iOS 스러운, storyboard 활용 방법 (dynamic prototype cell, unwind segue, storybaord reference) storyboard 활용 (UI, flow) 목적: code 없이 storyboard만을 이용하여 플로우, UI 구현 code없이 storyboard를 사용하는 이유: 빠른 생산성, 직관성 1번 챕터에서 storyboard로 화면을 빠르게 만들며 prototype을 잡은 후 2번 챕터에서 controller를 통해 데이터 다루는 형식 앱 구현 방식: 디자인, flow prototype -> 로직 구현 프로젝트 플레이어 목록 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buPbSQ/btq2HtN8Zg6/kwLczuvxNyQZAIP4BbltYK/img.png)
템플릿 세팅 git clone: github.com/uber/RIBs 템플릿 설치 $ cd RIBs/ios/tooling $ /install-xcode-template.sh Xcode의 템플릿 확인 튜토리얼의 RIB 트리 LoggedOut RIB 추가 * storyboard를 사용할 경우, 아래 "RIBs에서 storyboard 사용 방법" 참고 LoggedOutBuilder LoggedOutBuildable protocol을 사용하여 mock을 만들 수 있는 구성 LoggedOutInteractor LoggedOutRouting protocol로 Router와 통신 LoggedOutListener protocol은 Router와 연결되어 있으며 Router에서 부모 RIB에 데이터 전달 LoggedOu..