Skip to content

Commit 1f04726

Browse files
author
Cleber Silva dos Reis
committed
feat[feature/activityCell]: cell and snaptests ok
1 parent 0130680 commit 1f04726

File tree

5 files changed

+136
-139
lines changed

5 files changed

+136
-139
lines changed

solutions/devsprint-caio-santos-7/FinanceApp.xcodeproj/project.pbxproj

Lines changed: 16 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
98C8A4E327C819DE00A630ED /* Contact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E227C819DE00A630ED /* Contact.swift */; };
3737
98C8A4E527C81A3F00A630ED /* TransferResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E427C81A3F00A630ED /* TransferResult.swift */; };
3838
98C8A4E727C81A9C00A630ED /* UserProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C8A4E627C81A9C00A630ED /* UserProfile.swift */; };
39-
A8A985E21DB09F86D3EECE24 /* Pods_FinanceApp_FinanceAppUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A5A6F294F414949861585C4 /* Pods_FinanceApp_FinanceAppUITests.framework */; };
39+
BFF7C39628F8C52900521C81 /* ActivityCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF7C39528F8C52900521C81 /* ActivityCellView.swift */; };
40+
BFF7C39928F8C72000521C81 /* ActivityCellViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF7C39828F8C72000521C81 /* ActivityCellViewTests.swift */; };
4041
D7292043FD377209482E7A09 /* Pods_FinanceApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55C4E25CA63BCFCC105EC051 /* Pods_FinanceApp.framework */; };
4142
/* End PBXBuildFile section */
4243

@@ -48,13 +49,6 @@
4849
remoteGlobalIDString = 98584A68277E32C30028DBEA;
4950
remoteInfo = FinanceApp;
5051
};
51-
98584A8A277E32C60028DBEA /* PBXContainerItemProxy */ = {
52-
isa = PBXContainerItemProxy;
53-
containerPortal = 98584A61277E32C30028DBEA /* Project object */;
54-
proxyType = 1;
55-
remoteGlobalIDString = 98584A68277E32C30028DBEA;
56-
remoteInfo = FinanceApp;
57-
};
5852
/* End PBXContainerItemProxy section */
5953

6054
/* Begin PBXFileReference section */
@@ -75,7 +69,6 @@
7569
98584A78277E32C50028DBEA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
7670
98584A7A277E32C50028DBEA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7771
98584A7F277E32C60028DBEA /* FinanceAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FinanceAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
78-
98584A89277E32C60028DBEA /* FinanceAppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FinanceAppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
7972
98584AA4277E35E90028DBEA /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; };
8073
98584AA6277E35F10028DBEA /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = "<group>"; };
8174
98584AC2277E42E80028DBEA /* FinanceService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinanceService.swift; sourceTree = "<group>"; };
@@ -98,6 +91,8 @@
9891
98C8A4E427C81A3F00A630ED /* TransferResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransferResult.swift; sourceTree = "<group>"; };
9992
98C8A4E627C81A9C00A630ED /* UserProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfile.swift; sourceTree = "<group>"; };
10093
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 = "<group>"; };
94+
BFF7C39528F8C52900521C81 /* ActivityCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCellView.swift; sourceTree = "<group>"; };
95+
BFF7C39828F8C72000521C81 /* ActivityCellViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCellViewTests.swift; sourceTree = "<group>"; };
10196
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 = "<group>"; };
10297
/* End PBXFileReference section */
10398

@@ -118,14 +113,6 @@
118113
);
119114
runOnlyForDeploymentPostprocessing = 0;
120115
};
121-
98584A86277E32C60028DBEA /* Frameworks */ = {
122-
isa = PBXFrameworksBuildPhase;
123-
buildActionMask = 2147483647;
124-
files = (
125-
A8A985E21DB09F86D3EECE24 /* Pods_FinanceApp_FinanceAppUITests.framework in Frameworks */,
126-
);
127-
runOnlyForDeploymentPostprocessing = 0;
128-
};
129116
/* End PBXFrameworksBuildPhase section */
130117

131118
/* Begin PBXGroup section */
@@ -141,6 +128,7 @@
141128
25C8175228F772BE003127C0 /* Screens */ = {
142129
isa = PBXGroup;
143130
children = (
131+
BFF7C39728F8C6B000521C81 /* ActivityDetails */,
144132
25C8175328F772C5003127C0 /* Components */,
145133
);
146134
path = Screens;
@@ -182,7 +170,6 @@
182170
children = (
183171
98584A6B277E32C30028DBEA /* FinanceApp */,
184172
98584A82277E32C60028DBEA /* FinanceAppTests */,
185-
98584A8C277E32C60028DBEA /* FinanceAppUITests */,
186173
98584A6A277E32C30028DBEA /* Products */,
187174
51E5AEA143646311ECCE5A29 /* Pods */,
188175
820E387591A4D6261F2D6AF5 /* Frameworks */,
@@ -194,7 +181,6 @@
194181
children = (
195182
98584A69277E32C30028DBEA /* FinanceApp.app */,
196183
98584A7F277E32C60028DBEA /* FinanceAppTests.xctest */,
197-
98584A89277E32C60028DBEA /* FinanceAppUITests.xctest */,
198184
);
199185
name = Products;
200186
sourceTree = "<group>";
@@ -221,13 +207,6 @@
221207
path = FinanceAppTests;
222208
sourceTree = "<group>";
223209
};
224-
98584A8C277E32C60028DBEA /* FinanceAppUITests */ = {
225-
isa = PBXGroup;
226-
children = (
227-
);
228-
path = FinanceAppUITests;
229-
sourceTree = "<group>";
230-
};
231210
98584A9C277E350D0028DBEA /* AppDelegate */ = {
232211
isa = PBXGroup;
233212
children = (
@@ -322,6 +301,7 @@
322301
children = (
323302
98584B0E277E605F0028DBEA /* ActivityDetailsView.swift */,
324303
98584B0A277E605F0028DBEA /* ActivityDetailsViewController.swift */,
304+
BFF7C39528F8C52900521C81 /* ActivityCellView.swift */,
325305
);
326306
path = ActivityDetails;
327307
sourceTree = "<group>";
@@ -352,6 +332,14 @@
352332
path = Extensions;
353333
sourceTree = "<group>";
354334
};
335+
BFF7C39728F8C6B000521C81 /* ActivityDetails */ = {
336+
isa = PBXGroup;
337+
children = (
338+
BFF7C39828F8C72000521C81 /* ActivityCellViewTests.swift */,
339+
);
340+
path = ActivityDetails;
341+
sourceTree = "<group>";
342+
};
355343
/* End PBXGroup section */
356344

357345
/* Begin PBXNativeTarget section */
@@ -393,25 +381,6 @@
393381
productReference = 98584A7F277E32C60028DBEA /* FinanceAppTests.xctest */;
394382
productType = "com.apple.product-type.bundle.unit-test";
395383
};
396-
98584A88277E32C60028DBEA /* FinanceAppUITests */ = {
397-
isa = PBXNativeTarget;
398-
buildConfigurationList = 98584A99277E32C60028DBEA /* Build configuration list for PBXNativeTarget "FinanceAppUITests" */;
399-
buildPhases = (
400-
393A39408D8B880CDB2FAB8A /* [CP] Check Pods Manifest.lock */,
401-
98584A85277E32C60028DBEA /* Sources */,
402-
98584A86277E32C60028DBEA /* Frameworks */,
403-
98584A87277E32C60028DBEA /* Resources */,
404-
);
405-
buildRules = (
406-
);
407-
dependencies = (
408-
98584A8B277E32C60028DBEA /* PBXTargetDependency */,
409-
);
410-
name = FinanceAppUITests;
411-
productName = FinanceAppUITests;
412-
productReference = 98584A89277E32C60028DBEA /* FinanceAppUITests.xctest */;
413-
productType = "com.apple.product-type.bundle.ui-testing";
414-
};
415384
/* End PBXNativeTarget section */
416385

417386
/* Begin PBXProject section */
@@ -429,10 +398,6 @@
429398
CreatedOnToolsVersion = 13.2.1;
430399
TestTargetID = 98584A68277E32C30028DBEA;
431400
};
432-
98584A88277E32C60028DBEA = {
433-
CreatedOnToolsVersion = 13.2.1;
434-
TestTargetID = 98584A68277E32C30028DBEA;
435-
};
436401
};
437402
};
438403
buildConfigurationList = 98584A64277E32C30028DBEA /* Build configuration list for PBXProject "FinanceApp" */;
@@ -450,7 +415,6 @@
450415
targets = (
451416
98584A68277E32C30028DBEA /* FinanceApp */,
452417
98584A7E277E32C60028DBEA /* FinanceAppTests */,
453-
98584A88277E32C60028DBEA /* FinanceAppUITests */,
454418
);
455419
};
456420
/* End PBXProject section */
@@ -472,13 +436,6 @@
472436
);
473437
runOnlyForDeploymentPostprocessing = 0;
474438
};
475-
98584A87277E32C60028DBEA /* Resources */ = {
476-
isa = PBXResourcesBuildPhase;
477-
buildActionMask = 2147483647;
478-
files = (
479-
);
480-
runOnlyForDeploymentPostprocessing = 0;
481-
};
482439
/* End PBXResourcesBuildPhase section */
483440

484441
/* Begin PBXShellScriptBuildPhase section */
@@ -504,28 +461,6 @@
504461
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";
505462
showEnvVarsInLog = 0;
506463
};
507-
393A39408D8B880CDB2FAB8A /* [CP] Check Pods Manifest.lock */ = {
508-
isa = PBXShellScriptBuildPhase;
509-
buildActionMask = 2147483647;
510-
files = (
511-
);
512-
inputFileListPaths = (
513-
);
514-
inputPaths = (
515-
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
516-
"${PODS_ROOT}/Manifest.lock",
517-
);
518-
name = "[CP] Check Pods Manifest.lock";
519-
outputFileListPaths = (
520-
);
521-
outputPaths = (
522-
"$(DERIVED_FILE_DIR)/Pods-FinanceApp-FinanceAppUITests-checkManifestLockResult.txt",
523-
);
524-
runOnlyForDeploymentPostprocessing = 0;
525-
shellPath = /bin/sh;
526-
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";
527-
showEnvVarsInLog = 0;
528-
};
529464
68BF10F55AF59FA516E57803 /* [CP] Check Pods Manifest.lock */ = {
530465
isa = PBXShellScriptBuildPhase;
531466
buildActionMask = 2147483647;
@@ -579,6 +514,7 @@
579514
98584B20277E60740028DBEA /* ContactListViewController.swift in Sources */,
580515
98584AF4277E50430028DBEA /* ConfirmationViewController.swift in Sources */,
581516
98C8A4DD27C818A800A630ED /* HomeData.swift in Sources */,
517+
BFF7C39628F8C52900521C81 /* ActivityCellView.swift in Sources */,
582518
98C8A4D927C8152200A630ED /* String+Extensions.swift in Sources */,
583519
98C8A4E727C81A9C00A630ED /* UserProfile.swift in Sources */,
584520
98C8A4E327C819DE00A630ED /* Contact.swift in Sources */,
@@ -605,13 +541,7 @@
605541
buildActionMask = 2147483647;
606542
files = (
607543
25C8175528F772FD003127C0 /* AccountSummaryViewTests.swift in Sources */,
608-
);
609-
runOnlyForDeploymentPostprocessing = 0;
610-
};
611-
98584A85277E32C60028DBEA /* Sources */ = {
612-
isa = PBXSourcesBuildPhase;
613-
buildActionMask = 2147483647;
614-
files = (
544+
BFF7C39928F8C72000521C81 /* ActivityCellViewTests.swift in Sources */,
615545
);
616546
runOnlyForDeploymentPostprocessing = 0;
617547
};
@@ -623,11 +553,6 @@
623553
target = 98584A68277E32C30028DBEA /* FinanceApp */;
624554
targetProxy = 98584A80277E32C60028DBEA /* PBXContainerItemProxy */;
625555
};
626-
98584A8B277E32C60028DBEA /* PBXTargetDependency */ = {
627-
isa = PBXTargetDependency;
628-
target = 98584A68277E32C30028DBEA /* FinanceApp */;
629-
targetProxy = 98584A8A277E32C60028DBEA /* PBXContainerItemProxy */;
630-
};
631556
/* End PBXTargetDependency section */
632557

633558
/* Begin PBXVariantGroup section */
@@ -858,44 +783,6 @@
858783
};
859784
name = Release;
860785
};
861-
98584A9A277E32C60028DBEA /* Debug */ = {
862-
isa = XCBuildConfiguration;
863-
baseConfigurationReference = 61A71CDF7B0095F152A3CD4E /* Pods-FinanceApp-FinanceAppUITests.debug.xcconfig */;
864-
buildSettings = {
865-
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
866-
CODE_SIGN_STYLE = Automatic;
867-
CURRENT_PROJECT_VERSION = 1;
868-
DEVELOPMENT_TEAM = B8F644M47X;
869-
GENERATE_INFOPLIST_FILE = YES;
870-
MARKETING_VERSION = 1.0;
871-
PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceAppUITests;
872-
PRODUCT_NAME = "$(TARGET_NAME)";
873-
SWIFT_EMIT_LOC_STRINGS = NO;
874-
SWIFT_VERSION = 5.0;
875-
TARGETED_DEVICE_FAMILY = "1,2";
876-
TEST_TARGET_NAME = FinanceApp;
877-
};
878-
name = Debug;
879-
};
880-
98584A9B277E32C60028DBEA /* Release */ = {
881-
isa = XCBuildConfiguration;
882-
baseConfigurationReference = 6989344458FFDBA154C3EC32 /* Pods-FinanceApp-FinanceAppUITests.release.xcconfig */;
883-
buildSettings = {
884-
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
885-
CODE_SIGN_STYLE = Automatic;
886-
CURRENT_PROJECT_VERSION = 1;
887-
DEVELOPMENT_TEAM = B8F644M47X;
888-
GENERATE_INFOPLIST_FILE = YES;
889-
MARKETING_VERSION = 1.0;
890-
PRODUCT_BUNDLE_IDENTIFIER = com.devpass.FinanceAppUITests;
891-
PRODUCT_NAME = "$(TARGET_NAME)";
892-
SWIFT_EMIT_LOC_STRINGS = NO;
893-
SWIFT_VERSION = 5.0;
894-
TARGETED_DEVICE_FAMILY = "1,2";
895-
TEST_TARGET_NAME = FinanceApp;
896-
};
897-
name = Release;
898-
};
899786
/* End XCBuildConfiguration section */
900787

901788
/* Begin XCConfigurationList section */
@@ -926,15 +813,6 @@
926813
defaultConfigurationIsVisible = 0;
927814
defaultConfigurationName = Release;
928815
};
929-
98584A99277E32C60028DBEA /* Build configuration list for PBXNativeTarget "FinanceAppUITests" */ = {
930-
isa = XCConfigurationList;
931-
buildConfigurations = (
932-
98584A9A277E32C60028DBEA /* Debug */,
933-
98584A9B277E32C60028DBEA /* Release */,
934-
);
935-
defaultConfigurationIsVisible = 0;
936-
defaultConfigurationName = Release;
937-
};
938816
/* End XCConfigurationList section */
939817
};
940818
rootObject = 98584A61277E32C30028DBEA /* Project object */;
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
//
2+
// ActivityCellView.swift
3+
// FinanceApp
4+
//
5+
// Created by Cleber Reis on 13/10/22.
6+
//
7+
8+
import UIKit
9+
10+
class ActivityCellView: UITableViewCell {
11+
12+
private lazy var icon: UIImageView = {
13+
let image = UIImageView()
14+
image.translatesAutoresizingMaskIntoConstraints = false
15+
image.image = UIImage(named: "fork.knife.circle.fill")
16+
image.contentMode = .scaleAspectFit
17+
image.layer.cornerRadius = 24
18+
image.clipsToBounds = true
19+
20+
return image
21+
}()
22+
23+
private lazy var titleLabel: UILabel = {
24+
let label = UILabel()
25+
label.translatesAutoresizingMaskIntoConstraints = false
26+
label.text = "Food court"
27+
label.font = .systemFont(ofSize: 16, weight: .semibold)
28+
29+
return label
30+
}()
31+
32+
private lazy var titleDescription: UILabel = {
33+
let label = UILabel()
34+
label.translatesAutoresizingMaskIntoConstraints = false
35+
label.text = "R$ 1000 - 8:57"
36+
label.font = .systemFont(ofSize: 14, weight: .regular)
37+
38+
return label
39+
}()
40+
41+
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
42+
super.init(style: style, reuseIdentifier: reuseIdentifier)
43+
setupView()
44+
configViews()
45+
}
46+
47+
@available(*, unavailable)
48+
required init?(coder: NSCoder) { nil }
49+
}
50+
51+
extension ActivityCellView: ViewCodable {
52+
53+
func configViews() {
54+
backgroundColor = .white
55+
}
56+
57+
func buildHierarchy() {
58+
contentView.addSubview(icon)
59+
contentView.addSubview(titleLabel)
60+
contentView.addSubview(titleDescription)
61+
}
62+
63+
64+
func setupConstraints() {
65+
let bottomConstraint = icon.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -8)
66+
bottomConstraint.priority = .defaultLow
67+
68+
NSLayoutConstraint.activate([
69+
icon.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8),
70+
icon.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 8),
71+
icon.heightAnchor.constraint(equalToConstant: 48),
72+
icon.widthAnchor.constraint(equalToConstant: 48),
73+
74+
titleLabel.bottomAnchor.constraint(equalTo: contentView.centerYAnchor),
75+
titleLabel.leadingAnchor.constraint(equalTo: icon.trailingAnchor, constant: 12),
76+
titleLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -8),
77+
78+
titleDescription.topAnchor.constraint(equalTo: contentView.centerYAnchor),
79+
titleDescription.leadingAnchor.constraint(equalTo: titleLabel.leadingAnchor),
80+
titleDescription.trailingAnchor.constraint(equalTo: titleLabel.trailingAnchor),
81+
bottomConstraint
82+
])
83+
}
84+
}

0 commit comments

Comments
 (0)