From e3b7b5573c9f8ee239906c92efed5c16b7355f8d Mon Sep 17 00:00:00 2001 From: Gabriel Castro Date: Fri, 14 Oct 2022 11:56:48 -0300 Subject: [PATCH 1/5] criando ContactListView --- .../FinanceApp.xcodeproj/project.pbxproj | 20 ++++-- .../AppDelegate/SceneDelegate.swift | 2 +- .../ActivityDetails/ActivityDetailsView.swift | 2 +- .../Cells/ContactListTableViewCell.swift | 50 ++++++++++++++ .../Screens/ContactList/ContactListView.swift | 69 ++++++++++++++++++- .../ContactListViewController.swift | 7 +- 6 files changed, 140 insertions(+), 10 deletions(-) create mode 100644 solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift diff --git a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj index 514a4d3..6808c11 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj +++ b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 25C8174D28F60A0C003127C0 /* ViewCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8174C28F60A0C003127C0 /* ViewCodable.swift */; }; 25C8175528F772FD003127C0 /* AccountSummaryViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8175428F772FD003127C0 /* AccountSummaryViewTests.swift */; }; 65424F8C28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F8B28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift */; }; + 65424F9428F99E8700F7E8D4 /* ContactListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F9328F99E8700F7E8D4 /* ContactListView.swift */; }; 98584A6D277E32C30028DBEA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584A6C277E32C30028DBEA /* AppDelegate.swift */; }; 98584A6F277E32C30028DBEA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584A6E277E32C30028DBEA /* SceneDelegate.swift */; }; 98584A76277E32C50028DBEA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98584A75277E32C50028DBEA /* Assets.xcassets */; }; @@ -27,7 +28,7 @@ 98584AF4277E50430028DBEA /* ConfirmationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584AE2277E50430028DBEA /* ConfirmationViewController.swift */; }; 98584B10277E605F0028DBEA /* ActivityDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584B0A277E605F0028DBEA /* ActivityDetailsViewController.swift */; }; 98584B14277E605F0028DBEA /* ActivityDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584B0E277E605F0028DBEA /* ActivityDetailsView.swift */; }; - 98584B1F277E60740028DBEA /* ContactListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584B19277E60740028DBEA /* ContactListView.swift */; }; + 98584B1F277E60740028DBEA /* ContactListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584B19277E60740028DBEA /* ContactListTableViewCell.swift */; }; 98584B20277E60740028DBEA /* ContactListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584B1A277E60740028DBEA /* ContactListViewController.swift */; }; 989627E027ADC2F60009A07F /* DebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 989627DF27ADC2F60009A07F /* DebugViewController.swift */; }; 98C8A4D927C8152200A630ED /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4D827C8152200A630ED /* String+Extensions.swift */; }; @@ -61,6 +62,7 @@ 55C4E25CA63BCFCC105EC051 /* Pods_FinanceApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 61A71CDF7B0095F152A3CD4E /* Pods-FinanceApp-FinanceAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; sourceTree = ""; }; 65424F8B28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewTests.swift; sourceTree = ""; }; + 65424F9328F99E8700F7E8D4 /* ContactListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListView.swift; sourceTree = ""; }; 6989344458FFDBA154C3EC32 /* Pods-FinanceApp-FinanceAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; sourceTree = ""; }; 98584A69277E32C30028DBEA /* FinanceApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FinanceApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 98584A6C277E32C30028DBEA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -80,7 +82,7 @@ 98584AE2277E50430028DBEA /* ConfirmationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfirmationViewController.swift; sourceTree = ""; }; 98584B0A277E605F0028DBEA /* ActivityDetailsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewController.swift; sourceTree = ""; }; 98584B0E277E605F0028DBEA /* ActivityDetailsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityDetailsView.swift; sourceTree = ""; }; - 98584B19277E60740028DBEA /* ContactListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactListView.swift; sourceTree = ""; }; + 98584B19277E60740028DBEA /* ContactListTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactListTableViewCell.swift; sourceTree = ""; }; 98584B1A277E60740028DBEA /* ContactListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactListViewController.swift; sourceTree = ""; }; 989627DF27ADC2F60009A07F /* DebugViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugViewController.swift; sourceTree = ""; }; 98C8A4D827C8152200A630ED /* String+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = ""; }; @@ -161,6 +163,14 @@ path = ActivityDetails; sourceTree = ""; }; + 65424F9228F99E6400F7E8D4 /* Cells */ = { + isa = PBXGroup; + children = ( + 98584B19277E60740028DBEA /* ContactListTableViewCell.swift */, + ); + path = Cells; + sourceTree = ""; + }; 820E387591A4D6261F2D6AF5 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -314,8 +324,9 @@ 98584B08277E602C0028DBEA /* ContactList */ = { isa = PBXGroup; children = ( - 98584B19277E60740028DBEA /* ContactListView.swift */, 98584B1A277E60740028DBEA /* ContactListViewController.swift */, + 65424F9328F99E8700F7E8D4 /* ContactListView.swift */, + 65424F9228F99E6400F7E8D4 /* Cells */, ); path = ContactList; sourceTree = ""; @@ -505,6 +516,7 @@ buildActionMask = 2147483647; files = ( 25C8174D28F60A0C003127C0 /* ViewCodable.swift in Sources */, + 65424F9428F99E8700F7E8D4 /* ContactListView.swift in Sources */, 98584AC3277E42E80028DBEA /* FinanceService.swift in Sources */, 25C8174B28F608BF003127C0 /* AccountSummaryView.swift in Sources */, 98584B10277E605F0028DBEA /* ActivityDetailsViewController.swift in Sources */, @@ -524,7 +536,7 @@ 98584A6D277E32C30028DBEA /* AppDelegate.swift in Sources */, 98584A6F277E32C30028DBEA /* SceneDelegate.swift in Sources */, 98584AA7277E35F10028DBEA /* HomeView.swift in Sources */, - 98584B1F277E60740028DBEA /* ContactListView.swift in Sources */, + 98584B1F277E60740028DBEA /* ContactListTableViewCell.swift in Sources */, 989627E027ADC2F60009A07F /* DebugViewController.swift in Sources */, 98584AA5277E35E90028DBEA /* HomeViewController.swift in Sources */, 98584AED277E50430028DBEA /* UserProfileView.swift in Sources */, diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift b/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift index a8621bc..6720d84 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift @@ -17,7 +17,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { guard let windowScene = (scene as? UIWindowScene) else { return } self.window = UIWindow(frame: UIScreen.main.bounds) - self.window?.rootViewController = UINavigationController(rootViewController: ActivityDetailsViewController()) + self.window?.rootViewController = UINavigationController(rootViewController: ContactListViewController()) self.window?.windowScene = windowScene self.window?.makeKeyAndVisible() } diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsView.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsView.swift index f0d3d02..c059209 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsView.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ActivityDetails/ActivityDetailsView.swift @@ -20,7 +20,7 @@ final class ActivityDetailsView: UIView { return nil } - // MARK: Interface Elements + // MARK: Visual Components private lazy var vStack: UIStackView = { let stack = UIStackView() stack.translatesAutoresizingMaskIntoConstraints = false diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift new file mode 100644 index 0000000..c250dac --- /dev/null +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift @@ -0,0 +1,50 @@ +// +// ContactListView.swift +// FinanceApp +// +// Created by Rodrigo Borges on 30/12/21. +// + +import UIKit + +final class ContactCellView: UITableViewCell { + static let identifier = "ContactCellIdentifier" + + //MARK: - Init + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + self.accessoryType = .disclosureIndicator + setupView() + } + + required init?(coder: NSCoder) { + return nil + } + + //MARK: - Visual Components + lazy var container: UIStackView = { + let element = UIStackView() + element.translatesAutoresizingMaskIntoConstraints = false + element.axis = .horizontal + element.alignment = .center + + return element + }() +} + + //MARK: - ViewCodable +extension ContactCellView: ViewCodable { + + func buildHierarchy() { + addSubview(container) + } + + func setupConstraints() { + NSLayoutConstraint.activate([ + container.topAnchor.constraint(equalTo: topAnchor), + container.trailingAnchor.constraint(equalTo: trailingAnchor), + container.bottomAnchor.constraint(equalTo: bottomAnchor), + container.leadingAnchor.constraint(equalTo: leadingAnchor), + ]) + } +} diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift index 06a4708..6060fbc 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift @@ -2,11 +2,76 @@ // ContactListView.swift // FinanceApp // -// Created by Rodrigo Borges on 30/12/21. +// Created by Gabriel de Castro Chaves on 14/10/22. // import UIKit -class ContactListView: UIView { +final class ContactListView: UIView { + + static let cellSize = CGFloat(80) + + // MARK: - Viusal Components + lazy var tableView: UITableView = { + let tableView = UITableView(frame: .zero) + tableView.translatesAutoresizingMaskIntoConstraints = false + tableView.register(ContactCellView.self, forCellReuseIdentifier: ContactCellView.identifier) + tableView.dataSource = self + tableView.delegate = self + return tableView + }() + + // MARK: - Init + init() { + super.init(frame: .zero) + self.backgroundColor = .white + setupView() + tableView.reloadData() + } + + required init?(coder: NSCoder) { + return nil + } + +} + +// MARK: - ViewCodable +extension ContactListView: ViewCodable { + + func buildHierarchy() { + addSubview(tableView) + } + + func setupConstraints() { + NSLayoutConstraint.activate([ + tableView.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor), + tableView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor), + tableView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor), + tableView.bottomAnchor.constraint(equalTo: safeAreaLayoutGuide.bottomAnchor), + ]) + } + +} +// MARK: - TableView +extension ContactListView: UITableViewDataSource, UITableViewDelegate { + + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + + return 8 + } + + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + + guard let cell = tableView.dequeueReusableCell(withIdentifier: ContactCellView.identifier, for: indexPath) as? ContactCellView else { return UITableViewCell() } + + return cell + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return ContactListView.cellSize + } + } + + diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift index 19efab5..6326efc 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift @@ -8,8 +8,11 @@ import UIKit class ContactListViewController: UIViewController { - + let container = ContactListView() + override func loadView() { - self.view = ContactListView() + self.view = container } } + + From 8810736909d6b674e63e36fa76f26593878f0bb6 Mon Sep 17 00:00:00 2001 From: Gabriel Castro Date: Mon, 17 Oct 2022 13:53:21 -0300 Subject: [PATCH 2/5] implementando testes --- .../FinanceApp.xcodeproj/project.pbxproj | 24 +++++++ .../Cells/ContactListTableViewCell.swift | 63 ++++++++++++++++-- .../Screens/ContactList/ContactListView.swift | 15 ++--- .../ContactListViewController.swift | 5 +- .../Cells/ContactListTableViewCellTests.swift | 27 ++++++++ .../ContactList/ContactListViewTests.swift | 27 ++++++++ .../testLoadingComponent.1.png | Bin 0 -> 91801 bytes .../ContactListViewTests/testRenderView.1.png | Bin 0 -> 91801 bytes 8 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift create mode 100644 solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift create mode 100644 solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testLoadingComponent.1.png create mode 100644 solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testRenderView.1.png diff --git a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj index 6808c11..19df0f5 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj +++ b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj @@ -13,6 +13,8 @@ 25C8175528F772FD003127C0 /* AccountSummaryViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8175428F772FD003127C0 /* AccountSummaryViewTests.swift */; }; 65424F8C28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F8B28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift */; }; 65424F9428F99E8700F7E8D4 /* ContactListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F9328F99E8700F7E8D4 /* ContactListView.swift */; }; + 65424F9828F9D85000F7E8D4 /* ContactListViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F9728F9D85000F7E8D4 /* ContactListViewTests.swift */; }; + 65424F9B28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65424F9A28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift */; }; 98584A6D277E32C30028DBEA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584A6C277E32C30028DBEA /* AppDelegate.swift */; }; 98584A6F277E32C30028DBEA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98584A6E277E32C30028DBEA /* SceneDelegate.swift */; }; 98584A76277E32C50028DBEA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98584A75277E32C50028DBEA /* Assets.xcassets */; }; @@ -63,6 +65,8 @@ 61A71CDF7B0095F152A3CD4E /* Pods-FinanceApp-FinanceAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; sourceTree = ""; }; 65424F8B28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewTests.swift; sourceTree = ""; }; 65424F9328F99E8700F7E8D4 /* ContactListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListView.swift; sourceTree = ""; }; + 65424F9728F9D85000F7E8D4 /* ContactListViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListViewTests.swift; sourceTree = ""; }; + 65424F9A28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListTableViewCellTests.swift; sourceTree = ""; }; 6989344458FFDBA154C3EC32 /* Pods-FinanceApp-FinanceAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; sourceTree = ""; }; 98584A69277E32C30028DBEA /* FinanceApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FinanceApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 98584A6C277E32C30028DBEA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -128,6 +132,7 @@ 25C8175228F772BE003127C0 /* Screens */ = { isa = PBXGroup; children = ( + 65424F9628F9D82900F7E8D4 /* ContactList */, 65424F8A28F8CF6300F7E8D4 /* ActivityDetails */, 25C8175328F772C5003127C0 /* Components */, ); @@ -171,6 +176,23 @@ path = Cells; sourceTree = ""; }; + 65424F9628F9D82900F7E8D4 /* ContactList */ = { + isa = PBXGroup; + children = ( + 65424F9728F9D85000F7E8D4 /* ContactListViewTests.swift */, + 65424F9928F9D96100F7E8D4 /* Cells */, + ); + path = ContactList; + sourceTree = ""; + }; + 65424F9928F9D96100F7E8D4 /* Cells */ = { + isa = PBXGroup; + children = ( + 65424F9A28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift */, + ); + path = Cells; + sourceTree = ""; + }; 820E387591A4D6261F2D6AF5 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -548,8 +570,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 65424F9B28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift in Sources */, 65424F8C28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift in Sources */, 25C8175528F772FD003127C0 /* AccountSummaryViewTests.swift in Sources */, + 65424F9828F9D85000F7E8D4 /* ContactListViewTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift index c250dac..073463e 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift @@ -7,7 +7,7 @@ import UIKit -final class ContactCellView: UITableViewCell { +final class ContactListTableViewCell: UITableViewCell { static let identifier = "ContactCellIdentifier" //MARK: - Init @@ -22,29 +22,82 @@ final class ContactCellView: UITableViewCell { } //MARK: - Visual Components - lazy var container: UIStackView = { - let element = UIStackView() + private lazy var container: UIStackView = { + let element = UIStackView(frame: .zero) element.translatesAutoresizingMaskIntoConstraints = false element.axis = .horizontal element.alignment = .center + element.distribution = .fill + element.spacing = 16 + + return element + }() + + private lazy var userImage: UIImageView = { + let element = UIImageView() + element.translatesAutoresizingMaskIntoConstraints = false + element.image = UIImage(named: "avatar-placeholder") + element.tintColor = .blue + element.layer.cornerRadius = 25 + element.layer.masksToBounds = true + + return element + }() + + private lazy var labelStackView: UIStackView = { + let element = UIStackView() + element.translatesAutoresizingMaskIntoConstraints = false + element.axis = .vertical + element.alignment = .leading + element.distribution = .fill + element.spacing = 4 + + return element + }() + + private lazy var nameLabel: UILabel = { + let element = UILabel() + element.translatesAutoresizingMaskIntoConstraints = false + element.text = "Name" + element.font = UIFont.boldSystemFont(ofSize: 16) + + return element + }() + + private lazy var phoneNumberLabel: UILabel = { + let element = UILabel() + element.translatesAutoresizingMaskIntoConstraints = false + element.text = "+55 11 99999-9999" + element.textColor = .lightGray return element }() } //MARK: - ViewCodable -extension ContactCellView: ViewCodable { +extension ContactListTableViewCell: ViewCodable { func buildHierarchy() { addSubview(container) + container.addArrangedSubview(userImage) + container.addArrangedSubview(labelStackView) + labelStackView.addArrangedSubview(nameLabel) + labelStackView.addArrangedSubview(phoneNumberLabel) + } func setupConstraints() { + + let userImageSize: CGFloat = 50 + NSLayoutConstraint.activate([ container.topAnchor.constraint(equalTo: topAnchor), container.trailingAnchor.constraint(equalTo: trailingAnchor), container.bottomAnchor.constraint(equalTo: bottomAnchor), - container.leadingAnchor.constraint(equalTo: leadingAnchor), + container.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), + + userImage.heightAnchor.constraint(equalToConstant: userImageSize), + userImage.widthAnchor.constraint(equalToConstant: userImageSize) ]) } } diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift index 6060fbc..2bdc236 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListView.swift @@ -12,12 +12,13 @@ final class ContactListView: UIView { static let cellSize = CGFloat(80) // MARK: - Viusal Components - lazy var tableView: UITableView = { + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero) tableView.translatesAutoresizingMaskIntoConstraints = false - tableView.register(ContactCellView.self, forCellReuseIdentifier: ContactCellView.identifier) + tableView.register(ContactListTableViewCell.self, forCellReuseIdentifier: ContactListTableViewCell.identifier) tableView.dataSource = self tableView.delegate = self + return tableView }() @@ -35,7 +36,7 @@ final class ContactListView: UIView { } -// MARK: - ViewCodable + // MARK: - ViewCodable extension ContactListView: ViewCodable { func buildHierarchy() { @@ -53,18 +54,16 @@ extension ContactListView: ViewCodable { } -// MARK: - TableView + // MARK: - TableView extension ContactListView: UITableViewDataSource, UITableViewDelegate { public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - - return 8 + return 20 } public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: ContactCellView.identifier, for: indexPath) as? ContactCellView else { return UITableViewCell() } - + guard let cell = tableView.dequeueReusableCell(withIdentifier: ContactListTableViewCell.identifier, for: indexPath) as? ContactListTableViewCell else { return UITableViewCell() } return cell } diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift index 6326efc..8c04207 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/ContactListViewController.swift @@ -7,8 +7,9 @@ import UIKit -class ContactListViewController: UIViewController { - let container = ContactListView() +final class ContactListViewController: UIViewController { + + private let container = ContactListView() override func loadView() { self.view = container diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift new file mode 100644 index 0000000..ae5b6f8 --- /dev/null +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift @@ -0,0 +1,27 @@ +// +// ContactListTableViewCellTests.swift +// FinanceAppTests +// +// Created by Gabriel de Castro Chaves on 14/10/22. +// + +@testable import FinanceApp +import SnapshotTesting +import XCTest + +final class ContactListTableViewCellTests: XCTestCase { + + override class func setUp() { +// SnapshotTesting.isRecording = true + } + + func testLoadingComponent() { + let component = ContactListTableViewCell() + assertSnapshot(matching: component, as: .image(on: .iPhoneX)) + } + + func testRenderView() { + let component = ContactListTableViewCell() + assertSnapshot(matching: component, as: .image(on: .iPhoneX)) + } +} diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift new file mode 100644 index 0000000..f3cab18 --- /dev/null +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift @@ -0,0 +1,27 @@ +// +// ContactListViewTests.swift +// FinanceAppTests +// +// Created by Gabriel de Castro Chaves on 14/10/22. +// + +@testable import FinanceApp +import SnapshotTesting +import XCTest + +final class ContactListViewTests: XCTestCase { + + override class func setUp() { +// SnapshotTesting.isRecording = true + } + + func testLoadingComponent() { + let component = ContactListViewController() + assertSnapshot(matching: component, as: .image(on: .iPhoneX)) + } + + func testRenderView() { + let component = ContactListViewController() + assertSnapshot(matching: component, as: .image(on: .iPhoneX)) + } +} diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testLoadingComponent.1.png b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testLoadingComponent.1.png new file mode 100644 index 0000000000000000000000000000000000000000..2827b1409024402751660151ea1439c3ae655fc8 GIT binary patch literal 91801 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 literal 0 HcmV?d00001 diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testRenderView.1.png b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/__Snapshots__/ContactListViewTests/testRenderView.1.png new file mode 100644 index 0000000000000000000000000000000000000000..2827b1409024402751660151ea1439c3ae655fc8 GIT binary patch literal 91801 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 literal 0 HcmV?d00001 From 94f93202f651c4dbd77e36f93dcea203acae1142 Mon Sep 17 00:00:00 2001 From: Gabriel Castro Date: Mon, 17 Oct 2022 14:49:25 -0300 Subject: [PATCH 3/5] correcao de problema com pods e target --- .../FinanceApp.xcodeproj/project.pbxproj | 101 ------------------ 1 file changed, 101 deletions(-) diff --git a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj index 19df0f5..2b54ee3 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj +++ b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 1F52AD455F3FC57BDEE057A1 /* Pods_FinanceAppTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D50B55DADBB04DCC98C8AD5 /* Pods_FinanceAppTests.framework */; }; 25C8174B28F608BF003127C0 /* AccountSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8174A28F608BF003127C0 /* AccountSummaryView.swift */; }; 25C8174D28F60A0C003127C0 /* ViewCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8174C28F60A0C003127C0 /* ViewCodable.swift */; }; 25C8175528F772FD003127C0 /* AccountSummaryViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C8175428F772FD003127C0 /* AccountSummaryViewTests.swift */; }; @@ -40,7 +39,6 @@ 98C8A4E327C819DE00A630ED /* Contact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E227C819DE00A630ED /* Contact.swift */; }; 98C8A4E527C81A3F00A630ED /* TransferResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E427C81A3F00A630ED /* TransferResult.swift */; }; 98C8A4E727C81A9C00A630ED /* UserProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E627C81A9C00A630ED /* UserProfile.swift */; }; - D7292043FD377209482E7A09 /* Pods_FinanceApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55C4E25CA63BCFCC105EC051 /* Pods_FinanceApp.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -54,20 +52,13 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 031C83F34DC6DC9612A61BD6 /* Pods-FinanceApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp.debug.xcconfig"; path = "Target Support Files/Pods-FinanceApp/Pods-FinanceApp.debug.xcconfig"; sourceTree = ""; }; - 1D50B55DADBB04DCC98C8AD5 /* Pods_FinanceAppTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceAppTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 25C8174A28F608BF003127C0 /* AccountSummaryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryView.swift; sourceTree = ""; }; 25C8174C28F60A0C003127C0 /* ViewCodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewCodable.swift; sourceTree = ""; }; 25C8175428F772FD003127C0 /* AccountSummaryViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryViewTests.swift; sourceTree = ""; }; - 28263693781BCCC8E4DF95C5 /* Pods-FinanceApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp.release.xcconfig"; path = "Target Support Files/Pods-FinanceApp/Pods-FinanceApp.release.xcconfig"; sourceTree = ""; }; - 4A5A6F294F414949861585C4 /* Pods_FinanceApp_FinanceAppUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceApp_FinanceAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 55C4E25CA63BCFCC105EC051 /* Pods_FinanceApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 61A71CDF7B0095F152A3CD4E /* Pods-FinanceApp-FinanceAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.debug.xcconfig"; sourceTree = ""; }; 65424F8B28F8CF8A00F7E8D4 /* ActivityDetailsViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewTests.swift; sourceTree = ""; }; 65424F9328F99E8700F7E8D4 /* ContactListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListView.swift; sourceTree = ""; }; 65424F9728F9D85000F7E8D4 /* ContactListViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListViewTests.swift; sourceTree = ""; }; 65424F9A28F9D97800F7E8D4 /* ContactListTableViewCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListTableViewCellTests.swift; sourceTree = ""; }; - 6989344458FFDBA154C3EC32 /* Pods-FinanceApp-FinanceAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; path = "Target Support Files/Pods-FinanceApp-FinanceAppUITests/Pods-FinanceApp-FinanceAppUITests.release.xcconfig"; sourceTree = ""; }; 98584A69277E32C30028DBEA /* FinanceApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FinanceApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 98584A6C277E32C30028DBEA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 98584A6E277E32C30028DBEA /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -96,8 +87,6 @@ 98C8A4E227C819DE00A630ED /* Contact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contact.swift; sourceTree = ""; }; 98C8A4E427C81A3F00A630ED /* TransferResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransferResult.swift; sourceTree = ""; }; 98C8A4E627C81A9C00A630ED /* UserProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfile.swift; sourceTree = ""; }; - B1ABD9ED7D6A8881AE0663F0 /* Pods-FinanceAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceAppTests.release.xcconfig"; path = "Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests.release.xcconfig"; sourceTree = ""; }; - E0DAC424B947E017F740FDAF /* Pods-FinanceAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceAppTests.debug.xcconfig"; path = "Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -105,7 +94,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D7292043FD377209482E7A09 /* Pods_FinanceApp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -113,7 +101,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1F52AD455F3FC57BDEE057A1 /* Pods_FinanceAppTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -150,12 +137,6 @@ 51E5AEA143646311ECCE5A29 /* Pods */ = { isa = PBXGroup; children = ( - 031C83F34DC6DC9612A61BD6 /* Pods-FinanceApp.debug.xcconfig */, - 28263693781BCCC8E4DF95C5 /* Pods-FinanceApp.release.xcconfig */, - 61A71CDF7B0095F152A3CD4E /* Pods-FinanceApp-FinanceAppUITests.debug.xcconfig */, - 6989344458FFDBA154C3EC32 /* Pods-FinanceApp-FinanceAppUITests.release.xcconfig */, - E0DAC424B947E017F740FDAF /* Pods-FinanceAppTests.debug.xcconfig */, - B1ABD9ED7D6A8881AE0663F0 /* Pods-FinanceAppTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -193,16 +174,6 @@ path = Cells; sourceTree = ""; }; - 820E387591A4D6261F2D6AF5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 55C4E25CA63BCFCC105EC051 /* Pods_FinanceApp.framework */, - 4A5A6F294F414949861585C4 /* Pods_FinanceApp_FinanceAppUITests.framework */, - 1D50B55DADBB04DCC98C8AD5 /* Pods_FinanceAppTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 98584A60277E32C30028DBEA = { isa = PBXGroup; children = ( @@ -210,7 +181,6 @@ 98584A82277E32C60028DBEA /* FinanceAppTests */, 98584A6A277E32C30028DBEA /* Products */, 51E5AEA143646311ECCE5A29 /* Pods */, - 820E387591A4D6261F2D6AF5 /* Frameworks */, ); sourceTree = ""; }; @@ -377,7 +347,6 @@ isa = PBXNativeTarget; buildConfigurationList = 98584A93277E32C60028DBEA /* Build configuration list for PBXNativeTarget "FinanceApp" */; buildPhases = ( - 68BF10F55AF59FA516E57803 /* [CP] Check Pods Manifest.lock */, 98584A65277E32C30028DBEA /* Sources */, 98584A66277E32C30028DBEA /* Frameworks */, 98584A67277E32C30028DBEA /* Resources */, @@ -395,11 +364,9 @@ isa = PBXNativeTarget; buildConfigurationList = 98584A96277E32C60028DBEA /* Build configuration list for PBXNativeTarget "FinanceAppTests" */; buildPhases = ( - 31663CF182DEEC5960F38A36 /* [CP] Check Pods Manifest.lock */, 98584A7B277E32C60028DBEA /* Sources */, 98584A7C277E32C60028DBEA /* Frameworks */, 98584A7D277E32C60028DBEA /* Resources */, - EA4225DCCDF835682DD8F338 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -468,70 +435,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 31663CF182DEEC5960F38A36 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FinanceAppTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 68BF10F55AF59FA516E57803 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FinanceApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - EA4225DCCDF835682DD8F338 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 98584A65277E32C30028DBEA /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -717,7 +620,6 @@ }; 98584A94277E32C60028DBEA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 031C83F34DC6DC9612A61BD6 /* Pods-FinanceApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -746,7 +648,6 @@ }; 98584A95277E32C60028DBEA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 28263693781BCCC8E4DF95C5 /* Pods-FinanceApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -775,7 +676,6 @@ }; 98584A97277E32C60028DBEA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E0DAC424B947E017F740FDAF /* Pods-FinanceAppTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -796,7 +696,6 @@ }; 98584A98277E32C60028DBEA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B1ABD9ED7D6A8881AE0663F0 /* Pods-FinanceAppTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; From 4094d610638a063e3db719d4f097390fa4852358 Mon Sep 17 00:00:00 2001 From: Gabriel Castro Date: Tue, 18 Oct 2022 09:54:05 -0300 Subject: [PATCH 4/5] alteracao de nomenclatura --- .../ContactList/Cells/ContactListTableViewCell.swift | 2 +- .../ContactList/Cells/ContactListTableViewCellTests.swift | 8 ++++---- .../Screens/ContactList/ContactListViewTests.swift | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift index 073463e..58ac55b 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/ContactList/Cells/ContactListTableViewCell.swift @@ -83,7 +83,6 @@ extension ContactListTableViewCell: ViewCodable { container.addArrangedSubview(labelStackView) labelStackView.addArrangedSubview(nameLabel) labelStackView.addArrangedSubview(phoneNumberLabel) - } func setupConstraints() { @@ -100,4 +99,5 @@ extension ContactListTableViewCell: ViewCodable { userImage.widthAnchor.constraint(equalToConstant: userImageSize) ]) } + } diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift index 22e86a5..a3b6b26 100644 --- a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift @@ -11,7 +11,7 @@ import XCTest final class ContactListTableViewCellTests: XCTestCase { - let sut = ContactListTableViewCell() + private let cell = ContactListTableViewCell() override class func setUp() { // SnapshotTesting.isRecording = true @@ -19,8 +19,8 @@ final class ContactListTableViewCellTests: XCTestCase { - func testRenderView() { - sut.backgroundColor = .white - assertSnapshot(matching: sut, as: .image(size: CGSize(width: UIScreen.main.bounds.width, height: 64))) + private func testRenderView() { + cell.backgroundColor = .white + assertSnapshot(matching: cell, as: .image(size: CGSize(width: UIScreen.main.bounds.width, height: 64))) } } diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift index 06b1974..2fd3740 100644 --- a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift @@ -15,7 +15,7 @@ final class ContactListViewTests: XCTestCase { // SnapshotTesting.isRecording = true } - func testRenderView() { + private func testRenderView() { let component = ContactListView() assertSnapshot(matching: component, as: .image(size: CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))) } From c1171f5402959d1a499a4c5980065e208646ca0a Mon Sep 17 00:00:00 2001 From: Caio Santos Date: Tue, 18 Oct 2022 19:16:53 -0300 Subject: [PATCH 5/5] Ajustes de PR --- .../FinanceApp.xcodeproj/project.pbxproj | 795 ------------------ .../AppDelegate/SceneDelegate.swift | 3 +- .../FinanceApp/Screens/Home/HomeView.swift | 15 +- .../Screens/Home/HomeViewController.swift | 8 + ...all_ThenView_ShouldHaveValidSnapshot.1.png | Bin 9202 -> 8113 bytes .../Cells/ContactListTableViewCellTests.swift | 5 +- .../ContactList/ContactListViewTests.swift | 3 +- 7 files changed, 26 insertions(+), 803 deletions(-) delete mode 100644 solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj diff --git a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj b/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj deleted file mode 100644 index be41bcd..0000000 --- a/solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,795 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 0304668B942C04E502AB4D44 /* UserProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E8A6DA351DEC50193DEA0 /* UserProfileView.swift */; }; - 0CDD3BDFF0A732D15AFDF32B /* TransfersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00AE0D00E32B733D5FC92B7D /* TransfersViewController.swift */; }; - 13CB38E6F8E56F333D7741A9 /* ContactListViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 580F2A230BF97711062AE698 /* ContactListViewTests.swift */; }; - 1565385F9510E003E3C5374E /* UserProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C7E7F13F48F62C21B9571AA /* UserProfileViewController.swift */; }; - 1DC02519DD35735C3896FC18 /* FinanceService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82571982912FC9612B0E26C7 /* FinanceService.swift */; }; - 27AD6DE236FD0E19B82D9F54 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5594E94102EF89B9DF5614B /* HomeView.swift */; }; - 3A5CA9551DB1EED38B2924FB /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCF1E92CFD456C9C322B28F6 /* HomeViewController.swift */; }; - 3BEDE6222CE92C48EC96898B /* Pods_FinanceAppTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EF73429DDA5D5F5C65419364 /* Pods_FinanceAppTests.framework */; }; - 42B5225D8257424E241309BB /* HomeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B08B1D33180C551083142A /* HomeData.swift */; }; - 45B44631378004C6B30C94E3 /* AccountSummaryViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E36353517AC224DEC11BAC0E /* AccountSummaryViewTests.swift */; }; - 54F39EC1C1E0CB1FD8C24C65 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D5172EBC2EFF6EFF3AEB5C /* SceneDelegate.swift */; }; - 5775727B84EA7115338C59D4 /* DebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 941EC85054564C24E024E1AB /* DebugViewController.swift */; }; - 5F4CECF1D81797D6E302BCDC /* AccountSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791A02A7CF54949B4A2FF3D2 /* AccountSummaryView.swift */; }; - 665EFACD5A53BF9C5A3EB0E5 /* ActivityDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23CAC40CCDD9830A71997282 /* ActivityDetails.swift */; }; - 6C2F4532CB98CC3EF10928AA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ACC6C449FED98F7BDE13AB2A /* LaunchScreen.storyboard */; }; - 70D908D27BC6F457261FC5F6 /* UserProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93A15DB6A1B61D2CB7BB32D2 /* UserProfile.swift */; }; - 7467F92DB30FD18B4C6E43CF /* ActivityDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EF5038D81E1E53463FF1D9A /* ActivityDetailsView.swift */; }; - 78B6FCF4F01EC79F86BA55E1 /* ConfirmationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9540C15A27511CC4BF88D56 /* ConfirmationViewController.swift */; }; - 796F0ACB41DA74ED6C7C6723 /* ActivityCellViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DAA3EC9E94F0081A556A745 /* ActivityCellViewTests.swift */; }; - 8B31A474E0A324524D0DF786 /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF7AAF2F806E598D9228936 /* TabBarController.swift */; }; - 90C3B2330927FF873F089C09 /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F07498195E801BD1EF0F7819 /* String+Extensions.swift */; }; - 912306005FA36F07160D9772 /* ConfirmationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644426AB016110766DB58B1F /* ConfirmationView.swift */; }; - 919ACC6EC76251AAF13286BB /* UITableViewCell+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F5FA48B4F11051AEB4B44AA /* UITableViewCell+Extensions.swift */; }; - 944887F22B41E0235CB69F30 /* ContactListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DF0BD35758D51AF0A3D2C82 /* ContactListView.swift */; }; - 971028CF371F901118C12C68 /* ContactListTableViewCellTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C423874884444505A6D8FCF /* ContactListTableViewCellTests.swift */; }; - ACE6F2C87DE985BB5C2793EC /* Pods_FinanceApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 156C38D60A2FB658B590DF2D /* Pods_FinanceApp.framework */; }; - AE479313FFC654EC3F6F7D47 /* ActivityDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB4E0C668733DA96C91E7BCB /* ActivityDetailsViewController.swift */; }; - AEEF7401EEA393DB1EFA7E4C /* TransfersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E4E3AA065FE05C8AC0B614 /* TransfersView.swift */; }; - B05C4ECF826DC5E7AF46D805 /* ActivityCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6E729A8715D5374BBCEE209 /* ActivityCellView.swift */; }; - B9561BF8038687A06276CF0D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DBDD4F9A9A9CDB22A655B952 /* Assets.xcassets */; }; - B96FA9468D32C5CDC8376BDD /* ViewCodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D26BAC8C4955441648614D1 /* ViewCodable.swift */; }; - C2A79F91164C5E754D869621 /* TransferResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00829B3C3873C0CAB37D8511 /* TransferResult.swift */; }; - C36AAB6FCB4E4A831C64A062 /* ContactListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDCF8122A4E60D40C5D68B2E /* ContactListViewController.swift */; }; - E265DA050E4C70738092243B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A31099C0C61DBA4B67FCDD2 /* AppDelegate.swift */; }; - EF5D360F2AABE1E6226F8A15 /* ContactListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644110235DFB8A836BE49DD5 /* ContactListTableViewCell.swift */; }; - FE2B8575660D3635F7FE2CE2 /* ActivityDetailsViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 723B71A3A3F22A8528EA1932 /* ActivityDetailsViewTests.swift */; }; - FE99F579BCA66B3CC86A9109 /* Contact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DAED62F204FC2F878B40FBB /* Contact.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 00829B3C3873C0CAB37D8511 /* TransferResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransferResult.swift; sourceTree = ""; }; - 00AE0D00E32B733D5FC92B7D /* TransfersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransfersViewController.swift; sourceTree = ""; }; - 156C38D60A2FB658B590DF2D /* Pods_FinanceApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1D87EBB899BB9667557FC6AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 1DAED62F204FC2F878B40FBB /* Contact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contact.swift; sourceTree = ""; }; - 233E8A6DA351DEC50193DEA0 /* UserProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileView.swift; sourceTree = ""; }; - 23CAC40CCDD9830A71997282 /* ActivityDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetails.swift; sourceTree = ""; }; - 2C7E7F13F48F62C21B9571AA /* UserProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileViewController.swift; sourceTree = ""; }; - 2DF0BD35758D51AF0A3D2C82 /* ContactListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListView.swift; sourceTree = ""; }; - 3D26BAC8C4955441648614D1 /* ViewCodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewCodable.swift; sourceTree = ""; }; - 3EF5038D81E1E53463FF1D9A /* ActivityDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsView.swift; sourceTree = ""; }; - 580F2A230BF97711062AE698 /* ContactListViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListViewTests.swift; sourceTree = ""; }; - 59E3EA83FBAF56092E51256C /* Pods-FinanceApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp.release.xcconfig"; path = "Target Support Files/Pods-FinanceApp/Pods-FinanceApp.release.xcconfig"; sourceTree = ""; }; - 5C423874884444505A6D8FCF /* ContactListTableViewCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListTableViewCellTests.swift; sourceTree = ""; }; - 5DAA3EC9E94F0081A556A745 /* ActivityCellViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCellViewTests.swift; sourceTree = ""; }; - 644110235DFB8A836BE49DD5 /* ContactListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListTableViewCell.swift; sourceTree = ""; }; - 644426AB016110766DB58B1F /* ConfirmationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmationView.swift; sourceTree = ""; }; - 6A31099C0C61DBA4B67FCDD2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 723B71A3A3F22A8528EA1932 /* ActivityDetailsViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewTests.swift; sourceTree = ""; }; - 791A02A7CF54949B4A2FF3D2 /* AccountSummaryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryView.swift; sourceTree = ""; }; - 7F5FA48B4F11051AEB4B44AA /* UITableViewCell+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableViewCell+Extensions.swift"; sourceTree = ""; }; - 82571982912FC9612B0E26C7 /* FinanceService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinanceService.swift; sourceTree = ""; }; - 86E6801B0F7CAA5E116D28CF /* FinanceApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = FinanceApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 89CB0992C01C5CE47650A931 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8AF7AAF2F806E598D9228936 /* TabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = ""; }; - 93A15DB6A1B61D2CB7BB32D2 /* UserProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfile.swift; sourceTree = ""; }; - 941EC85054564C24E024E1AB /* DebugViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugViewController.swift; sourceTree = ""; }; - 98BB5F66D4025413E2C8BB37 /* Pods-FinanceAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceAppTests.release.xcconfig"; path = "Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests.release.xcconfig"; sourceTree = ""; }; - A6E729A8715D5374BBCEE209 /* ActivityCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCellView.swift; sourceTree = ""; }; - A76DE27B0DA828D626C88ADB /* Pods-FinanceAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceAppTests.debug.xcconfig"; path = "Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests.debug.xcconfig"; sourceTree = ""; }; - A9AC32F1A7CF054EAD796FFC /* Pods-FinanceApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FinanceApp.debug.xcconfig"; path = "Target Support Files/Pods-FinanceApp/Pods-FinanceApp.debug.xcconfig"; sourceTree = ""; }; - B8B08B1D33180C551083142A /* HomeData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeData.swift; sourceTree = ""; }; - C4E4966B0D6C2A80E27566C6 /* FinanceAppTests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = FinanceAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C5594E94102EF89B9DF5614B /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; - CCF1E92CFD456C9C322B28F6 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = ""; }; - DB4E0C668733DA96C91E7BCB /* ActivityDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetailsViewController.swift; sourceTree = ""; }; - DBDD4F9A9A9CDB22A655B952 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - E2D5172EBC2EFF6EFF3AEB5C /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - E2E4E3AA065FE05C8AC0B614 /* TransfersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransfersView.swift; sourceTree = ""; }; - E36353517AC224DEC11BAC0E /* AccountSummaryViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryViewTests.swift; sourceTree = ""; }; - EDCF8122A4E60D40C5D68B2E /* ContactListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactListViewController.swift; sourceTree = ""; }; - EF73429DDA5D5F5C65419364 /* Pods_FinanceAppTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FinanceAppTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F07498195E801BD1EF0F7819 /* String+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = ""; }; - F9540C15A27511CC4BF88D56 /* ConfirmationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmationViewController.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3073C01D82599F374C39EE97 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3BEDE6222CE92C48EC96898B /* Pods_FinanceAppTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7A7CC44C0099472E7D9B892 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ACE6F2C87DE985BB5C2793EC /* Pods_FinanceApp.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 004C8C378C0631E21B051D30 /* Resources */ = { - isa = PBXGroup; - children = ( - DBDD4F9A9A9CDB22A655B952 /* Assets.xcassets */, - 1D87EBB899BB9667557FC6AB /* Info.plist */, - ACC6C449FED98F7BDE13AB2A /* LaunchScreen.storyboard */, - ); - path = Resources; - sourceTree = ""; - }; - 0401A87D284287117ED0A27A /* Screens */ = { - isa = PBXGroup; - children = ( - 1D57338B4CCCC29FE294F601 /* ActivityDetails */, - 8201B57AAD100558A5D8A80B /* Components */, - 4C1983080B2506E2D09B5AA7 /* Confirmation */, - F5620E583C87BD2EDA5696FD /* ContactList */, - 9CA744A4AF06B164D8C8FAED /* Home */, - 612122E59EDE4889ABA64D5D /* Transfers */, - 489465CE28A259A0EE9CE641 /* UserProfile */, - ); - path = Screens; - sourceTree = ""; - }; - 1B25B5385CBE0B123871698F /* Service */ = { - isa = PBXGroup; - children = ( - 82571982912FC9612B0E26C7 /* FinanceService.swift */, - ); - path = Service; - sourceTree = ""; - }; - 1D57338B4CCCC29FE294F601 /* ActivityDetails */ = { - isa = PBXGroup; - children = ( - A6E729A8715D5374BBCEE209 /* ActivityCellView.swift */, - 3EF5038D81E1E53463FF1D9A /* ActivityDetailsView.swift */, - DB4E0C668733DA96C91E7BCB /* ActivityDetailsViewController.swift */, - ); - path = ActivityDetails; - sourceTree = ""; - }; - 20EFC57A35EFD56F8950497E /* AppDelegate */ = { - isa = PBXGroup; - children = ( - 6A31099C0C61DBA4B67FCDD2 /* AppDelegate.swift */, - E2D5172EBC2EFF6EFF3AEB5C /* SceneDelegate.swift */, - 8AF7AAF2F806E598D9228936 /* TabBarController.swift */, - ); - path = AppDelegate; - sourceTree = ""; - }; - 236C272956134A222B8A5A5E /* Cells */ = { - isa = PBXGroup; - children = ( - 5C423874884444505A6D8FCF /* ContactListTableViewCellTests.swift */, - ); - path = Cells; - sourceTree = ""; - }; - 29F6608C8E7C63005D680666 /* Products */ = { - isa = PBXGroup; - children = ( - 86E6801B0F7CAA5E116D28CF /* FinanceApp.app */, - C4E4966B0D6C2A80E27566C6 /* FinanceAppTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 2A27D89A69A6C0FDF161CD69 /* DebugYourViews */ = { - isa = PBXGroup; - children = ( - 941EC85054564C24E024E1AB /* DebugViewController.swift */, - ); - path = DebugYourViews; - sourceTree = ""; - }; - 37BABCEB985BD50900672BDD /* Frameworks */ = { - isa = PBXGroup; - children = ( - 156C38D60A2FB658B590DF2D /* Pods_FinanceApp.framework */, - EF73429DDA5D5F5C65419364 /* Pods_FinanceAppTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 41664911853B1A777938E8B9 = { - isa = PBXGroup; - children = ( - 8E3815F9C6D9EA0FCAE51155 /* FinanceApp */, - 67E437D62460C7B63BCBBEFE /* FinanceAppTests */, - 29F6608C8E7C63005D680666 /* Products */, - F4A6C4D6C0CA4EDF8F4ABA66 /* Pods */, - 37BABCEB985BD50900672BDD /* Frameworks */, - ); - sourceTree = ""; - }; - 489465CE28A259A0EE9CE641 /* UserProfile */ = { - isa = PBXGroup; - children = ( - 233E8A6DA351DEC50193DEA0 /* UserProfileView.swift */, - 2C7E7F13F48F62C21B9571AA /* UserProfileViewController.swift */, - ); - path = UserProfile; - sourceTree = ""; - }; - 4C1983080B2506E2D09B5AA7 /* Confirmation */ = { - isa = PBXGroup; - children = ( - 644426AB016110766DB58B1F /* ConfirmationView.swift */, - F9540C15A27511CC4BF88D56 /* ConfirmationViewController.swift */, - ); - path = Confirmation; - sourceTree = ""; - }; - 612122E59EDE4889ABA64D5D /* Transfers */ = { - isa = PBXGroup; - children = ( - E2E4E3AA065FE05C8AC0B614 /* TransfersView.swift */, - 00AE0D00E32B733D5FC92B7D /* TransfersViewController.swift */, - ); - path = Transfers; - sourceTree = ""; - }; - 67E437D62460C7B63BCBBEFE /* FinanceAppTests */ = { - isa = PBXGroup; - children = ( - B86109E24118796FA3CDACA0 /* Screens */, - ); - path = FinanceAppTests; - sourceTree = ""; - }; - 8201B57AAD100558A5D8A80B /* Components */ = { - isa = PBXGroup; - children = ( - 791A02A7CF54949B4A2FF3D2 /* AccountSummaryView.swift */, - 3D26BAC8C4955441648614D1 /* ViewCodable.swift */, - ); - path = Components; - sourceTree = ""; - }; - 8E3815F9C6D9EA0FCAE51155 /* FinanceApp */ = { - isa = PBXGroup; - children = ( - 20EFC57A35EFD56F8950497E /* AppDelegate */, - 2A27D89A69A6C0FDF161CD69 /* DebugYourViews */, - F1ABF03204464A2A716C68B4 /* Extensions */, - D6E936597240DAD83BBC95BD /* Models */, - 004C8C378C0631E21B051D30 /* Resources */, - 0401A87D284287117ED0A27A /* Screens */, - 1B25B5385CBE0B123871698F /* Service */, - ); - path = FinanceApp; - sourceTree = ""; - }; - 9C988E5C8B386D245744FB24 /* Components */ = { - isa = PBXGroup; - children = ( - E36353517AC224DEC11BAC0E /* AccountSummaryViewTests.swift */, - ); - path = Components; - sourceTree = ""; - }; - 9CA744A4AF06B164D8C8FAED /* Home */ = { - isa = PBXGroup; - children = ( - C5594E94102EF89B9DF5614B /* HomeView.swift */, - CCF1E92CFD456C9C322B28F6 /* HomeViewController.swift */, - ); - path = Home; - sourceTree = ""; - }; - B86109E24118796FA3CDACA0 /* Screens */ = { - isa = PBXGroup; - children = ( - F754EA4FC0AD8D70319A4C4E /* ActivityDetails */, - 9C988E5C8B386D245744FB24 /* Components */, - F69549DF342AC9FF2C4FB022 /* ContactList */, - ); - path = Screens; - sourceTree = ""; - }; - C22EF0E20CB2ABE9424805D5 /* Cells */ = { - isa = PBXGroup; - children = ( - 644110235DFB8A836BE49DD5 /* ContactListTableViewCell.swift */, - ); - path = Cells; - sourceTree = ""; - }; - D6E936597240DAD83BBC95BD /* Models */ = { - isa = PBXGroup; - children = ( - 23CAC40CCDD9830A71997282 /* ActivityDetails.swift */, - 1DAED62F204FC2F878B40FBB /* Contact.swift */, - B8B08B1D33180C551083142A /* HomeData.swift */, - 00829B3C3873C0CAB37D8511 /* TransferResult.swift */, - 93A15DB6A1B61D2CB7BB32D2 /* UserProfile.swift */, - ); - path = Models; - sourceTree = ""; - }; - F1ABF03204464A2A716C68B4 /* Extensions */ = { - isa = PBXGroup; - children = ( - F07498195E801BD1EF0F7819 /* String+Extensions.swift */, - 7F5FA48B4F11051AEB4B44AA /* UITableViewCell+Extensions.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - F4A6C4D6C0CA4EDF8F4ABA66 /* Pods */ = { - isa = PBXGroup; - children = ( - A9AC32F1A7CF054EAD796FFC /* Pods-FinanceApp.debug.xcconfig */, - 59E3EA83FBAF56092E51256C /* Pods-FinanceApp.release.xcconfig */, - A76DE27B0DA828D626C88ADB /* Pods-FinanceAppTests.debug.xcconfig */, - 98BB5F66D4025413E2C8BB37 /* Pods-FinanceAppTests.release.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - F5620E583C87BD2EDA5696FD /* ContactList */ = { - isa = PBXGroup; - children = ( - 2DF0BD35758D51AF0A3D2C82 /* ContactListView.swift */, - EDCF8122A4E60D40C5D68B2E /* ContactListViewController.swift */, - C22EF0E20CB2ABE9424805D5 /* Cells */, - ); - path = ContactList; - sourceTree = ""; - }; - F69549DF342AC9FF2C4FB022 /* ContactList */ = { - isa = PBXGroup; - children = ( - 580F2A230BF97711062AE698 /* ContactListViewTests.swift */, - 236C272956134A222B8A5A5E /* Cells */, - ); - path = ContactList; - sourceTree = ""; - }; - F754EA4FC0AD8D70319A4C4E /* ActivityDetails */ = { - isa = PBXGroup; - children = ( - 5DAA3EC9E94F0081A556A745 /* ActivityCellViewTests.swift */, - 723B71A3A3F22A8528EA1932 /* ActivityDetailsViewTests.swift */, - ); - path = ActivityDetails; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 174D99E27687D51F2EDC6181 /* FinanceAppTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 790EE3660AE054DE62EEC8E2 /* Build configuration list for PBXNativeTarget "FinanceAppTests" */; - buildPhases = ( - EDC50D41CC7C591D2B252477 /* [CP] Check Pods Manifest.lock */, - 68DFE4D057F6FDFD99C0334D /* Sources */, - 3073C01D82599F374C39EE97 /* Frameworks */, - B7D263C26C796661549AD584 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FinanceAppTests; - productName = FinanceAppTests; - productReference = C4E4966B0D6C2A80E27566C6 /* FinanceAppTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 2E97F0665DF3855DD2165992 /* FinanceApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 10880C3807283129FCCA0926 /* Build configuration list for PBXNativeTarget "FinanceApp" */; - buildPhases = ( - E89DB8A6594CA1896EF39EFC /* [CP] Check Pods Manifest.lock */, - E2D36BF245C9A834AB77A440 /* Sources */, - 79C092AECD11CAA880AF32D3 /* Resources */, - A7A7CC44C0099472E7D9B892 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FinanceApp; - productName = FinanceApp; - productReference = 86E6801B0F7CAA5E116D28CF /* FinanceApp.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 2AB1CACC86CDDCD4EEDD6F2B /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1200; - TargetAttributes = { - }; - }; - buildConfigurationList = 3D389913F47E61BD30E75F42 /* Build configuration list for PBXProject "FinanceApp" */; - compatibilityVersion = "Xcode 11.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 41664911853B1A777938E8B9; - productRefGroup = 29F6608C8E7C63005D680666 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 2E97F0665DF3855DD2165992 /* FinanceApp */, - 174D99E27687D51F2EDC6181 /* FinanceAppTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79C092AECD11CAA880AF32D3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B9561BF8038687A06276CF0D /* Assets.xcassets in Resources */, - 6C2F4532CB98CC3EF10928AA /* LaunchScreen.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - B7D263C26C796661549AD584 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FinanceAppTests/Pods-FinanceAppTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E89DB8A6594CA1896EF39EFC /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FinanceApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - EDC50D41CC7C591D2B252477 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FinanceAppTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 68DFE4D057F6FDFD99C0334D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 45B44631378004C6B30C94E3 /* AccountSummaryViewTests.swift in Sources */, - 796F0ACB41DA74ED6C7C6723 /* ActivityCellViewTests.swift in Sources */, - FE2B8575660D3635F7FE2CE2 /* ActivityDetailsViewTests.swift in Sources */, - 971028CF371F901118C12C68 /* ContactListTableViewCellTests.swift in Sources */, - 13CB38E6F8E56F333D7741A9 /* ContactListViewTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E2D36BF245C9A834AB77A440 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5F4CECF1D81797D6E302BCDC /* AccountSummaryView.swift in Sources */, - B05C4ECF826DC5E7AF46D805 /* ActivityCellView.swift in Sources */, - 665EFACD5A53BF9C5A3EB0E5 /* ActivityDetails.swift in Sources */, - 7467F92DB30FD18B4C6E43CF /* ActivityDetailsView.swift in Sources */, - AE479313FFC654EC3F6F7D47 /* ActivityDetailsViewController.swift in Sources */, - E265DA050E4C70738092243B /* AppDelegate.swift in Sources */, - 912306005FA36F07160D9772 /* ConfirmationView.swift in Sources */, - 78B6FCF4F01EC79F86BA55E1 /* ConfirmationViewController.swift in Sources */, - FE99F579BCA66B3CC86A9109 /* Contact.swift in Sources */, - EF5D360F2AABE1E6226F8A15 /* ContactListTableViewCell.swift in Sources */, - 944887F22B41E0235CB69F30 /* ContactListView.swift in Sources */, - C36AAB6FCB4E4A831C64A062 /* ContactListViewController.swift in Sources */, - 5775727B84EA7115338C59D4 /* DebugViewController.swift in Sources */, - 1DC02519DD35735C3896FC18 /* FinanceService.swift in Sources */, - 42B5225D8257424E241309BB /* HomeData.swift in Sources */, - 27AD6DE236FD0E19B82D9F54 /* HomeView.swift in Sources */, - 3A5CA9551DB1EED38B2924FB /* HomeViewController.swift in Sources */, - 54F39EC1C1E0CB1FD8C24C65 /* SceneDelegate.swift in Sources */, - 90C3B2330927FF873F089C09 /* String+Extensions.swift in Sources */, - 8B31A474E0A324524D0DF786 /* TabBarController.swift in Sources */, - C2A79F91164C5E754D869621 /* TransferResult.swift in Sources */, - AEEF7401EEA393DB1EFA7E4C /* TransfersView.swift in Sources */, - 0CDD3BDFF0A732D15AFDF32B /* TransfersViewController.swift in Sources */, - 919ACC6EC76251AAF13286BB /* UITableViewCell+Extensions.swift in Sources */, - 70D908D27BC6F457261FC5F6 /* UserProfile.swift in Sources */, - 0304668B942C04E502AB4D44 /* UserProfileView.swift in Sources */, - 1565385F9510E003E3C5374E /* UserProfileViewController.swift in Sources */, - B96FA9468D32C5CDC8376BDD /* ViewCodable.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - ACC6C449FED98F7BDE13AB2A /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 89CB0992C01C5CE47650A931 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 29CD84FC440408C334262976 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A76DE27B0DA828D626C88ADB /* Pods-FinanceAppTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - INFOPLIST_FILE = FinanceAppTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceAppTests; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FinanceApp.app/FinanceApp"; - }; - name = Debug; - }; - 343F15AA0229DDE8851DE156 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 640D4A1E8DD181082E61A4F2 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A9AC32F1A7CF054EAD796FFC /* Pods-FinanceApp.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = FinanceApp/Resources/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 6F814397452B25B3C7842525 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 59E3EA83FBAF56092E51256C /* Pods-FinanceApp.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = FinanceApp/Resources/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - C79AA9F410A9CDFBBD6D509A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 98BB5F66D4025413E2C8BB37 /* Pods-FinanceAppTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - INFOPLIST_FILE = FinanceAppTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceAppTests; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FinanceApp.app/FinanceApp"; - }; - name = Release; - }; - FF59084E303E30C70D9CB53F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 10880C3807283129FCCA0926 /* Build configuration list for PBXNativeTarget "FinanceApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 640D4A1E8DD181082E61A4F2 /* Debug */, - 6F814397452B25B3C7842525 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 3D389913F47E61BD30E75F42 /* Build configuration list for PBXProject "FinanceApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 343F15AA0229DDE8851DE156 /* Debug */, - FF59084E303E30C70D9CB53F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 790EE3660AE054DE62EEC8E2 /* Build configuration list for PBXNativeTarget "FinanceAppTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 29CD84FC440408C334262976 /* Debug */, - C79AA9F410A9CDFBBD6D509A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 2AB1CACC86CDDCD4EEDD6F2B /* Project object */; -} diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift b/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift index b355562..4476106 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/AppDelegate/SceneDelegate.swift @@ -15,8 +15,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { guard let windowScene = (scene as? UIWindowScene) else { return } self.window = UIWindow(frame: UIScreen.main.bounds) - self.window?.rootViewController = UINavigationController(rootViewController: ContactListViewController()) - self.window?.rootViewController = ContactListViewController() + self.window?.rootViewController = TabBarViewController() self.window?.windowScene = windowScene self.window?.makeKeyAndVisible() } diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeView.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeView.swift index b0b11d3..0e0af5f 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeView.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeView.swift @@ -11,9 +11,14 @@ struct HomeViewConfiguration { let homeData: HomeData } +protocol HomeViewDelegate: AnyObject { + func didSelectActivity() +} + final class HomeView: UIView { private var activities: [Activity] = [] - + var delegate: HomeViewDelegate? + private lazy var accountSummaryView: AccountSummaryView = { let element = AccountSummaryView() element.translatesAutoresizingMaskIntoConstraints = false @@ -26,6 +31,7 @@ final class HomeView: UIView { tableView.register(ActivityCellView.self, forCellReuseIdentifier: ActivityCellView.reuseIdentifier) tableView.register(UITableViewCell.self, forCellReuseIdentifier: UITableViewCell.reuseIdentifier) tableView.dataSource = self + tableView.delegate = self return tableView }() @@ -74,7 +80,7 @@ private extension HomeView { } } -extension HomeView: UITableViewDataSource { +extension HomeView: UITableViewDataSource, UITableViewDelegate { public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return activities.count } @@ -89,5 +95,10 @@ extension HomeView: UITableViewDataSource { cell.updateValues(activity: activities[indexPath.row]) return cell } + + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + delegate?.didSelectActivity() + } } diff --git a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeViewController.swift b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeViewController.swift index a829327..1e1d224 100644 --- a/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeViewController.swift +++ b/solutions/devsprint-caio-santos-7/FinanceApp/Screens/Home/HomeViewController.swift @@ -17,6 +17,7 @@ class HomeViewController: UIViewController { }() override func viewDidLoad() { + homeView.delegate = self customNavBar() profilePictureNavBar() @@ -56,3 +57,10 @@ class HomeViewController: UIViewController { navigationItem.rightBarButtonItem = rightBarButton } } + + +extension HomeViewController: HomeViewDelegate { + func didSelectActivity() { + present(ContactListViewController(), animated: true) + } +} diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ActivityDetails/__Snapshots__/ActivityCellViewTests/test_WhenInitActivityCellViewWithMall_ThenView_ShouldHaveValidSnapshot.1.png b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ActivityDetails/__Snapshots__/ActivityCellViewTests/test_WhenInitActivityCellViewWithMall_ThenView_ShouldHaveValidSnapshot.1.png index 0d9fe2b03ed1abaab75286a326b9c813f4022ce5..d03c59fb4977a2f4297c03535343744bb2fadc7c 100644 GIT binary patch literal 8113 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

gg~O0A&)u@&!)%%(A$|DJPdr_~ulZ18QT= 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 MsHspUZyxwR0IIAXhyVZp diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift index a3b6b26..adc9e8d 100644 --- a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/Cells/ContactListTableViewCellTests.swift @@ -17,10 +17,9 @@ final class ContactListTableViewCellTests: XCTestCase { // SnapshotTesting.isRecording = true } - - private func testRenderView() { cell.backgroundColor = .white - assertSnapshot(matching: cell, as: .image(size: CGSize(width: UIScreen.main.bounds.width, height: 64))) + assertSnapshot(matching: cell, as: .image(size: CGSize(width: UIScreen.main.bounds.width, + height: 64))) } } diff --git a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift index 2fd3740..5b18dde 100644 --- a/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift +++ b/solutions/devsprint-caio-santos-7/FinanceAppTests/Screens/ContactList/ContactListViewTests.swift @@ -17,6 +17,7 @@ final class ContactListViewTests: XCTestCase { private func testRenderView() { let component = ContactListView() - assertSnapshot(matching: component, as: .image(size: CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))) + assertSnapshot(matching: component, as: .image(size: CGSize(width: UIScreen.main.bounds.width, + height: UIScreen.main.bounds.height))) } }