Skip to content

Instantly share code, notes, and snippets.

View radude89's full-sized avatar
🏖️
Swifting

Radu Dan radude89

🏖️
Swifting
View GitHub Profile
@radude89
radude89 / vip-9-key-metrics.csv
Created August 27, 2021 06:45
vip-9-key-metrics.csv
Build Time (sec)* VIPER Time (sec)* MVP-C Time (sec)* MVP Time (sec)* MVVM Time (sec)* MVC Time (sec)*
Average Build Time (after clean Derived Data & Clean Build) 10.13 10.43 (-0.3) 10.08 (+0.05) 10.18 (-0.05) 9.65 (+0.48) 9.78 (+0.35)
Average Build Time 0.1 0.1 0.1 0.1 0.1 0.1
Average Unit Test Execution Time (after clean Derived Data & Clean Build) 18.95 19.03 (-0.08) 18.45 (+0.5) 16.52 (+2.43) 17.88 (+1.07) 12.78 (+6.17)
@radude89
radude89 / vip-8-key-metrics.csv
Last active August 27, 2021 06:41
vip-8-key-metrics.csv
Topic Data VIPER Data MVP-C Data MVP Data MVVM Data MVC Data
Number of key classes 53 53 24 (+29) 24 (+29) 14 (+39) 7 (+46)
Key Classes GatherPresenter and GatherInteractor GatherPresenter and GatherInteractor GatherPresenter GatherPresenter GatherViewModel GatherViewController
Number of Unit Tests 28 Interactor. 26 Presenter Total: 54 17 (+11) Interactor. 29 (-3) Presenter 34 (+20) 34 (+20) 34 (+20) 30 (+24)
Code Coverage of Gathers feature 100% Interactor. 100% Presenter 100% Interactor. 100% Presenter 97.2% (+2.8) 97.2% (+2.8) 97.3% (+2.7) 95.7% (+4.3)
How hard to write unit tests 1/5 3/5 (-2) 3/5 (-2) 3/5 (-2) 3/5 (-2) 5/5 (-4)
@radude89
radude89 / vip-7-key-metrics.csv
Created August 27, 2021 06:35
vip-7-key-metrics.csv
File Number of lines of code VIPER - LOC MVP-C - LOC MVP - LOC
PlayerListViewState 50 N/A 69 69
TeamSection 50 50 50 50
GatherTimeHandler 120 120 100 (+20) 100 (+20)
PlayerEditable 26 26 N/A N/A
PlayerDetailSection 61 24 (+37) N/A N/A
PlayerListModels 142 N/A N/A N/A
GatherModels 266 N/A N/A N/A
PlayerEditModels 157 N/A N/A N/A
PlayerDetailModels 95 N/A N/A N/A
@radude89
radude89 / vip-6-key-metrics.csv
Created August 27, 2021 06:31
vip-6-key-metrics.csv
File Number of lines of code VIPER - lines of code
PlayerListInteractor 141 76 (+65)
LoginInteractor 107 86 (+21)
PlayerDetailInteractor 108 30 (+78)
GatherInteractor 276 113 (+163)
ConfirmPlayersInteractor 77 145 (+68)
PlayerEditInteractor 208 121 (+87)
PlayerAddInteractor 57 38 (+19)
TOTAL 1117 609 (+508)
@radude89
radude89 / vip-5-key-metrics.csv
Last active August 27, 2021 06:20
vip-5-key-metrics.csv
File Number of lines of code VIPER - LOC MVP-C - LOC MVP - LOC MVVM - View Model LOC
LoginPresenter 60 113 (-53) 111 (-51) 111 (-51) 75 (-15)
PlayerListPresenter 173 261 (-88) 252 (-79) 259 (-86) 258 (-95)
PlayerEditPresenter 110 153 (-43) 187 (-77) 187 (-77) 155 (-45)
PlayerAddPresenter 43 75 (-32) 52 (-9) 52 (-9) 37 (+6)
PlayerDetailPresenter 81 142 (-61) 195 (-114) 195 (-114) 178 (-97)
GatherPresenter 172 234 (-62) 237 (-65) 237 (-65) 204 (-32)
ConfirmPlayersPresenter 77 131 (-54) 195 (-118) 195 (-118) 206 (-129)
PlayerTableViewCellPresenter N/A 55 (-55) N/A N/A N/A
PlayerDetailTableViewCellPresenter N/A 22 (-22) N/A N/A N/A
@radude89
radude89 / vip-4-key-metrics.csv
Created August 27, 2021 06:14
vip-4-key-metrics.csv
File Number of lines of code VIPER - lines of code
PlayerListRouter 48 48
LoginRouter 32 32
PlayerDetailRouter 31 31
GatherRouter 31 31
ConfirmPlayersRouter 31 31
PlayerEditRouter 27 27
PlayerAddRouter 27 27
TOTAL 227 227
@radude89
radude89 / vip-3-key-metrics.csv
Created August 27, 2021 06:12
vip-3-key-metrics.csv
File Number of lines of code VIPER - lines of code
AppModule 98 98
PlayerListModule 41 42 (-1)
LoginModule 41 42 (-1)
PlayerEditModule 40 41 (-1)
PlayerDetailModule 40 41 (-1)
PlayerAddModule 40 41 (-1)
GatherModule 40 41 (-1)
ConfirmPlayersModule 40 41 (-1)
TOTAL 282 387 (-105)
@radude89
radude89 / vip-2-key-metrics.csv
Last active August 27, 2021 06:09
vip-2-key-metrics.csv
File Number of lines of code VIPER Lines of code MVP-C Lines of code MVP Lines of code MVVM Lines of code MVC Lines of code
PlayerAddViewController and PlayerAddView (MVP-C & MVP) 81 68 (+13) 129 (-48) 134 (-53) 77 (+4) 79 (+2)
PlayerListViewController and PlayerListView (MVP-C & MVP) 300 192 (+108) 324 (-24) 353 (-53) 296 (+4) 387 (-87)
PlayerDetailViewController and PlayerDetailView (MVP-C & MVP) 96 74 (+22) 148 (-52) 162 (-66) 96 204 (-108)
LoginViewController and LoginView (MVP-C & MVP) 75 60 (+15) 134 (-59) 131 (-56) 96 (-21) 126 (-51)
PlayerEditViewController and PlayerEditView (MVP-C & MVP) 149 106 (+43) 190 (-41) 195 (-46) 124 (+25) 212 (-63)
GatherViewController and GatherView (MVP-C & MVP) 266 186 (+80) 265 (+1) 271 (-5) 227 (+39) 359 (-93)
ConfirmPlayersViewController and ConfirmPlayersView (MVP-C & MVP) 117 104 (+13) 149 (-32) 154 (-37) 104 (+13) 260 (-143)
TOTAL 1084 790 (-294) 1339 (-255) 1400 (-316) 1020 (+64) 1627 (-543)
@radude89
radude89 / vip-1-key-metrics.csv
Created August 27, 2021 06:01
vip-1-key-metrics.csv
File Number of lines of code VIPER lines of code
GatherProtocols 130 141 (-11)
PlayerListProtocols 106 127 (-21)
ConfirmPlayersProtocols 82 92 (-10)
PlayerEditProtocols 97 87 (+10)
PlayerDetailProtocols 84 86 (-2)
LoginProtocols 52 74 (-22)
PlayerAddProtocols 68 73 (-5)
TOTAL 619 680 (-61)
@radude89
radude89 / vip-fg-20.swift
Created August 27, 2021 05:55
vip-fg-20.swift
import XCTest
@testable import FootballGather
final class GatherPresenterTests: XCTestCase {
// MARK: - View Configuration
func testPresentSelectedRows_whenResponseHasMinutes_displaysSelectedRow() {
// given
let mockView = GatherMockView()
let sut = GatherPresenter(view: mockView)