project.pbxproj 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. // !$*UTF8*$!
  2. {
  3. archiveVersion = 1;
  4. classes = {
  5. };
  6. objectVersion = 55;
  7. objects = {
  8. /* Begin PBXBuildFile section */
  9. 2707607F276409C000064F59 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2707607E276409C000064F59 /* AppDelegate.swift */; };
  10. 27076081276409C000064F59 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27076080276409C000064F59 /* SceneDelegate.swift */; };
  11. 27076088276409C200064F59 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 27076087276409C200064F59 /* Assets.xcassets */; };
  12. 2707608B276409C200064F59 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 27076089276409C200064F59 /* LaunchScreen.storyboard */; };
  13. 27076096276409C300064F59 /* LiveLikeGiphyChallengeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27076095276409C300064F59 /* LiveLikeGiphyChallengeTests.swift */; };
  14. 270760A0276409C300064F59 /* LiveLikeGiphyChallengeUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2707609F276409C300064F59 /* LiveLikeGiphyChallengeUITests.swift */; };
  15. 270760A2276409C300064F59 /* LiveLikeGiphyChallengeUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 270760A1276409C300064F59 /* LiveLikeGiphyChallengeUITestsLaunchTests.swift */; };
  16. 5F35B00527A6B6E7002C1111 /* GifListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B00427A6B6E7002C1111 /* GifListViewController.swift */; };
  17. 5F35B00727A6B700002C1111 /* GifListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B00627A6B700002C1111 /* GifListPresenter.swift */; };
  18. 5F35B01027A6BEF1002C1111 /* GifObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B00F27A6BEF1002C1111 /* GifObject.swift */; };
  19. 5F35B01427A6BF76002C1111 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B01327A6BF76002C1111 /* Constants.swift */; };
  20. 5F35B01727A6C041002C1111 /* GiphyApiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B01627A6C041002C1111 /* GiphyApiManager.swift */; };
  21. 5F35B01B27A6C0C8002C1111 /* GifListPagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B01A27A6C0C8002C1111 /* GifListPagination.swift */; };
  22. 5F35B01D27A6C693002C1111 /* GiphyListResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B01C27A6C693002C1111 /* GiphyListResponse.swift */; };
  23. 5F35B02127A6E3BB002C1111 /* GifCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B02027A6E3BB002C1111 /* GifCollectionViewCell.swift */; };
  24. 5F35B02327A6F257002C1111 /* GifImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F35B02227A6F257002C1111 /* GifImage.swift */; };
  25. 5F84EADF27A7136B0008CA2B /* LLCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F84EADE27A7136B0008CA2B /* LLCache.swift */; };
  26. 5F84EAE427A721980008CA2B /* LLAnimatableImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F84EAE327A721980008CA2B /* LLAnimatableImageView.swift */; };
  27. 5F84EAE627A880540008CA2B /* GifListCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F84EAE527A880540008CA2B /* GifListCollectionViewFlowLayout.swift */; };
  28. /* End PBXBuildFile section */
  29. /* Begin PBXContainerItemProxy section */
  30. 27076092276409C300064F59 /* PBXContainerItemProxy */ = {
  31. isa = PBXContainerItemProxy;
  32. containerPortal = 27076073276409C000064F59 /* Project object */;
  33. proxyType = 1;
  34. remoteGlobalIDString = 2707607A276409C000064F59;
  35. remoteInfo = LiveLikeGiphyChallenge;
  36. };
  37. 2707609C276409C300064F59 /* PBXContainerItemProxy */ = {
  38. isa = PBXContainerItemProxy;
  39. containerPortal = 27076073276409C000064F59 /* Project object */;
  40. proxyType = 1;
  41. remoteGlobalIDString = 2707607A276409C000064F59;
  42. remoteInfo = LiveLikeGiphyChallenge;
  43. };
  44. /* End PBXContainerItemProxy section */
  45. /* Begin PBXFileReference section */
  46. 2707607B276409C000064F59 /* LiveLikeGiphyChallenge.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveLikeGiphyChallenge.app; sourceTree = BUILT_PRODUCTS_DIR; };
  47. 2707607E276409C000064F59 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
  48. 27076080276409C000064F59 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
  49. 27076087276409C200064F59 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
  50. 2707608A276409C200064F59 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
  51. 2707608C276409C200064F59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  52. 27076091276409C300064F59 /* LiveLikeGiphyChallengeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiveLikeGiphyChallengeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
  53. 27076095276409C300064F59 /* LiveLikeGiphyChallengeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveLikeGiphyChallengeTests.swift; sourceTree = "<group>"; };
  54. 2707609B276409C300064F59 /* LiveLikeGiphyChallengeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiveLikeGiphyChallengeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
  55. 2707609F276409C300064F59 /* LiveLikeGiphyChallengeUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveLikeGiphyChallengeUITests.swift; sourceTree = "<group>"; };
  56. 270760A1276409C300064F59 /* LiveLikeGiphyChallengeUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveLikeGiphyChallengeUITestsLaunchTests.swift; sourceTree = "<group>"; };
  57. 5F35B00427A6B6E7002C1111 /* GifListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifListViewController.swift; sourceTree = "<group>"; };
  58. 5F35B00627A6B700002C1111 /* GifListPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifListPresenter.swift; sourceTree = "<group>"; };
  59. 5F35B00F27A6BEF1002C1111 /* GifObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifObject.swift; sourceTree = "<group>"; };
  60. 5F35B01327A6BF76002C1111 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
  61. 5F35B01627A6C041002C1111 /* GiphyApiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiphyApiManager.swift; sourceTree = "<group>"; };
  62. 5F35B01A27A6C0C8002C1111 /* GifListPagination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifListPagination.swift; sourceTree = "<group>"; };
  63. 5F35B01C27A6C693002C1111 /* GiphyListResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiphyListResponse.swift; sourceTree = "<group>"; };
  64. 5F35B02027A6E3BB002C1111 /* GifCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifCollectionViewCell.swift; sourceTree = "<group>"; };
  65. 5F35B02227A6F257002C1111 /* GifImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifImage.swift; sourceTree = "<group>"; };
  66. 5F84EADE27A7136B0008CA2B /* LLCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LLCache.swift; sourceTree = "<group>"; };
  67. 5F84EAE327A721980008CA2B /* LLAnimatableImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LLAnimatableImageView.swift; sourceTree = "<group>"; };
  68. 5F84EAE527A880540008CA2B /* GifListCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifListCollectionViewFlowLayout.swift; sourceTree = "<group>"; };
  69. /* End PBXFileReference section */
  70. /* Begin PBXFrameworksBuildPhase section */
  71. 27076078276409C000064F59 /* Frameworks */ = {
  72. isa = PBXFrameworksBuildPhase;
  73. buildActionMask = 2147483647;
  74. files = (
  75. );
  76. runOnlyForDeploymentPostprocessing = 0;
  77. };
  78. 2707608E276409C300064F59 /* Frameworks */ = {
  79. isa = PBXFrameworksBuildPhase;
  80. buildActionMask = 2147483647;
  81. files = (
  82. );
  83. runOnlyForDeploymentPostprocessing = 0;
  84. };
  85. 27076098276409C300064F59 /* Frameworks */ = {
  86. isa = PBXFrameworksBuildPhase;
  87. buildActionMask = 2147483647;
  88. files = (
  89. );
  90. runOnlyForDeploymentPostprocessing = 0;
  91. };
  92. /* End PBXFrameworksBuildPhase section */
  93. /* Begin PBXGroup section */
  94. 27076072276409C000064F59 = {
  95. isa = PBXGroup;
  96. children = (
  97. 2707607D276409C000064F59 /* LiveLikeGiphyChallenge */,
  98. 27076094276409C300064F59 /* LiveLikeGiphyChallengeTests */,
  99. 2707609E276409C300064F59 /* LiveLikeGiphyChallengeUITests */,
  100. 2707607C276409C000064F59 /* Products */,
  101. );
  102. sourceTree = "<group>";
  103. };
  104. 2707607C276409C000064F59 /* Products */ = {
  105. isa = PBXGroup;
  106. children = (
  107. 2707607B276409C000064F59 /* LiveLikeGiphyChallenge.app */,
  108. 27076091276409C300064F59 /* LiveLikeGiphyChallengeTests.xctest */,
  109. 2707609B276409C300064F59 /* LiveLikeGiphyChallengeUITests.xctest */,
  110. );
  111. name = Products;
  112. sourceTree = "<group>";
  113. };
  114. 2707607D276409C000064F59 /* LiveLikeGiphyChallenge */ = {
  115. isa = PBXGroup;
  116. children = (
  117. 2707607E276409C000064F59 /* AppDelegate.swift */,
  118. 27076080276409C000064F59 /* SceneDelegate.swift */,
  119. 5F35B00C27A6BAB6002C1111 /* ViewControllers */,
  120. 5F35AFFF27A6B659002C1111 /* UIElements */,
  121. 5F35B00027A6B668002C1111 /* GiphyApi */,
  122. 5F35B00827A6BA60002C1111 /* Utilities */,
  123. 27076089276409C200064F59 /* LaunchScreen.storyboard */,
  124. 5F35B01327A6BF76002C1111 /* Constants.swift */,
  125. 27076087276409C200064F59 /* Assets.xcassets */,
  126. 2707608C276409C200064F59 /* Info.plist */,
  127. );
  128. path = LiveLikeGiphyChallenge;
  129. sourceTree = "<group>";
  130. };
  131. 27076094276409C300064F59 /* LiveLikeGiphyChallengeTests */ = {
  132. isa = PBXGroup;
  133. children = (
  134. 27076095276409C300064F59 /* LiveLikeGiphyChallengeTests.swift */,
  135. );
  136. path = LiveLikeGiphyChallengeTests;
  137. sourceTree = "<group>";
  138. };
  139. 2707609E276409C300064F59 /* LiveLikeGiphyChallengeUITests */ = {
  140. isa = PBXGroup;
  141. children = (
  142. 2707609F276409C300064F59 /* LiveLikeGiphyChallengeUITests.swift */,
  143. 270760A1276409C300064F59 /* LiveLikeGiphyChallengeUITestsLaunchTests.swift */,
  144. );
  145. path = LiveLikeGiphyChallengeUITests;
  146. sourceTree = "<group>";
  147. };
  148. 5F35AFFD27A6B646002C1111 /* Views */ = {
  149. isa = PBXGroup;
  150. children = (
  151. 5F35B00427A6B6E7002C1111 /* GifListViewController.swift */,
  152. );
  153. path = Views;
  154. sourceTree = "<group>";
  155. };
  156. 5F35AFFE27A6B64E002C1111 /* Presenters */ = {
  157. isa = PBXGroup;
  158. children = (
  159. 5F35B00627A6B700002C1111 /* GifListPresenter.swift */,
  160. );
  161. path = Presenters;
  162. sourceTree = "<group>";
  163. };
  164. 5F35AFFF27A6B659002C1111 /* UIElements */ = {
  165. isa = PBXGroup;
  166. children = (
  167. 5F84EAE227A7217C0008CA2B /* ImageViews */,
  168. 5F35B02427A6F590002C1111 /* CollectionViewFlows */,
  169. 5F35B01E27A6E38A002C1111 /* CollectionViewCells */,
  170. );
  171. path = UIElements;
  172. sourceTree = "<group>";
  173. };
  174. 5F35B00027A6B668002C1111 /* GiphyApi */ = {
  175. isa = PBXGroup;
  176. children = (
  177. 5F35B00E27A6BED0002C1111 /* Models */,
  178. 5F35B00D27A6BEC4002C1111 /* Response */,
  179. 5F35B01627A6C041002C1111 /* GiphyApiManager.swift */,
  180. );
  181. path = GiphyApi;
  182. sourceTree = "<group>";
  183. };
  184. 5F35B00827A6BA60002C1111 /* Utilities */ = {
  185. isa = PBXGroup;
  186. children = (
  187. 5F35B00927A6BA75002C1111 /* ImageChache */,
  188. );
  189. path = Utilities;
  190. sourceTree = "<group>";
  191. };
  192. 5F35B00927A6BA75002C1111 /* ImageChache */ = {
  193. isa = PBXGroup;
  194. children = (
  195. 5F84EADE27A7136B0008CA2B /* LLCache.swift */,
  196. );
  197. path = ImageChache;
  198. sourceTree = "<group>";
  199. };
  200. 5F35B00C27A6BAB6002C1111 /* ViewControllers */ = {
  201. isa = PBXGroup;
  202. children = (
  203. 5F35AFFD27A6B646002C1111 /* Views */,
  204. 5F35AFFE27A6B64E002C1111 /* Presenters */,
  205. );
  206. path = ViewControllers;
  207. sourceTree = "<group>";
  208. };
  209. 5F35B00D27A6BEC4002C1111 /* Response */ = {
  210. isa = PBXGroup;
  211. children = (
  212. 5F35B01C27A6C693002C1111 /* GiphyListResponse.swift */,
  213. );
  214. path = Response;
  215. sourceTree = "<group>";
  216. };
  217. 5F35B00E27A6BED0002C1111 /* Models */ = {
  218. isa = PBXGroup;
  219. children = (
  220. 5F35B02227A6F257002C1111 /* GifImage.swift */,
  221. 5F35B00F27A6BEF1002C1111 /* GifObject.swift */,
  222. 5F35B01A27A6C0C8002C1111 /* GifListPagination.swift */,
  223. );
  224. path = Models;
  225. sourceTree = "<group>";
  226. };
  227. 5F35B01E27A6E38A002C1111 /* CollectionViewCells */ = {
  228. isa = PBXGroup;
  229. children = (
  230. 5F35B01F27A6E395002C1111 /* GifCollectionViewCell */,
  231. );
  232. path = CollectionViewCells;
  233. sourceTree = "<group>";
  234. };
  235. 5F35B01F27A6E395002C1111 /* GifCollectionViewCell */ = {
  236. isa = PBXGroup;
  237. children = (
  238. 5F35B02027A6E3BB002C1111 /* GifCollectionViewCell.swift */,
  239. );
  240. path = GifCollectionViewCell;
  241. sourceTree = "<group>";
  242. };
  243. 5F35B02427A6F590002C1111 /* CollectionViewFlows */ = {
  244. isa = PBXGroup;
  245. children = (
  246. 5F84EAE527A880540008CA2B /* GifListCollectionViewFlowLayout.swift */,
  247. );
  248. path = CollectionViewFlows;
  249. sourceTree = "<group>";
  250. };
  251. 5F84EAE227A7217C0008CA2B /* ImageViews */ = {
  252. isa = PBXGroup;
  253. children = (
  254. 5F84EAE327A721980008CA2B /* LLAnimatableImageView.swift */,
  255. );
  256. path = ImageViews;
  257. sourceTree = "<group>";
  258. };
  259. /* End PBXGroup section */
  260. /* Begin PBXNativeTarget section */
  261. 2707607A276409C000064F59 /* LiveLikeGiphyChallenge */ = {
  262. isa = PBXNativeTarget;
  263. buildConfigurationList = 270760A5276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallenge" */;
  264. buildPhases = (
  265. 27076077276409C000064F59 /* Sources */,
  266. 27076078276409C000064F59 /* Frameworks */,
  267. 27076079276409C000064F59 /* Resources */,
  268. );
  269. buildRules = (
  270. );
  271. dependencies = (
  272. );
  273. name = LiveLikeGiphyChallenge;
  274. productName = LiveLikeGiphyChallenge;
  275. productReference = 2707607B276409C000064F59 /* LiveLikeGiphyChallenge.app */;
  276. productType = "com.apple.product-type.application";
  277. };
  278. 27076090276409C300064F59 /* LiveLikeGiphyChallengeTests */ = {
  279. isa = PBXNativeTarget;
  280. buildConfigurationList = 270760A8276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallengeTests" */;
  281. buildPhases = (
  282. 2707608D276409C300064F59 /* Sources */,
  283. 2707608E276409C300064F59 /* Frameworks */,
  284. 2707608F276409C300064F59 /* Resources */,
  285. );
  286. buildRules = (
  287. );
  288. dependencies = (
  289. 27076093276409C300064F59 /* PBXTargetDependency */,
  290. );
  291. name = LiveLikeGiphyChallengeTests;
  292. productName = LiveLikeGiphyChallengeTests;
  293. productReference = 27076091276409C300064F59 /* LiveLikeGiphyChallengeTests.xctest */;
  294. productType = "com.apple.product-type.bundle.unit-test";
  295. };
  296. 2707609A276409C300064F59 /* LiveLikeGiphyChallengeUITests */ = {
  297. isa = PBXNativeTarget;
  298. buildConfigurationList = 270760AB276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallengeUITests" */;
  299. buildPhases = (
  300. 27076097276409C300064F59 /* Sources */,
  301. 27076098276409C300064F59 /* Frameworks */,
  302. 27076099276409C300064F59 /* Resources */,
  303. );
  304. buildRules = (
  305. );
  306. dependencies = (
  307. 2707609D276409C300064F59 /* PBXTargetDependency */,
  308. );
  309. name = LiveLikeGiphyChallengeUITests;
  310. productName = LiveLikeGiphyChallengeUITests;
  311. productReference = 2707609B276409C300064F59 /* LiveLikeGiphyChallengeUITests.xctest */;
  312. productType = "com.apple.product-type.bundle.ui-testing";
  313. };
  314. /* End PBXNativeTarget section */
  315. /* Begin PBXProject section */
  316. 27076073276409C000064F59 /* Project object */ = {
  317. isa = PBXProject;
  318. attributes = {
  319. BuildIndependentTargetsInParallel = 1;
  320. LastSwiftUpdateCheck = 1310;
  321. LastUpgradeCheck = 1310;
  322. TargetAttributes = {
  323. 2707607A276409C000064F59 = {
  324. CreatedOnToolsVersion = 13.1;
  325. };
  326. 27076090276409C300064F59 = {
  327. CreatedOnToolsVersion = 13.1;
  328. TestTargetID = 2707607A276409C000064F59;
  329. };
  330. 2707609A276409C300064F59 = {
  331. CreatedOnToolsVersion = 13.1;
  332. TestTargetID = 2707607A276409C000064F59;
  333. };
  334. };
  335. };
  336. buildConfigurationList = 27076076276409C000064F59 /* Build configuration list for PBXProject "LiveLikeGiphyChallenge" */;
  337. compatibilityVersion = "Xcode 13.0";
  338. developmentRegion = en;
  339. hasScannedForEncodings = 0;
  340. knownRegions = (
  341. en,
  342. Base,
  343. );
  344. mainGroup = 27076072276409C000064F59;
  345. productRefGroup = 2707607C276409C000064F59 /* Products */;
  346. projectDirPath = "";
  347. projectRoot = "";
  348. targets = (
  349. 2707607A276409C000064F59 /* LiveLikeGiphyChallenge */,
  350. 27076090276409C300064F59 /* LiveLikeGiphyChallengeTests */,
  351. 2707609A276409C300064F59 /* LiveLikeGiphyChallengeUITests */,
  352. );
  353. };
  354. /* End PBXProject section */
  355. /* Begin PBXResourcesBuildPhase section */
  356. 27076079276409C000064F59 /* Resources */ = {
  357. isa = PBXResourcesBuildPhase;
  358. buildActionMask = 2147483647;
  359. files = (
  360. 2707608B276409C200064F59 /* LaunchScreen.storyboard in Resources */,
  361. 27076088276409C200064F59 /* Assets.xcassets in Resources */,
  362. );
  363. runOnlyForDeploymentPostprocessing = 0;
  364. };
  365. 2707608F276409C300064F59 /* Resources */ = {
  366. isa = PBXResourcesBuildPhase;
  367. buildActionMask = 2147483647;
  368. files = (
  369. );
  370. runOnlyForDeploymentPostprocessing = 0;
  371. };
  372. 27076099276409C300064F59 /* Resources */ = {
  373. isa = PBXResourcesBuildPhase;
  374. buildActionMask = 2147483647;
  375. files = (
  376. );
  377. runOnlyForDeploymentPostprocessing = 0;
  378. };
  379. /* End PBXResourcesBuildPhase section */
  380. /* Begin PBXSourcesBuildPhase section */
  381. 27076077276409C000064F59 /* Sources */ = {
  382. isa = PBXSourcesBuildPhase;
  383. buildActionMask = 2147483647;
  384. files = (
  385. 2707607F276409C000064F59 /* AppDelegate.swift in Sources */,
  386. 5F35B01027A6BEF1002C1111 /* GifObject.swift in Sources */,
  387. 5F35B02127A6E3BB002C1111 /* GifCollectionViewCell.swift in Sources */,
  388. 27076081276409C000064F59 /* SceneDelegate.swift in Sources */,
  389. 5F35B01B27A6C0C8002C1111 /* GifListPagination.swift in Sources */,
  390. 5F84EAE627A880540008CA2B /* GifListCollectionViewFlowLayout.swift in Sources */,
  391. 5F35B00527A6B6E7002C1111 /* GifListViewController.swift in Sources */,
  392. 5F35B02327A6F257002C1111 /* GifImage.swift in Sources */,
  393. 5F84EADF27A7136B0008CA2B /* LLCache.swift in Sources */,
  394. 5F35B01D27A6C693002C1111 /* GiphyListResponse.swift in Sources */,
  395. 5F35B00727A6B700002C1111 /* GifListPresenter.swift in Sources */,
  396. 5F35B01727A6C041002C1111 /* GiphyApiManager.swift in Sources */,
  397. 5F84EAE427A721980008CA2B /* LLAnimatableImageView.swift in Sources */,
  398. 5F35B01427A6BF76002C1111 /* Constants.swift in Sources */,
  399. );
  400. runOnlyForDeploymentPostprocessing = 0;
  401. };
  402. 2707608D276409C300064F59 /* Sources */ = {
  403. isa = PBXSourcesBuildPhase;
  404. buildActionMask = 2147483647;
  405. files = (
  406. 27076096276409C300064F59 /* LiveLikeGiphyChallengeTests.swift in Sources */,
  407. );
  408. runOnlyForDeploymentPostprocessing = 0;
  409. };
  410. 27076097276409C300064F59 /* Sources */ = {
  411. isa = PBXSourcesBuildPhase;
  412. buildActionMask = 2147483647;
  413. files = (
  414. 270760A0276409C300064F59 /* LiveLikeGiphyChallengeUITests.swift in Sources */,
  415. 270760A2276409C300064F59 /* LiveLikeGiphyChallengeUITestsLaunchTests.swift in Sources */,
  416. );
  417. runOnlyForDeploymentPostprocessing = 0;
  418. };
  419. /* End PBXSourcesBuildPhase section */
  420. /* Begin PBXTargetDependency section */
  421. 27076093276409C300064F59 /* PBXTargetDependency */ = {
  422. isa = PBXTargetDependency;
  423. target = 2707607A276409C000064F59 /* LiveLikeGiphyChallenge */;
  424. targetProxy = 27076092276409C300064F59 /* PBXContainerItemProxy */;
  425. };
  426. 2707609D276409C300064F59 /* PBXTargetDependency */ = {
  427. isa = PBXTargetDependency;
  428. target = 2707607A276409C000064F59 /* LiveLikeGiphyChallenge */;
  429. targetProxy = 2707609C276409C300064F59 /* PBXContainerItemProxy */;
  430. };
  431. /* End PBXTargetDependency section */
  432. /* Begin PBXVariantGroup section */
  433. 27076089276409C200064F59 /* LaunchScreen.storyboard */ = {
  434. isa = PBXVariantGroup;
  435. children = (
  436. 2707608A276409C200064F59 /* Base */,
  437. );
  438. name = LaunchScreen.storyboard;
  439. sourceTree = "<group>";
  440. };
  441. /* End PBXVariantGroup section */
  442. /* Begin XCBuildConfiguration section */
  443. 270760A3276409C300064F59 /* Debug */ = {
  444. isa = XCBuildConfiguration;
  445. buildSettings = {
  446. ALWAYS_SEARCH_USER_PATHS = NO;
  447. CLANG_ANALYZER_NONNULL = YES;
  448. CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  449. CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
  450. CLANG_CXX_LIBRARY = "libc++";
  451. CLANG_ENABLE_MODULES = YES;
  452. CLANG_ENABLE_OBJC_ARC = YES;
  453. CLANG_ENABLE_OBJC_WEAK = YES;
  454. CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  455. CLANG_WARN_BOOL_CONVERSION = YES;
  456. CLANG_WARN_COMMA = YES;
  457. CLANG_WARN_CONSTANT_CONVERSION = YES;
  458. CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  459. CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  460. CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  461. CLANG_WARN_EMPTY_BODY = YES;
  462. CLANG_WARN_ENUM_CONVERSION = YES;
  463. CLANG_WARN_INFINITE_RECURSION = YES;
  464. CLANG_WARN_INT_CONVERSION = YES;
  465. CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  466. CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  467. CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  468. CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  469. CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
  470. CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  471. CLANG_WARN_STRICT_PROTOTYPES = YES;
  472. CLANG_WARN_SUSPICIOUS_MOVE = YES;
  473. CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  474. CLANG_WARN_UNREACHABLE_CODE = YES;
  475. CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  476. COPY_PHASE_STRIP = NO;
  477. DEBUG_INFORMATION_FORMAT = dwarf;
  478. ENABLE_STRICT_OBJC_MSGSEND = YES;
  479. ENABLE_TESTABILITY = YES;
  480. GCC_C_LANGUAGE_STANDARD = gnu11;
  481. GCC_DYNAMIC_NO_PIC = NO;
  482. GCC_NO_COMMON_BLOCKS = YES;
  483. GCC_OPTIMIZATION_LEVEL = 0;
  484. GCC_PREPROCESSOR_DEFINITIONS = (
  485. "DEBUG=1",
  486. "$(inherited)",
  487. );
  488. GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  489. GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  490. GCC_WARN_UNDECLARED_SELECTOR = YES;
  491. GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  492. GCC_WARN_UNUSED_FUNCTION = YES;
  493. GCC_WARN_UNUSED_VARIABLE = YES;
  494. IPHONEOS_DEPLOYMENT_TARGET = 15.0;
  495. MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
  496. MTL_FAST_MATH = YES;
  497. ONLY_ACTIVE_ARCH = YES;
  498. SDKROOT = iphoneos;
  499. SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  500. SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  501. };
  502. name = Debug;
  503. };
  504. 270760A4276409C300064F59 /* Release */ = {
  505. isa = XCBuildConfiguration;
  506. buildSettings = {
  507. ALWAYS_SEARCH_USER_PATHS = NO;
  508. CLANG_ANALYZER_NONNULL = YES;
  509. CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  510. CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
  511. CLANG_CXX_LIBRARY = "libc++";
  512. CLANG_ENABLE_MODULES = YES;
  513. CLANG_ENABLE_OBJC_ARC = YES;
  514. CLANG_ENABLE_OBJC_WEAK = YES;
  515. CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  516. CLANG_WARN_BOOL_CONVERSION = YES;
  517. CLANG_WARN_COMMA = YES;
  518. CLANG_WARN_CONSTANT_CONVERSION = YES;
  519. CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  520. CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  521. CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  522. CLANG_WARN_EMPTY_BODY = YES;
  523. CLANG_WARN_ENUM_CONVERSION = YES;
  524. CLANG_WARN_INFINITE_RECURSION = YES;
  525. CLANG_WARN_INT_CONVERSION = YES;
  526. CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  527. CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  528. CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  529. CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  530. CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
  531. CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  532. CLANG_WARN_STRICT_PROTOTYPES = YES;
  533. CLANG_WARN_SUSPICIOUS_MOVE = YES;
  534. CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  535. CLANG_WARN_UNREACHABLE_CODE = YES;
  536. CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  537. COPY_PHASE_STRIP = NO;
  538. DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  539. ENABLE_NS_ASSERTIONS = NO;
  540. ENABLE_STRICT_OBJC_MSGSEND = YES;
  541. GCC_C_LANGUAGE_STANDARD = gnu11;
  542. GCC_NO_COMMON_BLOCKS = YES;
  543. GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  544. GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  545. GCC_WARN_UNDECLARED_SELECTOR = YES;
  546. GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  547. GCC_WARN_UNUSED_FUNCTION = YES;
  548. GCC_WARN_UNUSED_VARIABLE = YES;
  549. IPHONEOS_DEPLOYMENT_TARGET = 15.0;
  550. MTL_ENABLE_DEBUG_INFO = NO;
  551. MTL_FAST_MATH = YES;
  552. SDKROOT = iphoneos;
  553. SWIFT_COMPILATION_MODE = wholemodule;
  554. SWIFT_OPTIMIZATION_LEVEL = "-O";
  555. VALIDATE_PRODUCT = YES;
  556. };
  557. name = Release;
  558. };
  559. 270760A6276409C300064F59 /* Debug */ = {
  560. isa = XCBuildConfiguration;
  561. buildSettings = {
  562. ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  563. ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
  564. CODE_SIGN_STYLE = Automatic;
  565. CURRENT_PROJECT_VERSION = 1;
  566. DEVELOPMENT_TEAM = "";
  567. GENERATE_INFOPLIST_FILE = YES;
  568. INFOPLIST_FILE = LiveLikeGiphyChallenge/Info.plist;
  569. INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
  570. INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
  571. INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortraitUpsideDown";
  572. INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
  573. INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
  574. LD_RUNPATH_SEARCH_PATHS = (
  575. "$(inherited)",
  576. "@executable_path/Frameworks",
  577. );
  578. MARKETING_VERSION = 1.0;
  579. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallenge;
  580. PRODUCT_NAME = "$(TARGET_NAME)";
  581. SWIFT_EMIT_LOC_STRINGS = YES;
  582. SWIFT_VERSION = 5.0;
  583. TARGETED_DEVICE_FAMILY = 1;
  584. };
  585. name = Debug;
  586. };
  587. 270760A7276409C300064F59 /* Release */ = {
  588. isa = XCBuildConfiguration;
  589. buildSettings = {
  590. ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  591. ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
  592. CODE_SIGN_STYLE = Automatic;
  593. CURRENT_PROJECT_VERSION = 1;
  594. DEVELOPMENT_TEAM = "";
  595. GENERATE_INFOPLIST_FILE = YES;
  596. INFOPLIST_FILE = LiveLikeGiphyChallenge/Info.plist;
  597. INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
  598. INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
  599. INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortraitUpsideDown";
  600. INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
  601. INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
  602. LD_RUNPATH_SEARCH_PATHS = (
  603. "$(inherited)",
  604. "@executable_path/Frameworks",
  605. );
  606. MARKETING_VERSION = 1.0;
  607. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallenge;
  608. PRODUCT_NAME = "$(TARGET_NAME)";
  609. SWIFT_EMIT_LOC_STRINGS = YES;
  610. SWIFT_VERSION = 5.0;
  611. TARGETED_DEVICE_FAMILY = 1;
  612. };
  613. name = Release;
  614. };
  615. 270760A9276409C300064F59 /* Debug */ = {
  616. isa = XCBuildConfiguration;
  617. buildSettings = {
  618. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
  619. BUNDLE_LOADER = "$(TEST_HOST)";
  620. CODE_SIGN_STYLE = Automatic;
  621. CURRENT_PROJECT_VERSION = 1;
  622. GENERATE_INFOPLIST_FILE = YES;
  623. IPHONEOS_DEPLOYMENT_TARGET = 15.0;
  624. LD_RUNPATH_SEARCH_PATHS = (
  625. "$(inherited)",
  626. "@executable_path/Frameworks",
  627. "@loader_path/Frameworks",
  628. );
  629. MARKETING_VERSION = 1.0;
  630. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallengeTests;
  631. PRODUCT_NAME = "$(TARGET_NAME)";
  632. SWIFT_EMIT_LOC_STRINGS = NO;
  633. SWIFT_VERSION = 5.0;
  634. TARGETED_DEVICE_FAMILY = "1,2";
  635. TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LiveLikeGiphyChallenge.app/LiveLikeGiphyChallenge";
  636. };
  637. name = Debug;
  638. };
  639. 270760AA276409C300064F59 /* Release */ = {
  640. isa = XCBuildConfiguration;
  641. buildSettings = {
  642. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
  643. BUNDLE_LOADER = "$(TEST_HOST)";
  644. CODE_SIGN_STYLE = Automatic;
  645. CURRENT_PROJECT_VERSION = 1;
  646. GENERATE_INFOPLIST_FILE = YES;
  647. IPHONEOS_DEPLOYMENT_TARGET = 15.0;
  648. LD_RUNPATH_SEARCH_PATHS = (
  649. "$(inherited)",
  650. "@executable_path/Frameworks",
  651. "@loader_path/Frameworks",
  652. );
  653. MARKETING_VERSION = 1.0;
  654. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallengeTests;
  655. PRODUCT_NAME = "$(TARGET_NAME)";
  656. SWIFT_EMIT_LOC_STRINGS = NO;
  657. SWIFT_VERSION = 5.0;
  658. TARGETED_DEVICE_FAMILY = "1,2";
  659. TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LiveLikeGiphyChallenge.app/LiveLikeGiphyChallenge";
  660. };
  661. name = Release;
  662. };
  663. 270760AC276409C300064F59 /* Debug */ = {
  664. isa = XCBuildConfiguration;
  665. buildSettings = {
  666. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
  667. CODE_SIGN_STYLE = Automatic;
  668. CURRENT_PROJECT_VERSION = 1;
  669. GENERATE_INFOPLIST_FILE = YES;
  670. LD_RUNPATH_SEARCH_PATHS = (
  671. "$(inherited)",
  672. "@executable_path/Frameworks",
  673. "@loader_path/Frameworks",
  674. );
  675. MARKETING_VERSION = 1.0;
  676. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallengeUITests;
  677. PRODUCT_NAME = "$(TARGET_NAME)";
  678. SWIFT_EMIT_LOC_STRINGS = NO;
  679. SWIFT_VERSION = 5.0;
  680. TARGETED_DEVICE_FAMILY = "1,2";
  681. TEST_TARGET_NAME = LiveLikeGiphyChallenge;
  682. };
  683. name = Debug;
  684. };
  685. 270760AD276409C300064F59 /* Release */ = {
  686. isa = XCBuildConfiguration;
  687. buildSettings = {
  688. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
  689. CODE_SIGN_STYLE = Automatic;
  690. CURRENT_PROJECT_VERSION = 1;
  691. GENERATE_INFOPLIST_FILE = YES;
  692. LD_RUNPATH_SEARCH_PATHS = (
  693. "$(inherited)",
  694. "@executable_path/Frameworks",
  695. "@loader_path/Frameworks",
  696. );
  697. MARKETING_VERSION = 1.0;
  698. PRODUCT_BUNDLE_IDENTIFIER = com.livelike.LiveLikeGiphyChallengeUITests;
  699. PRODUCT_NAME = "$(TARGET_NAME)";
  700. SWIFT_EMIT_LOC_STRINGS = NO;
  701. SWIFT_VERSION = 5.0;
  702. TARGETED_DEVICE_FAMILY = "1,2";
  703. TEST_TARGET_NAME = LiveLikeGiphyChallenge;
  704. };
  705. name = Release;
  706. };
  707. /* End XCBuildConfiguration section */
  708. /* Begin XCConfigurationList section */
  709. 27076076276409C000064F59 /* Build configuration list for PBXProject "LiveLikeGiphyChallenge" */ = {
  710. isa = XCConfigurationList;
  711. buildConfigurations = (
  712. 270760A3276409C300064F59 /* Debug */,
  713. 270760A4276409C300064F59 /* Release */,
  714. );
  715. defaultConfigurationIsVisible = 0;
  716. defaultConfigurationName = Release;
  717. };
  718. 270760A5276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallenge" */ = {
  719. isa = XCConfigurationList;
  720. buildConfigurations = (
  721. 270760A6276409C300064F59 /* Debug */,
  722. 270760A7276409C300064F59 /* Release */,
  723. );
  724. defaultConfigurationIsVisible = 0;
  725. defaultConfigurationName = Release;
  726. };
  727. 270760A8276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallengeTests" */ = {
  728. isa = XCConfigurationList;
  729. buildConfigurations = (
  730. 270760A9276409C300064F59 /* Debug */,
  731. 270760AA276409C300064F59 /* Release */,
  732. );
  733. defaultConfigurationIsVisible = 0;
  734. defaultConfigurationName = Release;
  735. };
  736. 270760AB276409C300064F59 /* Build configuration list for PBXNativeTarget "LiveLikeGiphyChallengeUITests" */ = {
  737. isa = XCConfigurationList;
  738. buildConfigurations = (
  739. 270760AC276409C300064F59 /* Debug */,
  740. 270760AD276409C300064F59 /* Release */,
  741. );
  742. defaultConfigurationIsVisible = 0;
  743. defaultConfigurationName = Release;
  744. };
  745. /* End XCConfigurationList section */
  746. };
  747. rootObject = 27076073276409C000064F59 /* Project object */;
  748. }