-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathproject.pbxproj
1457 lines (1443 loc) · 89.8 KB
/
project.pbxproj
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
2475E0186789F98C20F6C5C2 /* AnyError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E7E905777169DA3AAA02 /* AnyError.swift */; };
2475E04BEA86BF4B81C721C1 /* sample.png in Resources */ = {isa = PBXBuildFile; fileRef = 2475E5B4D098FE6945B3F148 /* sample.png */; };
2475E0DEFBA1DD69DC76DED1 /* ReverseNavigatorStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E0F037F9F0B746ED4024 /* ReverseNavigatorStub.swift */; };
2475E11646D66F92179D6C8A /* StargazersNavigationViewBindingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475ED90991276AE1EA74B1D /* StargazersNavigationViewBindingTests.swift */; };
2475E1671F707BB3BDBC8D9E /* PagedElementCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EF0F98ED6955B0639447 /* PagedElementCollection.swift */; };
2475E184C491ECB5D4520C4D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2475EDAB59CE5A5E99A03E61 /* Assets.xcassets */; };
2475E185582999DF1C38C9CB /* StargazersModelSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E66BA53E2A693A2E8904 /* StargazersModelSpy.swift */; };
2475E1A9256AB42E87A318F1 /* StargazersTableViewInitializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E39CF8EED23409B486F5 /* StargazersTableViewInitializer.swift */; };
2475E1A99BDA436628DAEAB6 /* UserScreenRootView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2475E2BF26647D84452771BC /* UserScreenRootView.xib */; };
2475E224DD203C31C7BC3E73 /* NavigatorStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E915740D6D1026AC1FBD /* NavigatorStub.swift */; };
2475E22FF4028A05BE94EE68 /* ModalDissolverSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E0F2F3491B3113475005 /* ModalDissolverSpy.swift */; };
2475E236C502DE85CBD66191 /* PageEndDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E8DB658BBC471DC6772E /* PageEndDirection.swift */; };
2475E23C9236380DAFE3DD39 /* RootNavigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EE70EA9C3C6D4904B8D0 /* RootNavigator.swift */; };
2475E241A349C78369EB1CA4 /* StargazersRepositoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E89DAFF095A125B23BCC /* StargazersRepositoryTests.swift */; };
2475E245261C4C66704C6FF4 /* PageRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA53D827463354DB65F8 /* PageRepository.swift */; };
2475E270CB78E60D2722A5FB /* GlobalModalPresenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EB3C1C05AA82BEB7602A /* GlobalModalPresenterTests.swift */; };
2475E29201B50EDF398DA667 /* InfiniteScrollTriggerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E424E5349A6737062E54 /* InfiniteScrollTriggerTests.swift */; };
2475E292C69B317962F2EFCD /* EventSimulator+UIRefreshControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E954DD31B11C6538425D /* EventSimulator+UIRefreshControl.swift */; };
2475E29425D694851962917D /* ModalPresenterSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9B6E1BD02A84A90344A /* ModalPresenterSpy.swift */; };
2475E296D4A45CC8EF30F8E8 /* GitHubApiClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9F9C6BB7D41F55161A7 /* GitHubApiClient.swift */; };
2475E29D7126A3A5C14068E2 /* TitleHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EBAD39EB17C436158BD2 /* TitleHolder.swift */; };
2475E2A5D76F98AD1C3F5213 /* StargazersScreenRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA1E8734537D888DE184 /* StargazersScreenRootView.swift */; };
2475E2F612DCE36A68D38B6F /* PerformanceParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EB6192AC0F8ACE008FB2 /* PerformanceParameter.swift */; };
2475E2F948F045B2F1CCAE48 /* GitHubApiEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC3A6667F8553C23CB2C /* GitHubApiEndpoint.swift */; };
2475E304113D0E8BC9173F20 /* PageEndDetectionStrategyStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EFABBE5984119A4C5898 /* PageEndDetectionStrategyStub.swift */; };
2475E31C18082F4F72771E3F /* PagingCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E7DF6C438F3C12F13C5A /* PagingCursor.swift */; };
2475E35401AF1A0DDB75BCFB /* user.json in Resources */ = {isa = PBXBuildFile; fileRef = 2475E6654583784DB2FAC099 /* user.json */; };
2475E3569B9E38B438700E21 /* R.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EBE7B5C344258DA2B9B8 /* R.generated.swift */; };
2475E3B83DF7E60CAB5CE903 /* StargazersRefreshViewBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E5BE5363F823A04BC55E /* StargazersRefreshViewBinding.swift */; };
2475E3B8FE79FBCACB7CB294 /* StargazersNavigationViewBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EB1E4113B6703D2B9BD0 /* StargazersNavigationViewBinding.swift */; };
2475E3C5C1ABB0715F942EDC /* EventSimulator+UIScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E3444C1BA27DA348423B /* EventSimulator+UIScrollView.swift */; };
2475E3E1203B552B5CF44718 /* ColorCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E2C5369BE1C2A594873E /* ColorCatalog.swift */; };
2475E423E64E77274E37BBF2 /* StargazersInfiniteScrollControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E4A20AF63001833F7647 /* StargazersInfiniteScrollControllerTests.swift */; };
2475E4258308ED2D3361DB75 /* UserRepositoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E44FF94942A600769656 /* UserRepositoryTests.swift */; };
2475E46194E77FB962FFBD72 /* UserScreenRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E3BBDF2F0CD7483117FD /* UserScreenRootView.swift */; };
2475E48B01B8DDA59B303872 /* ScrollViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E2881D2B2457DC9309CB /* ScrollViewFactory.swift */; };
2475E493073E5E0575023263 /* UserModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E917CEDA9911B0F9A54E /* UserModel.swift */; };
2475E4B7ACC7D275F796758F /* UrlOpenerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E40BE1B2CE78FAF70D47 /* UrlOpenerStub.swift */; };
2475E4BB167009A923C75311 /* StargazersRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E62484C74FD0B910C6F5 /* StargazersRepository.swift */; };
2475E4BC08DE38E3F59831D4 /* RemoteImageSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475ECD1683C52FD98B325A2 /* RemoteImageSource.swift */; };
2475E4D36D64EDC0DD1B6624 /* ModalDissolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E10F9B13590C41E8D811 /* ModalDissolver.swift */; };
2475E4DA499334A03DB24CDD /* ModalPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E26C51592C82392D2307 /* ModalPresenter.swift */; };
2475E4DB439C7F5B74338A51 /* StargazersModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E8A65220DEDE700AE92A /* StargazersModelTests.swift */; };
2475E4DBF32E5115CCA4C048 /* FontRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC60DCCD4002B794ADE4 /* FontRegistry.swift */; };
2475E4F5BAA39082F5129854 /* GitHubUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E96540D7FDFD907E38A1 /* GitHubUser.swift */; };
2475E51BDCC25602AC87BA35 /* Navigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E855A890F447606F257C /* Navigator.swift */; };
2475E578041452F8670C5A8C /* UserMvcComposerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EDEF357B21E401A94659 /* UserMvcComposerTests.swift */; };
2475E57C529E16473210B935 /* VisualDecorator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E06647D6480FDBD2C6D6 /* VisualDecorator.swift */; };
2475E59F0451C3902D369C49 /* EventSimulator+UITableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E6EC7AF39C22DAE7123C /* EventSimulator+UITableView.swift */; };
2475E5A5E98C9C3035ABEC3A /* StargazersRefreshControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E1A8A65F0F1387B5B383 /* StargazersRefreshControllerTests.swift */; };
2475E5CEE4DC9B1889C4487D /* GlobalModalPresenterSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA0A0E2EE4FF87A7944F /* GlobalModalPresenterSpy.swift */; };
2475E5F7339E767B49A5829D /* UserModelStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EB19DD3C94EAAF1EAEA4 /* UserModelStub.swift */; };
2475E635050088BE7FC5944D /* StargazerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E697E8ACC6AA456D5BC4 /* StargazerCell.swift */; };
2475E646D2F3376D3871D5D4 /* PagingModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EE51E867B532D9E1DEC1 /* PagingModel.swift */; };
2475E6B24A535292DA644CA9 /* StargazersInfiniteScrollController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E55F14C73701A5DD8DD0 /* StargazersInfiniteScrollController.swift */; };
2475E6DDE748544827215916 /* JsonReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E590C7DB27E24894A7F5 /* JsonReader.swift */; };
2475E73ECF60A8F034C74927 /* TestNavigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EBD6C8DCC2F5B14B1767 /* TestNavigator.swift */; };
2475E74A49C8E47E8D24F59B /* RootViewControllerHolderStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E42A6AA4FBBFB0E55EC0 /* RootViewControllerHolderStub.swift */; };
2475E75FBBB9E38F12F79903 /* PagingCursorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EE8C681811D461007BA8 /* PagingCursorTests.swift */; };
2475E77D353AD24284CB69B5 /* FilledLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E50C1059C69195EF3D11 /* FilledLayout.swift */; };
2475E78C358EC82BFE7373F7 /* ReverseNavigator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA60787A5FB45051B288 /* ReverseNavigator.swift */; };
2475E78C5A3637573EBE48C9 /* RootViewControllerHolderSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E29E97208077AA624407 /* RootViewControllerHolderSpy.swift */; };
2475E79DA910F93188B00AD8 /* InfiniteScrollTriggerStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E4A06E0651B68A798608 /* InfiniteScrollTriggerStub.swift */; };
2475E8169213EC2CBA0BA1B8 /* R.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E168B20E5C501400CF73 /* R.generated.swift */; };
2475E82A2493936CC781D07D /* StargazersModelState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9DFEA80E3745A0F2968 /* StargazersModelState.swift */; };
2475E874F18C693DE83CE3DF /* StateMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9020284F55A4534822B /* StateMachine.swift */; };
2475E8F372F4DD9B057E7B9C /* PageRepositoryStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E6E239D38735542EF44C /* PageRepositoryStub.swift */; };
2475E8FA605B48473B57904A /* UserRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EB6B0F7A5FD41CBBED1D /* UserRepository.swift */; };
2475E90D24B02A5C2FDA8D9D /* InfiniteScrollTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E96088774A2C099B5023 /* InfiniteScrollTrigger.swift */; };
2475E979DDCB6C662BEC3BEB /* UserViewBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E19DF4CF52CED997CA2E /* UserViewBinding.swift */; };
2475E97E01676DBEA562211E /* EventSimulator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E10518349B2428033335 /* EventSimulator.swift */; };
2475E97F41F929B155A4C3E9 /* StargazersProgressViewBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E10213D6E811612BEB9A /* StargazersProgressViewBinding.swift */; };
2475E9807E8143A4B3A751A5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2475E33610A7BBD163657C40 /* LaunchScreen.storyboard */; };
2475E9CD20CEE8F26CCF1F4A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E2DD1B608720BA68982B /* AppDelegate.swift */; };
2475EA187C6815D148DB8A4D /* ReverseNavigatorSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC21DA75888B0FDD4C9F /* ReverseNavigatorSpy.swift */; };
2475EA392C14FB9B3E28FADA /* UrlOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EFB7BA388A4179BF1988 /* UrlOpener.swift */; };
2475EA90B85ECDDC24C29E54 /* PageRepositorySpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E04E146A951A851E9ED0 /* PageRepositorySpy.swift */; };
2475EAAB190EE33192369B61 /* FontRegistryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA1B023ADAF16CC9FF85 /* FontRegistryTests.swift */; };
2475EAC4F0BFB86680185B33 /* UrlOpenerSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E4BA9C3118702919AA54 /* UrlOpenerSpy.swift */; };
2475EAC4F34D0000259F757C /* RemoteImageSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA0712F2142C8DF66578 /* RemoteImageSourceTests.swift */; };
2475EAE6AD14B60B5FADF897 /* NavigatorSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E284B65C8BEA6EBA9C65 /* NavigatorSpy.swift */; };
2475EB0B1B94E643766A8D82 /* PageEndDetectionStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9F8D9BBD052C75E7A5C /* PageEndDetectionStrategy.swift */; };
2475EB0D0F18B7571A43910C /* RootViewControllerHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EE0C60E98CF0B0DD86DB /* RootViewControllerHolder.swift */; };
2475EB37E60B9FA89BC83FF4 /* GitHubApiClientStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EAAA03A6CC33D5660297 /* GitHubApiClientStub.swift */; };
2475EB79E32EF8A869064688 /* GlobalModalPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC422EC51D44F0D13F60 /* GlobalModalPresenter.swift */; };
2475EB8D267184D1BAB7F6E5 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E7A8AA7111DAA6B2504A /* Bag.swift */; };
2475EBB38F6CA1B500D1154E /* StargazersTableVIewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E998F32731441B1E1C21 /* StargazersTableVIewDataSource.swift */; };
2475EBC38C427D41A452E006 /* GitHubStargazer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA9AAFF3FDC512301D94 /* GitHubStargazer.swift */; };
2475EC486E18656C1908C298 /* TransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC421B1F380C1E774ED4 /* TransparentViewController.swift */; };
2475EC6A531495B33EEFC4B1 /* octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2475EFCEEABBB137955934D6 /* octicons.ttf */; };
2475ECAEE1AC11CDD8108E02 /* BagStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E5837E0D2DB6DA54386E /* BagStub.swift */; };
2475ECB061C055824156A79B /* PageElementCountStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EA0C5C5866AB0A64FF36 /* PageElementCountStrategy.swift */; };
2475ECC195CC227887CD61AD /* StargazersErrorViewBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EC3B490B1EAD37F2474A /* StargazersErrorViewBinding.swift */; };
2475ED052F280DF12FCC21BF /* TestableDesignExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E52EE895096067C3AB7E /* TestableDesignExampleUITests.swift */; };
2475ED056583F1ED24CD04C2 /* StargazersModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EFFC22EBEE4556F83A10 /* StargazersModel.swift */; };
2475ED0CFDCECF0B56005513 /* ModalDissolverStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E55F2CDD37D57C4B6BE7 /* ModalDissolverStub.swift */; };
2475ED3436CA8F5D217CBC0E /* StargazerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2475EE3031BDB39A34587324 /* StargazerCell.xib */; };
2475ED3A098360D0EE41FBCF /* StargazersTableViewDataSourceStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E7B61D5F345A77960ED3 /* StargazersTableViewDataSourceStub.swift */; };
2475ED4D3251B46BE60ACE2D /* RootNavigatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E69F61196999EFB6AAAD /* RootNavigatorTests.swift */; };
2475ED53BD3633732905F8AA /* StargazersModelStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EBF65AE582DF6BE0C031 /* StargazersModelStub.swift */; };
2475ED6B21CB5EEF515D37D8 /* GitHubApiEndpointTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E6DFB3857B78D5216317 /* GitHubApiEndpointTests.swift */; };
2475ED71E768A0D9244C7C8D /* StargazersMvcComposerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E53EEBB0B2F0A445AAC9 /* StargazersMvcComposerTests.swift */; };
2475ED7AE6761CCDE02381AD /* StargazersRefreshController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E72ADB9B0178F9AEFF83 /* StargazersRefreshController.swift */; };
2475EDC2FD509A53E43DEDA9 /* reposStargazers.json in Resources */ = {isa = PBXBuildFile; fileRef = 2475EFC5E1532F9230A85D82 /* reposStargazers.json */; };
2475EDE03616EB9049E032A5 /* SpyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E10FA91065EBE65659A6 /* SpyViewController.swift */; };
2475EE267AF728FF13F033B2 /* ModalPresenterStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E80441489D9BCA12BB8F /* ModalPresenterStub.swift */; };
2475EE3247291D27A2E248FD /* GitHubUserStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E8EDF26D3584E8016653 /* GitHubUserStub.swift */; };
2475EE8343FD232B5199749C /* R.generatedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E075557EBD6285CD11F6 /* R.generatedTests.swift */; };
2475EEC0350AE44691DDC0BA /* GitHubApiClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E0A01A4162606F18EA04 /* GitHubApiClientTests.swift */; };
2475EEFB4FD740C3CAF18EF6 /* TestBedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E4C1270E87B3799F15BF /* TestBedViewController.swift */; };
2475EF0B5F230503CEDCF81C /* GlobalModalPresenterStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E51655162C1CCBD1D9C6 /* GlobalModalPresenterStub.swift */; };
2475EF0E319C2B3CFC48C762 /* UserMvcComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E6CC4A27B8058F8CAE7F /* UserMvcComposer.swift */; };
2475EF14A3656A845566C1CF /* PagingModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475ECC6983F9154C7E436F1 /* PagingModelTests.swift */; };
2475EF1925B3B41352699A78 /* StargazersRepositoryStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475EFD023DE88AE709BCA17 /* StargazersRepositoryStub.swift */; };
2475EF62D7DC1E8FC2476A52 /* AsyncTestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E30AD0FB5158B660EB33 /* AsyncTestHelper.swift */; };
2475EF784651E52247E3C648 /* GitHubRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2475E9C17E4BBC136112F1C3 /* GitHubRepository.swift */; };
2475EFE934412F4F12A7A9DF /* StargazersScreenRootView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2475E6D543F2FBEC69C94833 /* StargazersScreenRootView.xib */; };
624AA58123DEA9040066D693 /* RxRelay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 624AA58023DEA9040066D693 /* RxRelay.framework */; };
629BBC831F90E262000BB6DA /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 629BBC821F90E262000BB6DA /* RxCocoa.framework */; };
62A1614D1E73C1CC003D28DC /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A1614B1E73C1CC003D28DC /* RxBlocking.framework */; };
62A1614E1E73C1CC003D28DC /* RxTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A1614C1E73C1CC003D28DC /* RxTest.framework */; };
62A161511E73C259003D28DC /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A161501E73C259003D28DC /* RxSwift.framework */; };
62A161571E73C923003D28DC /* MirrorDiffKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A161561E73C923003D28DC /* MirrorDiffKit.framework */; };
62A161611E73E1CE003D28DC /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A1615F1E73E1CE003D28DC /* PromiseKit.framework */; };
62A161681E74164A003D28DC /* Rswift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62A161471E73BCD4003D28DC /* Rswift.framework */; };
62A161741E744812003D28DC /* StargazersMvcComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A161731E744812003D28DC /* StargazersMvcComposer.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
2475E250748A44B29F5B4F04 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2475E53F7AA653832B1EFE63 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 2475EE0376871EE7203E0C05;
remoteInfo = TestableDesignExample;
};
2475EA3339FE17C36E5296D2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2475E53F7AA653832B1EFE63 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 2475EE0376871EE7203E0C05;
remoteInfo = TestableDesignExample;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
2475E04E146A951A851E9ED0 /* PageRepositorySpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageRepositorySpy.swift; sourceTree = "<group>"; };
2475E06647D6480FDBD2C6D6 /* VisualDecorator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VisualDecorator.swift; sourceTree = "<group>"; };
2475E075557EBD6285CD11F6 /* R.generatedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.generatedTests.swift; sourceTree = "<group>"; };
2475E0A01A4162606F18EA04 /* GitHubApiClientTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubApiClientTests.swift; sourceTree = "<group>"; };
2475E0F037F9F0B746ED4024 /* ReverseNavigatorStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseNavigatorStub.swift; sourceTree = "<group>"; };
2475E0F2F3491B3113475005 /* ModalDissolverSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalDissolverSpy.swift; sourceTree = "<group>"; };
2475E10213D6E811612BEB9A /* StargazersProgressViewBinding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersProgressViewBinding.swift; sourceTree = "<group>"; };
2475E10518349B2428033335 /* EventSimulator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EventSimulator.swift; sourceTree = "<group>"; };
2475E10F9B13590C41E8D811 /* ModalDissolver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalDissolver.swift; sourceTree = "<group>"; };
2475E10FA91065EBE65659A6 /* SpyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpyViewController.swift; sourceTree = "<group>"; };
2475E15139800FB937012314 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
2475E168B20E5C501400CF73 /* R.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.generated.swift; sourceTree = "<group>"; };
2475E19DF4CF52CED997CA2E /* UserViewBinding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserViewBinding.swift; sourceTree = "<group>"; };
2475E1A8A65F0F1387B5B383 /* StargazersRefreshControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRefreshControllerTests.swift; sourceTree = "<group>"; };
2475E26C51592C82392D2307 /* ModalPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalPresenter.swift; sourceTree = "<group>"; };
2475E284B65C8BEA6EBA9C65 /* NavigatorSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigatorSpy.swift; sourceTree = "<group>"; };
2475E2881D2B2457DC9309CB /* ScrollViewFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScrollViewFactory.swift; sourceTree = "<group>"; };
2475E29E97208077AA624407 /* RootViewControllerHolderSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewControllerHolderSpy.swift; sourceTree = "<group>"; };
2475E2BF26647D84452771BC /* UserScreenRootView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UserScreenRootView.xib; sourceTree = "<group>"; };
2475E2C5369BE1C2A594873E /* ColorCatalog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorCatalog.swift; sourceTree = "<group>"; };
2475E2DD1B608720BA68982B /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
2475E30AD0FB5158B660EB33 /* AsyncTestHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncTestHelper.swift; sourceTree = "<group>"; };
2475E3444C1BA27DA348423B /* EventSimulator+UIScrollView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "EventSimulator+UIScrollView.swift"; sourceTree = "<group>"; };
2475E39CF8EED23409B486F5 /* StargazersTableViewInitializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersTableViewInitializer.swift; sourceTree = "<group>"; };
2475E3BBDF2F0CD7483117FD /* UserScreenRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserScreenRootView.swift; sourceTree = "<group>"; };
2475E40BE1B2CE78FAF70D47 /* UrlOpenerStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UrlOpenerStub.swift; sourceTree = "<group>"; };
2475E424E5349A6737062E54 /* InfiniteScrollTriggerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfiniteScrollTriggerTests.swift; sourceTree = "<group>"; };
2475E42A6AA4FBBFB0E55EC0 /* RootViewControllerHolderStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewControllerHolderStub.swift; sourceTree = "<group>"; };
2475E44FF94942A600769656 /* UserRepositoryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserRepositoryTests.swift; sourceTree = "<group>"; };
2475E4A06E0651B68A798608 /* InfiniteScrollTriggerStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfiniteScrollTriggerStub.swift; sourceTree = "<group>"; };
2475E4A20AF63001833F7647 /* StargazersInfiniteScrollControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersInfiniteScrollControllerTests.swift; sourceTree = "<group>"; };
2475E4BA9C3118702919AA54 /* UrlOpenerSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UrlOpenerSpy.swift; sourceTree = "<group>"; };
2475E4C1270E87B3799F15BF /* TestBedViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestBedViewController.swift; sourceTree = "<group>"; };
2475E50C1059C69195EF3D11 /* FilledLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilledLayout.swift; sourceTree = "<group>"; };
2475E51655162C1CCBD1D9C6 /* GlobalModalPresenterStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalModalPresenterStub.swift; sourceTree = "<group>"; };
2475E52EE895096067C3AB7E /* TestableDesignExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestableDesignExampleUITests.swift; sourceTree = "<group>"; };
2475E53EEBB0B2F0A445AAC9 /* StargazersMvcComposerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersMvcComposerTests.swift; sourceTree = "<group>"; };
2475E55F14C73701A5DD8DD0 /* StargazersInfiniteScrollController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersInfiniteScrollController.swift; sourceTree = "<group>"; };
2475E55F2CDD37D57C4B6BE7 /* ModalDissolverStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalDissolverStub.swift; sourceTree = "<group>"; };
2475E5837E0D2DB6DA54386E /* BagStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BagStub.swift; sourceTree = "<group>"; };
2475E590C7DB27E24894A7F5 /* JsonReader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JsonReader.swift; sourceTree = "<group>"; };
2475E5B4D098FE6945B3F148 /* sample.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sample.png; sourceTree = "<group>"; };
2475E5BE5363F823A04BC55E /* StargazersRefreshViewBinding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRefreshViewBinding.swift; sourceTree = "<group>"; };
2475E62484C74FD0B910C6F5 /* StargazersRepository.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRepository.swift; sourceTree = "<group>"; };
2475E6654583784DB2FAC099 /* user.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user.json; sourceTree = "<group>"; };
2475E66BA53E2A693A2E8904 /* StargazersModelSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersModelSpy.swift; sourceTree = "<group>"; };
2475E6904F2577E36489E9DF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = "<group>"; };
2475E697E8ACC6AA456D5BC4 /* StargazerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazerCell.swift; sourceTree = "<group>"; };
2475E69F61196999EFB6AAAD /* RootNavigatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootNavigatorTests.swift; sourceTree = "<group>"; };
2475E6CC4A27B8058F8CAE7F /* UserMvcComposer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserMvcComposer.swift; sourceTree = "<group>"; };
2475E6D543F2FBEC69C94833 /* StargazersScreenRootView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StargazersScreenRootView.xib; sourceTree = "<group>"; };
2475E6DFB3857B78D5216317 /* GitHubApiEndpointTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubApiEndpointTests.swift; sourceTree = "<group>"; };
2475E6E239D38735542EF44C /* PageRepositoryStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageRepositoryStub.swift; sourceTree = "<group>"; };
2475E6EC7AF39C22DAE7123C /* EventSimulator+UITableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "EventSimulator+UITableView.swift"; sourceTree = "<group>"; };
2475E72ADB9B0178F9AEFF83 /* StargazersRefreshController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRefreshController.swift; sourceTree = "<group>"; };
2475E7A8AA7111DAA6B2504A /* Bag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bag.swift; sourceTree = "<group>"; };
2475E7B61D5F345A77960ED3 /* StargazersTableViewDataSourceStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersTableViewDataSourceStub.swift; sourceTree = "<group>"; };
2475E7DF6C438F3C12F13C5A /* PagingCursor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PagingCursor.swift; sourceTree = "<group>"; };
2475E7E905777169DA3AAA02 /* AnyError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnyError.swift; sourceTree = "<group>"; };
2475E80441489D9BCA12BB8F /* ModalPresenterStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalPresenterStub.swift; sourceTree = "<group>"; };
2475E855A890F447606F257C /* Navigator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Navigator.swift; sourceTree = "<group>"; };
2475E89DAFF095A125B23BCC /* StargazersRepositoryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRepositoryTests.swift; sourceTree = "<group>"; };
2475E8A65220DEDE700AE92A /* StargazersModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersModelTests.swift; sourceTree = "<group>"; };
2475E8DB658BBC471DC6772E /* PageEndDirection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageEndDirection.swift; sourceTree = "<group>"; };
2475E8EDF26D3584E8016653 /* GitHubUserStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubUserStub.swift; sourceTree = "<group>"; };
2475E9020284F55A4534822B /* StateMachine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StateMachine.swift; sourceTree = "<group>"; };
2475E915740D6D1026AC1FBD /* NavigatorStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigatorStub.swift; sourceTree = "<group>"; };
2475E917CEDA9911B0F9A54E /* UserModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModel.swift; sourceTree = "<group>"; };
2475E954DD31B11C6538425D /* EventSimulator+UIRefreshControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "EventSimulator+UIRefreshControl.swift"; sourceTree = "<group>"; };
2475E96088774A2C099B5023 /* InfiniteScrollTrigger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfiniteScrollTrigger.swift; sourceTree = "<group>"; };
2475E96540D7FDFD907E38A1 /* GitHubUser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubUser.swift; sourceTree = "<group>"; };
2475E998F32731441B1E1C21 /* StargazersTableVIewDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersTableVIewDataSource.swift; sourceTree = "<group>"; };
2475E9B6E1BD02A84A90344A /* ModalPresenterSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModalPresenterSpy.swift; sourceTree = "<group>"; };
2475E9C17E4BBC136112F1C3 /* GitHubRepository.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubRepository.swift; sourceTree = "<group>"; };
2475E9DFEA80E3745A0F2968 /* StargazersModelState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersModelState.swift; sourceTree = "<group>"; };
2475E9F8D9BBD052C75E7A5C /* PageEndDetectionStrategy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageEndDetectionStrategy.swift; sourceTree = "<group>"; };
2475E9F9C6BB7D41F55161A7 /* GitHubApiClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubApiClient.swift; sourceTree = "<group>"; };
2475EA0712F2142C8DF66578 /* RemoteImageSourceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteImageSourceTests.swift; sourceTree = "<group>"; };
2475EA0A0E2EE4FF87A7944F /* GlobalModalPresenterSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalModalPresenterSpy.swift; sourceTree = "<group>"; };
2475EA0C5C5866AB0A64FF36 /* PageElementCountStrategy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageElementCountStrategy.swift; sourceTree = "<group>"; };
2475EA1B023ADAF16CC9FF85 /* FontRegistryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontRegistryTests.swift; sourceTree = "<group>"; };
2475EA1E8734537D888DE184 /* StargazersScreenRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersScreenRootView.swift; sourceTree = "<group>"; };
2475EA53D827463354DB65F8 /* PageRepository.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageRepository.swift; sourceTree = "<group>"; };
2475EA60787A5FB45051B288 /* ReverseNavigator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseNavigator.swift; sourceTree = "<group>"; };
2475EA9AAFF3FDC512301D94 /* GitHubStargazer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubStargazer.swift; sourceTree = "<group>"; };
2475EAAA03A6CC33D5660297 /* GitHubApiClientStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubApiClientStub.swift; sourceTree = "<group>"; };
2475EB19DD3C94EAAF1EAEA4 /* UserModelStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelStub.swift; sourceTree = "<group>"; };
2475EB1E4113B6703D2B9BD0 /* StargazersNavigationViewBinding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersNavigationViewBinding.swift; sourceTree = "<group>"; };
2475EB3C1C05AA82BEB7602A /* GlobalModalPresenterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalModalPresenterTests.swift; sourceTree = "<group>"; };
2475EB6192AC0F8ACE008FB2 /* PerformanceParameter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceParameter.swift; sourceTree = "<group>"; };
2475EB6B0F7A5FD41CBBED1D /* UserRepository.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserRepository.swift; sourceTree = "<group>"; };
2475EBAD39EB17C436158BD2 /* TitleHolder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TitleHolder.swift; sourceTree = "<group>"; };
2475EBD6C8DCC2F5B14B1767 /* TestNavigator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNavigator.swift; sourceTree = "<group>"; };
2475EBE7B5C344258DA2B9B8 /* R.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.generated.swift; sourceTree = "<group>"; };
2475EBF65AE582DF6BE0C031 /* StargazersModelStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersModelStub.swift; sourceTree = "<group>"; };
2475EC21DA75888B0FDD4C9F /* ReverseNavigatorSpy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseNavigatorSpy.swift; sourceTree = "<group>"; };
2475EC3A6667F8553C23CB2C /* GitHubApiEndpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubApiEndpoint.swift; sourceTree = "<group>"; };
2475EC3B490B1EAD37F2474A /* StargazersErrorViewBinding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersErrorViewBinding.swift; sourceTree = "<group>"; };
2475EC421B1F380C1E774ED4 /* TransparentViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentViewController.swift; sourceTree = "<group>"; };
2475EC422EC51D44F0D13F60 /* GlobalModalPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalModalPresenter.swift; sourceTree = "<group>"; };
2475EC60DCCD4002B794ADE4 /* FontRegistry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontRegistry.swift; sourceTree = "<group>"; };
2475EC9C2015DE0B2627E623 /* TestableDesignExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TestableDesignExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
2475ECC6983F9154C7E436F1 /* PagingModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PagingModelTests.swift; sourceTree = "<group>"; };
2475ECD1683C52FD98B325A2 /* RemoteImageSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteImageSource.swift; sourceTree = "<group>"; };
2475ED0DAFBC67961CB850A6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = "<group>"; };
2475ED57920DD74087264FC7 /* TestableDesignExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestableDesignExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
2475ED639ECF55577329F9D9 /* TestableDesignExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TestableDesignExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
2475ED90991276AE1EA74B1D /* StargazersNavigationViewBindingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersNavigationViewBindingTests.swift; sourceTree = "<group>"; };
2475EDAB59CE5A5E99A03E61 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
2475EDEF357B21E401A94659 /* UserMvcComposerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserMvcComposerTests.swift; sourceTree = "<group>"; };
2475EE0C60E98CF0B0DD86DB /* RootViewControllerHolder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewControllerHolder.swift; sourceTree = "<group>"; };
2475EE3031BDB39A34587324 /* StargazerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StargazerCell.xib; sourceTree = "<group>"; };
2475EE51E867B532D9E1DEC1 /* PagingModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PagingModel.swift; sourceTree = "<group>"; };
2475EE70EA9C3C6D4904B8D0 /* RootNavigator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootNavigator.swift; sourceTree = "<group>"; };
2475EE7E92AA265C15A8AB02 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = "<group>"; };
2475EE8C681811D461007BA8 /* PagingCursorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PagingCursorTests.swift; sourceTree = "<group>"; };
2475EF0F98ED6955B0639447 /* PagedElementCollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PagedElementCollection.swift; sourceTree = "<group>"; };
2475EFABBE5984119A4C5898 /* PageEndDetectionStrategyStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageEndDetectionStrategyStub.swift; sourceTree = "<group>"; };
2475EFB7BA388A4179BF1988 /* UrlOpener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UrlOpener.swift; sourceTree = "<group>"; };
2475EFC5E1532F9230A85D82 /* reposStargazers.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = reposStargazers.json; sourceTree = "<group>"; };
2475EFCEEABBB137955934D6 /* octicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file.ttf; path = octicons.ttf; sourceTree = "<group>"; };
2475EFD023DE88AE709BCA17 /* StargazersRepositoryStub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersRepositoryStub.swift; sourceTree = "<group>"; };
2475EFFC22EBEE4556F83A10 /* StargazersModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersModel.swift; sourceTree = "<group>"; };
624AA58023DEA9040066D693 /* RxRelay.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxRelay.framework; path = Carthage/Build/iOS/RxRelay.framework; sourceTree = "<group>"; };
629BBC821F90E262000BB6DA /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; };
62A161471E73BCD4003D28DC /* Rswift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Rswift.framework; path = Carthage/Build/iOS/Rswift.framework; sourceTree = "<group>"; };
62A1614B1E73C1CC003D28DC /* RxBlocking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxBlocking.framework; path = Carthage/Build/iOS/RxBlocking.framework; sourceTree = "<group>"; };
62A1614C1E73C1CC003D28DC /* RxTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxTest.framework; path = Carthage/Build/iOS/RxTest.framework; sourceTree = "<group>"; };
62A161501E73C259003D28DC /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; };
62A161561E73C923003D28DC /* MirrorDiffKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MirrorDiffKit.framework; path = Carthage/Build/iOS/MirrorDiffKit.framework; sourceTree = "<group>"; };
62A1615B1E73E1B9003D28DC /* PromiseKit.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = PromiseKit.framework.dSYM; path = Carthage/Build/iOS/PromiseKit.framework.dSYM; sourceTree = "<group>"; };
62A1615F1E73E1CE003D28DC /* PromiseKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PromiseKit.framework; path = Carthage/Build/iOS/PromiseKit.framework; sourceTree = "<group>"; };
62A161641E74129A003D28DC /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
62A161731E744812003D28DC /* StargazersMvcComposer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StargazersMvcComposer.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
2475E453DC8D6CC645172E24 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
629BBC831F90E262000BB6DA /* RxCocoa.framework in Frameworks */,
62A161681E74164A003D28DC /* Rswift.framework in Frameworks */,
62A161611E73E1CE003D28DC /* PromiseKit.framework in Frameworks */,
62A161511E73C259003D28DC /* RxSwift.framework in Frameworks */,
624AA58123DEA9040066D693 /* RxRelay.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2475E64DAD11CBB0BA0D46A3 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
62A161571E73C923003D28DC /* MirrorDiffKit.framework in Frameworks */,
62A1614D1E73C1CC003D28DC /* RxBlocking.framework in Frameworks */,
62A1614E1E73C1CC003D28DC /* RxTest.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2475EAB479B702E5AADB4B7A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
2475E03D39E9FDB714DC39B2 /* Stargazers */ = {
isa = PBXGroup;
children = (
2475E32E403CE9111244FEA7 /* Controller */,
2475E2917E670286956AAA92 /* Model */,
2475E064E7ED6B572BCF41B9 /* View */,
62A161731E744812003D28DC /* StargazersMvcComposer.swift */,
2475E53EEBB0B2F0A445AAC9 /* StargazersMvcComposerTests.swift */,
);
path = Stargazers;
sourceTree = "<group>";
};
2475E064E7ED6B572BCF41B9 /* View */ = {
isa = PBXGroup;
children = (
2475E12ABDB90E319AC6A747 /* UIKitSubClass */,
2475E8CA69B8898E04C7853A /* ViewBinding */,
2475E39CF8EED23409B486F5 /* StargazersTableViewInitializer.swift */,
);
path = View;
sourceTree = "<group>";
};
2475E12ABDB90E319AC6A747 /* UIKitSubClass */ = {
isa = PBXGroup;
children = (
2475E697E8ACC6AA456D5BC4 /* StargazerCell.swift */,
2475EE3031BDB39A34587324 /* StargazerCell.xib */,
2475EA1E8734537D888DE184 /* StargazersScreenRootView.swift */,
2475E6D543F2FBEC69C94833 /* StargazersScreenRootView.xib */,
2475E998F32731441B1E1C21 /* StargazersTableVIewDataSource.swift */,
2475E7B61D5F345A77960ED3 /* StargazersTableViewDataSourceStub.swift */,
);
path = UIKitSubClass;
sourceTree = "<group>";
};
2475E1B9561BE67F13D3295E /* InfiniteScroll */ = {
isa = PBXGroup;
children = (
2475E96088774A2C099B5023 /* InfiniteScrollTrigger.swift */,
2475E4A06E0651B68A798608 /* InfiniteScrollTriggerStub.swift */,
2475E424E5349A6737062E54 /* InfiniteScrollTriggerTests.swift */,
);
path = InfiniteScroll;
sourceTree = "<group>";
};
2475E1DDE650A022B72D8AA6 /* UIWindow */ = {
isa = PBXGroup;
children = (
2475EE0C60E98CF0B0DD86DB /* RootViewControllerHolder.swift */,
2475E29E97208077AA624407 /* RootViewControllerHolderSpy.swift */,
2475E42A6AA4FBBFB0E55EC0 /* RootViewControllerHolderStub.swift */,
);
path = UIWindow;
sourceTree = "<group>";
};
2475E2917E670286956AAA92 /* Model */ = {
isa = PBXGroup;
children = (
2475E62484C74FD0B910C6F5 /* StargazersRepository.swift */,
2475EFD023DE88AE709BCA17 /* StargazersRepositoryStub.swift */,
2475EFFC22EBEE4556F83A10 /* StargazersModel.swift */,
2475EBF65AE582DF6BE0C031 /* StargazersModelStub.swift */,
2475E8A65220DEDE700AE92A /* StargazersModelTests.swift */,
2475E66BA53E2A693A2E8904 /* StargazersModelSpy.swift */,
2475E9DFEA80E3745A0F2968 /* StargazersModelState.swift */,
2475E89DAFF095A125B23BCC /* StargazersRepositoryTests.swift */,
);
path = Model;
sourceTree = "<group>";
};
2475E2F3D72A9EDDB3A5123C /* TestableDesignExample */ = {
isa = PBXGroup;
children = (
2475E54EC10A2464951D9E0E /* GitHub */,
2475E5EC0F374F1A0A942DF7 /* MvcArchitecture */,
62A161581E73C9D6003D28DC /* Resources */,
2475E5C8A7D05E3006441DDA /* UIKitTestable */,
2475EDAB59CE5A5E99A03E61 /* Assets.xcassets */,
2475EE7E92AA265C15A8AB02 /* Info.plist */,
2475E33610A7BBD163657C40 /* LaunchScreen.storyboard */,
);
path = TestableDesignExample;
sourceTree = "<group>";
};
2475E32E403CE9111244FEA7 /* Controller */ = {
isa = PBXGroup;
children = (
2475E55F14C73701A5DD8DD0 /* StargazersInfiniteScrollController.swift */,
2475E72ADB9B0178F9AEFF83 /* StargazersRefreshController.swift */,
2475E4A20AF63001833F7647 /* StargazersInfiniteScrollControllerTests.swift */,
2475E1A8A65F0F1387B5B383 /* StargazersRefreshControllerTests.swift */,
);
path = Controller;
sourceTree = "<group>";
};
2475E38D8C26C1B411E4A8F5 /* StateMachine */ = {
isa = PBXGroup;
children = (
2475E9020284F55A4534822B /* StateMachine.swift */,
);
path = StateMachine;
sourceTree = "<group>";
};
2475E45A8106355531E3A49E /* Shared */ = {
isa = PBXGroup;
children = (
2475EF19C99F1B795ABA59AB /* Bag */,
2475E489F6ED1E18D2CB1940 /* Error */,
2475ED5509B2D2DA045A34EA /* Layout */,
2475EAD1E542A134510A2D86 /* Navigator */,
2475EF4844E77F4F91EE38FA /* Paging */,
2475E89B909F7304AA98545C /* Parameter */,
2475EAE34A8FD7ADC5C0B03C /* RemoteImage */,
2475E46ADB4B81299769F17D /* VisualStyle */,
2475E1B9561BE67F13D3295E /* InfiniteScroll */,
2475E38D8C26C1B411E4A8F5 /* StateMachine */,
);
path = Shared;
sourceTree = "<group>";
};
2475E46ADB4B81299769F17D /* VisualStyle */ = {
isa = PBXGroup;
children = (
2475E2C5369BE1C2A594873E /* ColorCatalog.swift */,
2475E06647D6480FDBD2C6D6 /* VisualDecorator.swift */,
);
path = VisualStyle;
sourceTree = "<group>";
};
2475E489F6ED1E18D2CB1940 /* Error */ = {
isa = PBXGroup;
children = (
2475E7E905777169DA3AAA02 /* AnyError.swift */,
);
path = Error;
sourceTree = "<group>";
};
2475E54EC10A2464951D9E0E /* GitHub */ = {
isa = PBXGroup;
children = (
2475E9F9C6BB7D41F55161A7 /* GitHubApiClient.swift */,
2475EAAA03A6CC33D5660297 /* GitHubApiClientStub.swift */,
2475E0A01A4162606F18EA04 /* GitHubApiClientTests.swift */,
2475EC3A6667F8553C23CB2C /* GitHubApiEndpoint.swift */,
2475E6DFB3857B78D5216317 /* GitHubApiEndpointTests.swift */,
2475E9C17E4BBC136112F1C3 /* GitHubRepository.swift */,
2475EA9AAFF3FDC512301D94 /* GitHubStargazer.swift */,
2475E96540D7FDFD907E38A1 /* GitHubUser.swift */,
2475E8EDF26D3584E8016653 /* GitHubUserStub.swift */,
);
path = GitHub;
sourceTree = "<group>";
};
2475E5C8A7D05E3006441DDA /* UIKitTestable */ = {
isa = PBXGroup;
children = (
2475EF2A8570273F7068480D /* UIViewController */,
2475E1DDE650A022B72D8AA6 /* UIWindow */,
2475EC73D2B1E57F30DC5D26 /* UIApplication */,
2475EB3D5FFFD17F692E9D01 /* UIScrollView */,
2475EEFA8615701D3EDF6A2D /* UIView */,
2475EF3E3D8DA1AF37E8F6C1 /* UIRefreshController */,
2475E10518349B2428033335 /* EventSimulator.swift */,
2475EE37CB3BFA6358855068 /* UITableView */,
);
path = UIKitTestable;
sourceTree = "<group>";
};
2475E5EC0F374F1A0A942DF7 /* MvcArchitecture */ = {
isa = PBXGroup;
children = (
2475EE45BEDD0230515711A7 /* Bootstrap */,
2475E45A8106355531E3A49E /* Shared */,
2475E03D39E9FDB714DC39B2 /* Stargazers */,
2475EA25575CDC3E6312B17A /* User */,
);
path = MvcArchitecture;
sourceTree = "<group>";
};
2475E6024DA77F14399A3109 = {
isa = PBXGroup;
children = (
62A161461E73BCD4003D28DC /* Frameworks */,
2475E681FAAFE01165145F3E /* Products */,
2475E2F3D72A9EDDB3A5123C /* TestableDesignExample */,
2475E927630C40FFEC2AE23B /* TestableDesignExampleTests */,
2475EE09DDDD552BE88E9783 /* TestableDesignExampleUITests */,
);
sourceTree = "<group>";
};
2475E681FAAFE01165145F3E /* Products */ = {
isa = PBXGroup;
children = (
2475ED57920DD74087264FC7 /* TestableDesignExample.app */,
2475EC9C2015DE0B2627E623 /* TestableDesignExampleTests.xctest */,
2475ED639ECF55577329F9D9 /* TestableDesignExampleUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
2475E78E8A799A5629169418 /* Images */ = {
isa = PBXGroup;
children = (
2475E5B4D098FE6945B3F148 /* sample.png */,
);
path = Images;
sourceTree = "<group>";
};
2475E7A484EBE1232A4FF5F3 /* View */ = {
isa = PBXGroup;
children = (
2475E9459C2FAC48F9C25222 /* UIKitSubClass */,
2475E987B3F90D1716F4E14D /* ViewBinding */,
);
path = View;
sourceTree = "<group>";
};
2475E89B909F7304AA98545C /* Parameter */ = {
isa = PBXGroup;
children = (
2475EB6192AC0F8ACE008FB2 /* PerformanceParameter.swift */,
);
path = Parameter;
sourceTree = "<group>";
};
2475E8CA69B8898E04C7853A /* ViewBinding */ = {
isa = PBXGroup;
children = (
2475EC3B490B1EAD37F2474A /* StargazersErrorViewBinding.swift */,
2475EB1E4113B6703D2B9BD0 /* StargazersNavigationViewBinding.swift */,
2475E10213D6E811612BEB9A /* StargazersProgressViewBinding.swift */,
2475E5BE5363F823A04BC55E /* StargazersRefreshViewBinding.swift */,
2475ED90991276AE1EA74B1D /* StargazersNavigationViewBindingTests.swift */,
);
path = ViewBinding;
sourceTree = "<group>";
};
2475E927630C40FFEC2AE23B /* TestableDesignExampleTests */ = {
isa = PBXGroup;
children = (
2475ED210F997869A67B226E /* Resources */,
2475E30AD0FB5158B660EB33 /* AsyncTestHelper.swift */,
2475E6904F2577E36489E9DF /* Info.plist */,
2475E590C7DB27E24894A7F5 /* JsonReader.swift */,
);
path = TestableDesignExampleTests;
sourceTree = "<group>";
};
2475E9459C2FAC48F9C25222 /* UIKitSubClass */ = {
isa = PBXGroup;
children = (
2475E3BBDF2F0CD7483117FD /* UserScreenRootView.swift */,
2475E2BF26647D84452771BC /* UserScreenRootView.xib */,
);
path = UIKitSubClass;
sourceTree = "<group>";
};
2475E987B3F90D1716F4E14D /* ViewBinding */ = {
isa = PBXGroup;
children = (
2475E19DF4CF52CED997CA2E /* UserViewBinding.swift */,
);
path = ViewBinding;
sourceTree = "<group>";
};
2475EA15DFBD6DF9C26116F6 /* R.swift */ = {
isa = PBXGroup;
children = (
2475EBE7B5C344258DA2B9B8 /* R.generated.swift */,
2475E075557EBD6285CD11F6 /* R.generatedTests.swift */,
);
path = R.swift;
sourceTree = "<group>";
};
2475EA25575CDC3E6312B17A /* User */ = {
isa = PBXGroup;
children = (
2475EB89B51D86F800D3CFDF /* Model */,
2475E7A484EBE1232A4FF5F3 /* View */,
2475E6CC4A27B8058F8CAE7F /* UserMvcComposer.swift */,
2475EDEF357B21E401A94659 /* UserMvcComposerTests.swift */,
);
path = User;
sourceTree = "<group>";
};
2475EA63CB4B9D46A794B01A /* Json */ = {
isa = PBXGroup;
children = (
2475EFC5E1532F9230A85D82 /* reposStargazers.json */,
2475E6654583784DB2FAC099 /* user.json */,
);
path = Json;
sourceTree = "<group>";
};
2475EAD1E542A134510A2D86 /* Navigator */ = {
isa = PBXGroup;
children = (
2475EE70EA9C3C6D4904B8D0 /* RootNavigator.swift */,
2475E69F61196999EFB6AAAD /* RootNavigatorTests.swift */,
);
path = Navigator;
sourceTree = "<group>";
};
2475EAE34A8FD7ADC5C0B03C /* RemoteImage */ = {
isa = PBXGroup;
children = (
2475ECD1683C52FD98B325A2 /* RemoteImageSource.swift */,
2475EA0712F2142C8DF66578 /* RemoteImageSourceTests.swift */,
);
path = RemoteImage;
sourceTree = "<group>";
};
2475EB3D5FFFD17F692E9D01 /* UIScrollView */ = {
isa = PBXGroup;
children = (
2475E2881D2B2457DC9309CB /* ScrollViewFactory.swift */,
2475E3444C1BA27DA348423B /* EventSimulator+UIScrollView.swift */,
);
path = UIScrollView;
sourceTree = "<group>";
};
2475EB89B51D86F800D3CFDF /* Model */ = {
isa = PBXGroup;
children = (
2475E917CEDA9911B0F9A54E /* UserModel.swift */,
2475EB19DD3C94EAAF1EAEA4 /* UserModelStub.swift */,
2475EB6B0F7A5FD41CBBED1D /* UserRepository.swift */,
2475E44FF94942A600769656 /* UserRepositoryTests.swift */,
);
path = Model;
sourceTree = "<group>";
};
2475EC73D2B1E57F30DC5D26 /* UIApplication */ = {
isa = PBXGroup;
children = (
2475E4BA9C3118702919AA54 /* UrlOpenerSpy.swift */,
2475E40BE1B2CE78FAF70D47 /* UrlOpenerStub.swift */,
2475EFB7BA388A4179BF1988 /* UrlOpener.swift */,
);
path = UIApplication;
sourceTree = "<group>";
};
2475ED210F997869A67B226E /* Resources */ = {
isa = PBXGroup;
children = (
2475E78E8A799A5629169418 /* Images */,
2475EA63CB4B9D46A794B01A /* Json */,
2475E168B20E5C501400CF73 /* R.generated.swift */,
);
path = Resources;
sourceTree = "<group>";
};
2475ED5509B2D2DA045A34EA /* Layout */ = {
isa = PBXGroup;
children = (
2475E50C1059C69195EF3D11 /* FilledLayout.swift */,
);
path = Layout;
sourceTree = "<group>";
};
2475EE09DDDD552BE88E9783 /* TestableDesignExampleUITests */ = {
isa = PBXGroup;
children = (
2475ED0DAFBC67961CB850A6 /* Info.plist */,
2475E52EE895096067C3AB7E /* TestableDesignExampleUITests.swift */,
);
path = TestableDesignExampleUITests;
sourceTree = "<group>";
};
2475EE278335C75D0E3F4A75 /* Model */ = {
isa = PBXGroup;
children = (
2475EA0C5C5866AB0A64FF36 /* PageElementCountStrategy.swift */,
2475E9F8D9BBD052C75E7A5C /* PageEndDetectionStrategy.swift */,
2475EFABBE5984119A4C5898 /* PageEndDetectionStrategyStub.swift */,
2475E8DB658BBC471DC6772E /* PageEndDirection.swift */,
2475EA53D827463354DB65F8 /* PageRepository.swift */,
2475E04E146A951A851E9ED0 /* PageRepositorySpy.swift */,
2475E6E239D38735542EF44C /* PageRepositoryStub.swift */,
2475EF0F98ED6955B0639447 /* PagedElementCollection.swift */,
2475E7DF6C438F3C12F13C5A /* PagingCursor.swift */,
2475EE8C681811D461007BA8 /* PagingCursorTests.swift */,
2475EE51E867B532D9E1DEC1 /* PagingModel.swift */,
2475ECC6983F9154C7E436F1 /* PagingModelTests.swift */,
);
path = Model;
sourceTree = "<group>";
};
2475EE37CB3BFA6358855068 /* UITableView */ = {
isa = PBXGroup;
children = (
2475E6EC7AF39C22DAE7123C /* EventSimulator+UITableView.swift */,
);
path = UITableView;
sourceTree = "<group>";
};
2475EE45BEDD0230515711A7 /* Bootstrap */ = {
isa = PBXGroup;
children = (
2475E2DD1B608720BA68982B /* AppDelegate.swift */,
);
path = Bootstrap;
sourceTree = "<group>";
};
2475EEFA8615701D3EDF6A2D /* UIView */ = {
isa = PBXGroup;
children = (
2475E4C1270E87B3799F15BF /* TestBedViewController.swift */,
);
path = UIView;
sourceTree = "<group>";
};
2475EF19C99F1B795ABA59AB /* Bag */ = {
isa = PBXGroup;
children = (
2475E7A8AA7111DAA6B2504A /* Bag.swift */,
2475E5837E0D2DB6DA54386E /* BagStub.swift */,
);
path = Bag;
sourceTree = "<group>";
};
2475EF2A8570273F7068480D /* UIViewController */ = {
isa = PBXGroup;
children = (
2475E51655162C1CCBD1D9C6 /* GlobalModalPresenterStub.swift */,
2475E855A890F447606F257C /* Navigator.swift */,
2475E9B6E1BD02A84A90344A /* ModalPresenterSpy.swift */,
2475E0F037F9F0B746ED4024 /* ReverseNavigatorStub.swift */,
2475EA0A0E2EE4FF87A7944F /* GlobalModalPresenterSpy.swift */,
2475E55F2CDD37D57C4B6BE7 /* ModalDissolverStub.swift */,
2475E915740D6D1026AC1FBD /* NavigatorStub.swift */,
2475E26C51592C82392D2307 /* ModalPresenter.swift */,
2475E0F2F3491B3113475005 /* ModalDissolverSpy.swift */,
2475EA60787A5FB45051B288 /* ReverseNavigator.swift */,
2475EC422EC51D44F0D13F60 /* GlobalModalPresenter.swift */,
2475EB3C1C05AA82BEB7602A /* GlobalModalPresenterTests.swift */,
2475E284B65C8BEA6EBA9C65 /* NavigatorSpy.swift */,
2475EC21DA75888B0FDD4C9F /* ReverseNavigatorSpy.swift */,
2475E10F9B13590C41E8D811 /* ModalDissolver.swift */,
2475E80441489D9BCA12BB8F /* ModalPresenterStub.swift */,
2475EBD6C8DCC2F5B14B1767 /* TestNavigator.swift */,
2475EC421B1F380C1E774ED4 /* TransparentViewController.swift */,
2475EBAD39EB17C436158BD2 /* TitleHolder.swift */,
2475E10FA91065EBE65659A6 /* SpyViewController.swift */,
);
path = UIViewController;
sourceTree = "<group>";
};
2475EF3E3D8DA1AF37E8F6C1 /* UIRefreshController */ = {
isa = PBXGroup;
children = (
2475E954DD31B11C6538425D /* EventSimulator+UIRefreshControl.swift */,
);
path = UIRefreshController;
sourceTree = "<group>";
};
2475EF4844E77F4F91EE38FA /* Paging */ = {
isa = PBXGroup;
children = (
2475EE278335C75D0E3F4A75 /* Model */,
);
path = Paging;
sourceTree = "<group>";
};
2475EF9000BC9B4E5171177D /* Font */ = {
isa = PBXGroup;
children = (
2475EC60DCCD4002B794ADE4 /* FontRegistry.swift */,
2475EA1B023ADAF16CC9FF85 /* FontRegistryTests.swift */,
2475EFCEEABBB137955934D6 /* octicons.ttf */,
);
path = Font;
sourceTree = "<group>";
};
62A161461E73BCD4003D28DC /* Frameworks */ = {
isa = PBXGroup;
children = (
624AA58023DEA9040066D693 /* RxRelay.framework */,
629BBC821F90E262000BB6DA /* RxCocoa.framework */,
62A161641E74129A003D28DC /* Security.framework */,
62A1615F1E73E1CE003D28DC /* PromiseKit.framework */,
62A1615B1E73E1B9003D28DC /* PromiseKit.framework.dSYM */,
62A161561E73C923003D28DC /* MirrorDiffKit.framework */,
62A161501E73C259003D28DC /* RxSwift.framework */,
62A1614B1E73C1CC003D28DC /* RxBlocking.framework */,
62A1614C1E73C1CC003D28DC /* RxTest.framework */,
62A161471E73BCD4003D28DC /* Rswift.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
62A161581E73C9D6003D28DC /* Resources */ = {
isa = PBXGroup;
children = (
2475EF9000BC9B4E5171177D /* Font */,
2475EA15DFBD6DF9C26116F6 /* R.swift */,
);
path = Resources;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
2475E649AECAE4D1FBC505BA /* TestableDesignExampleTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2475E16C50E63B0E2DE88092 /* Build configuration list for PBXNativeTarget "TestableDesignExampleTests" */;
buildPhases = (
62A161631E7408A4003D28DC /* Run R.swift */,
2475E4A0A6547D8CB0D6FC25 /* Sources */,
2475E64DAD11CBB0BA0D46A3 /* Frameworks */,
2475EF593B11C9178F25371E /* Resources */,
62A1614F1E73C1D2003D28DC /* ShellScript */,
);
buildRules = (
);
dependencies = (
2475EBD483C89366BF77A7AE /* PBXTargetDependency */,
);
name = TestableDesignExampleTests;
productName = TestableDesignExampleTests;
productReference = 2475EC9C2015DE0B2627E623 /* TestableDesignExampleTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
2475EAA9111BEB1BADAF4656 /* TestableDesignExampleUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2475E590EB59A1AAAA8451B7 /* Build configuration list for PBXNativeTarget "TestableDesignExampleUITests" */;
buildPhases = (
2475E102ED38529EDE59F247 /* Sources */,
2475EAB479B702E5AADB4B7A /* Frameworks */,
2475EF50A1201A71A821EC13 /* Resources */,
);
buildRules = (
);
dependencies = (
2475E7D47894AD106A1B5F51 /* PBXTargetDependency */,
);
name = TestableDesignExampleUITests;
productName = TestableDesignExampleUITests;
productReference = 2475ED639ECF55577329F9D9 /* TestableDesignExampleUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
2475EE0376871EE7203E0C05 /* TestableDesignExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2475E8BF3640622A9CBA90DF /* Build configuration list for PBXNativeTarget "TestableDesignExample" */;
buildPhases = (
62A1614A1E73BDC0003D28DC /* Run R.swift */,
2475E3C4099342668824F94A /* Sources */,
2475E453DC8D6CC645172E24 /* Frameworks */,
2475E69BA6DA525240196C0B /* Resources */,
62A161491E73BD22003D28DC /* Run cartahge copy-frameworks */,
);
buildRules = (
);
dependencies = (
);
name = TestableDesignExample;
productName = TestableDesignExample;
productReference = 2475ED57920DD74087264FC7 /* TestableDesignExample.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
2475E53F7AA653832B1EFE63 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1130;
ORGANIZATIONNAME = Kuniwak;
TargetAttributes = {
2475EE0376871EE7203E0C05 = {
DevelopmentTeam = 4KWK2Q5EB9;
};
};
};
buildConfigurationList = 2475E125D452A919E93092F4 /* Build configuration list for PBXProject "TestableDesignExample" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
mainGroup = 2475E6024DA77F14399A3109;
productRefGroup = 2475E681FAAFE01165145F3E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
2475EE0376871EE7203E0C05 /* TestableDesignExample */,
2475E649AECAE4D1FBC505BA /* TestableDesignExampleTests */,
2475EAA9111BEB1BADAF4656 /* TestableDesignExampleUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
2475E69BA6DA525240196C0B /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2475E184C491ECB5D4520C4D /* Assets.xcassets in Resources */,
2475E9807E8143A4B3A751A5 /* LaunchScreen.storyboard in Resources */,
2475ED3436CA8F5D217CBC0E /* StargazerCell.xib in Resources */,
2475EFE934412F4F12A7A9DF /* StargazersScreenRootView.xib in Resources */,
2475E1A99BDA436628DAEAB6 /* UserScreenRootView.xib in Resources */,
2475EC6A531495B33EEFC4B1 /* octicons.ttf in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2475EF50A1201A71A821EC13 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
2475EF593B11C9178F25371E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2475E35401AF1A0DDB75BCFB /* user.json in Resources */,
2475EDC2FD509A53E43DEDA9 /* reposStargazers.json in Resources */,
2475E04BEA86BF4B81C721C1 /* sample.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
62A161491E73BD22003D28DC /* Run cartahge copy-frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"$(SRCROOT)/TestableDesignExample/input.xcfilelist",
);
inputPaths = (
);
name = "Run cartahge copy-frameworks";
outputFileListPaths = (
"$(SRCROOT)/TestableDesignExample/output.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/usr/local/bin/carthage copy-frameworks\n";
};
62A1614A1E73BDC0003D28DC /* Run R.swift */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"$TEMP_DIR/rswift-lastrun",
);
name = "Run R.swift";
outputPaths = (
$SRCROOT/TestableDesignExample/Resources/R.swift/R.generated.swift,
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$SRCROOT/libexec/rswift/rswift\" generate \"$SRCROOT/TestableDesignExample/Resources/R.swift/R.generated.swift\"\n";
};
62A1614F1E73C1D2003D28DC /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"$(SRCROOT)/TestableDesignExampleTests/input.xcfilelist",
);
inputPaths = (
"$(SRCROOT)/Carthage/Build/iOS/RxTest.framework",
"$(SRCROOT)/Carthage/Build/iOS/RxBlocking.framework",