-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Team1 iOS 잭슨 & 롤로] 레이블, 마일스톤 화면 구현 #35
base: team-1
Are you sure you want to change the base?
Changes from all commits
6b9b445
4242bd2
2267ec5
24e80ce
22940b6
a6c3e02
7daa725
f618172
8f95fc6
3f21cd5
ac3849f
060c152
281a09e
e535686
1e670cd
537a014
1371dd8
7420d70
4cd4d42
8b9c86b
54e4808
c6c196d
269b52c
e2e1509
881d1ae
8f8f14d
0be2095
894deb0
76a9beb
c9f9ec0
573b5a2
cc88bf4
ad10c48
b085f4e
2df9e1b
0ebf868
6311f24
3ce5f47
09cc8e9
4f2341a
4caccc5
1890fa2
f58181e
1088e99
70ce9ea
0d63873
8c47bc3
b2d473c
9c8bd73
76e96be
331f922
eba831c
65ac269
a450359
893a6c4
09422df
c9349af
e64dc77
d430a83
b1fe477
a20a4fa
a28f3d7
bd40142
649b25f
4578b1d
f9feb49
e5dfe32
08ea6dd
0791522
af2fa1a
6bcf4d6
a50ec6f
c848b0f
5308ee9
5a8dcd6
99c994e
f951ff4
7a2b5d6
10c7ff0
c132ad5
e1bbd7d
6bb621c
8691a9c
2080826
d527bdd
e2a73f2
2b67688
6dcc4f8
b9b2088
25bfd14
103812f
58ecdf8
0570680
9ed2e6a
7bc1559
9cbb5e8
48e29c4
a781206
8f9e352
21bf694
aafb4e9
9f9f3fe
404fd0b
c09ff77
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.478", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.478", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.831", | ||
"red" : "0.800" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.831", | ||
"red" : "0.800" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.906", | ||
"green" : "0.145", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.906", | ||
"green" : "0.145", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.576", | ||
"green" : "0.557", | ||
"red" : "0.557" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.576", | ||
"green" : "0.557", | ||
"red" : "0.557" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.349", | ||
"green" : "0.780", | ||
"red" : "0.204" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "0.349", | ||
"green" : "0.780", | ||
"red" : "0.204" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.922", | ||
"red" : "0.780" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.922", | ||
"red" : "0.780" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"colors" : [ | ||
{ | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.478", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
}, | ||
{ | ||
"appearances" : [ | ||
{ | ||
"appearance" : "luminosity", | ||
"value" : "dark" | ||
} | ||
], | ||
"color" : { | ||
"color-space" : "srgb", | ||
"components" : { | ||
"alpha" : "1.000", | ||
"blue" : "1.000", | ||
"green" : "0.478", | ||
"red" : "0.000" | ||
} | ||
}, | ||
"idiom" : "universal" | ||
} | ||
], | ||
"info" : { | ||
"author" : "xcode", | ||
"version" : 1 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
// | ||
// String.swift | ||
// issue-tracker | ||
// | ||
// Created by jinseo park on 6/20/21. | ||
// | ||
|
||
import Foundation | ||
|
||
extension String { | ||
enum ValidityType { | ||
case date | ||
} | ||
|
||
func isValid(_ validityType: ValidityType)-> Bool { | ||
let format = "SELF MATCHES %@" | ||
var regex = "" | ||
|
||
switch validityType { | ||
case .date: | ||
regex = "[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]" | ||
} | ||
return NSPredicate(format: format, regex).evaluate(with: self) | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// | ||
// UITableCellExtension.swift | ||
// issue-tracker | ||
// | ||
// Created by Song on 2021/06/23. | ||
// | ||
|
||
import UIKit | ||
|
||
extension UITableViewCell { | ||
static var reuseID: String { | ||
return String(describing: self) | ||
} | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
// | ||
// UITextFieldExtension.swift | ||
// issue-tracker | ||
// | ||
// Created by Song on 2021/06/18. | ||
// | ||
|
||
import UIKit | ||
|
||
extension UITextField { | ||
func isEmpty() -> Bool { | ||
if let text = self.text, text.count > 0 { | ||
return false | ||
} else { | ||
return true | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,17 +11,19 @@ import AuthenticationServices | |
class SceneDelegate: UIResponder, UIWindowSceneDelegate { | ||
|
||
var window: UIWindow? | ||
private let loginInfo = LoginInfo.shared | ||
|
||
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { | ||
|
||
var loginManager: LoginKeyChainManager? | ||
var loginInfo: LoginInfo? | ||
var loginInfo: LoginInfoDTO? | ||
|
||
for loginService in LoginService.allCases { | ||
loginManager = LoginKeyChainManager(loginService: loginService) | ||
loginInfo = loginManager?.read() | ||
|
||
if loginInfo != nil { | ||
self.loginInfo.service = loginService | ||
break | ||
} | ||
} | ||
|
@@ -43,9 +45,11 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { | |
} | ||
} | ||
|
||
private func straightToIssueTrackerScene(with loginManager: LoginKeyChainManager,_ loginInfo: LoginInfo) { | ||
private func straightToIssueTrackerScene(with loginManager: LoginKeyChainManager,_ loginInfoDTO: LoginInfoDTO) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 함수의 argument label에 under score( There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아하 감사합니다. |
||
loginInfo.store(loginInfoDTO: loginInfoDTO) | ||
|
||
DispatchQueue.main.async { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 여기가 main thread 로 되어야하는 이유나 흐름을 알 수가 없네요 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 앗 이부분은 작성을 잘못한 것 같습니다😅 수정하도록 하겠습니다 |
||
let issueTrackerTabBarControllerCreator = IssueTrackerTabBarCreator(loginInfo: loginInfo) | ||
let issueTrackerTabBarControllerCreator = IssueTrackerTabBarCreator() | ||
let issueTrackerTabBarController = issueTrackerTabBarControllerCreator.create() | ||
self.window?.rootViewController = issueTrackerTabBarController | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if문 하나에 return이 Boolean 인 경우엔 한 줄로 표현하는 습관이 코드를 간결하게 작성하는 연습이 됩니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
삼항연산자를 말씀하시는건가요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if let을 써야하는 경우에 한줄로 표시할 수 있는 방법이 있나요? 발견을 못하고 있습니다!
현재 아래와 같은 방식까지는 줄여보았습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eeeesong 님 방식도 가독성 측면에서 충분히 좋습니다.
한줄로 표현한다면 아래처럼 처리할 수도 있겠네요.