-
제목 : 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> |
// | |
// Runtime.swift | |
// Swift Runtime [Swift 4] | |
// | |
// The MIT License (MIT) | |
// | |
// Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa. | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a copy | |
// of this software and associated documentation files (the "Software"), to deal |