-
제목 : iOS 애플리케이션 개발 생산성 고찰 - 빠른 퇴근을 위한 우리는 어떻게 해야할 것인가?
-
목차
- 개발 생산성 고찰
- 개인의 개발 환경 개선
- 프로젝트 구조 개선
- 프로젝트 환경 개선
- 마치며
- 개발 생산성 고찰 - 우리는 왜 정시 퇴근을 지키지 못하는가?
제목 : iOS 애플리케이션 개발 생산성 고찰 - 빠른 퇴근을 위한 우리는 어떻게 해야할 것인가?
목차
| enum DataState<V, E: Error> { | |
| case idle | |
| case initialLoading case reLoading (V) | |
| case retryLoading (E) | |
| case success (V) | |
| case failure(E) | |
| case paging (V) | |
| case pagingFailure(V, E) | |
| } |
| // | |
| // ContentView.swift | |
| // Example of using matchedGeometryEffect in iOS 13 code | |
| // matchedGeometryEffect example code taken and adapted from : | |
| // https://sarunw.com/posts/a-first-look-at-matchedgeometryeffect/ | |
| // | |
| // Created by Emil Pedersen on 16/10/2020. | |
| // | |
| struct ContentView: View { |
| import RIBs | |
| import RxSwift | |
| protocol HomeRouting: ViewableRouting {} | |
| protocol HomePresentable: Presentable { | |
| var listener: HomePresentableListener? { get set } | |
| func update(state: HomeViewState) | |
| } |
| import UIKit | |
| import AXSnapshot | |
| class ViewController: UIViewController { | |
| override func viewDidLoad() { | |
| super.viewDidLoad() | |
| // Do any additional setup after loading the view. | |
| do { | |
| let label = UILabel(frame: .init(x: 100, y: 100, width: 100, height: 100)) |
| import _Concurrency | |
| import Combine | |
| import Dispatch | |
| import Foundation | |
| // MARK: General | |
| struct SomeError: Error {} | |
| extension AnyPublisher { |
| // | |
| // NSObject+setValuesForKeysWithJSONDictionary.h | |
| // | |
| // Created by Tom Harrington on 12/29/11. | |
| // Tweaked by Mark Dalrymple | |
| // | |
| // Copyright (c) 2011 Atomic Bird, LLC. All rights reserved. | |
| // | |
| #import <Foundation/Foundation.h> |