Skip to content
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

Open
wants to merge 104 commits into
base: team-1
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
6b9b445
feat: [#44] 레이블 추가 버튼 생성
eeeesong Jun 14, 2021
4242bd2
feat: [#44] 레이블 테이블 뷰 생성
eeeesong Jun 14, 2021
2267ec5
refactor: [#44] 레이블 뷰 subclassing
eeeesong Jun 14, 2021
24e80ce
chore: [#44] 디렉토리 분류
eeeesong Jun 14, 2021
22940b6
feat: [#44] hex를 컬러로 변환하여 표시
eeeesong Jun 15, 2021
a6c3e02
feat: [#51] 로그인 정보 키체인 체크 오류 수정
JacksonPk Jun 14, 2021
7daa725
feat: [#51] Github DTO 수정
JacksonPk Jun 14, 2021
f618172
fix : [#35] 프로필 사진 불러와서 보여주기 수정
JacksonPk Jun 14, 2021
8f95fc6
feat: [#51] 로그아웃 구현
JacksonPk Jun 14, 2021
3f21cd5
chore: [#51] 코드 주석 정리
JacksonPk Jun 14, 2021
ac3849f
fix :[#35] 프로필 이미지 사이즈 조정
JacksonPk Jun 14, 2021
060c152
fix : [#29] 로그인 이후 자동 페이지 전환 오류 수정
JacksonPk Jun 15, 2021
281a09e
feat :[#35] 프로필 사진 이미지 리사이징
JacksonPk Jun 15, 2021
e535686
feat :[#29] 자동 화면 전환 로그인 정보 체크 함수 구현
JacksonPk Jun 15, 2021
1e670cd
chore : [#66] 코드 주석 수정
JacksonPk Jun 15, 2021
537a014
fix : [#66] 계정화면 이름 잘리는 현상 해결
JacksonPk Jun 15, 2021
1371dd8
refactor: [#44] 버튼 재사용을 위한 서브클래싱
eeeesong Jun 15, 2021
7420d70
Merge remote-tracking branch 'refs/remotes/origin/iOS/feature/labelSc…
JacksonPk Jun 15, 2021
4cd4d42
refactor: [#44] 네트워크 모듈 리팩토링
eeeesong Jun 15, 2021
8b9c86b
feat :[#68] 마일스톤 추가 버튼 View 구현
JacksonPk Jun 15, 2021
54e4808
feat : [#68] 마일스톤 추가 버튼 View 구현
JacksonPk Jun 15, 2021
c6c196d
feat: [#44] 레이블 목록 불러오기
eeeesong Jun 15, 2021
269b52c
refactor: [#44] EndPoint 타입 구축
eeeesong Jun 15, 2021
e2e1509
feat :[#68] 마일스톤 Cell 스택 구현
JacksonPk Jun 15, 2021
881d1ae
refactor: [#44] datasource / delegate 객체 분리
eeeesong Jun 15, 2021
8f8f14d
feat :[#68] 칼라 셋 설정
JacksonPk Jun 15, 2021
0be2095
fix: [#44] 테이블 셀 오토레이아웃 문제
eeeesong Jun 16, 2021
894deb0
feat: [#70] 레이블 추가 화면 구성
eeeesong Jun 16, 2021
76a9beb
chore: [#70] 메소드 순서 변경
eeeesong Jun 16, 2021
c9f9ec0
feat: [#70] 랜덤 레이블 컬러 생성
eeeesong Jun 16, 2021
573b5a2
feat [#68] 완료일까지 스택뷰로 추가 구현
JacksonPk Jun 16, 2021
cc88bf4
feat: [#70] 새 레이블 서버 POST
eeeesong Jun 16, 2021
ad10c48
feat: [#74:] 네트워크 에러 처리 개선
eeeesong Jun 16, 2021
b085f4e
feat[#68] 마일스톤UILabelView 제작
JacksonPk Jun 16, 2021
2df9e1b
feat: 일부 오토레이아웃 조정
eeeesong Jun 17, 2021
0ebf868
refactor: [#74] 네트워크 레이어 개선
eeeesong Jun 17, 2021
6311f24
refactor: [#74] 유저 정보 싱글톤패턴 적용
eeeesong Jun 17, 2021
3ce5f47
merge: [#68] 리팩토링된 메인 브랜치 머지
eeeesong Jun 17, 2021
09cc8e9
fix: [#68] 스택뷰 레이아웃 문제 수정
eeeesong Jun 17, 2021
4f2341a
feat: [#73] 네트워크 레이어 삭제 메소드 추가
eeeesong Jun 18, 2021
4caccc5
feat: [#73] 레이블 삭제 구현
eeeesong Jun 18, 2021
1890fa2
feat: [#73] 레이블 수정 구현
eeeesong Jun 18, 2021
f58181e
feat: [#68] 마일스톤 네트워크 GET통신
JacksonPk Jun 18, 2021
1088e99
fix: [#73] 수정 레이블 컬러 미반영
eeeesong Jun 18, 2021
70ce9ea
bug: [#68] 마일스톤 스택뷰 프레임 에러 이슈
JacksonPk Jun 18, 2021
0d63873
feat :[#68] 마일스톤 레이블뷰구현
JacksonPk Jun 18, 2021
8c47bc3
fix: 깃허브 로그인만 되는 오류
eeeesong Jun 18, 2021
b2d473c
refactor: [#78] TextField 공백 판단 방법 개선
eeeesong Jun 18, 2021
9c8bd73
refactor: [#78] TopMenuView 분리
eeeesong Jun 18, 2021
76e96be
refactor: [#78] 레이블 정보 입력 stackView 분리
eeeesong Jun 18, 2021
331f922
refactor: [#78] 레이블 수정/추가 뷰컨 사용성 개선
eeeesong Jun 18, 2021
eba831c
feat: [#68] 마일스톤 GET 통신 뷰 구현
JacksonPk Jun 19, 2021
65ac269
Merge remote-tracking branch 'refs/remotes/origin/iOS/refactor/reuseL…
JacksonPk Jun 19, 2021
a450359
merge :[#78] 마일스톤 뷰에 EndPoint 리팩토링 머지 적용
JacksonPk Jun 19, 2021
893a6c4
feat :[#68] 마일스톤 추가 및 네트워크 통신
JacksonPk Jun 20, 2021
09422df
feat :[#68] 마일스톤 수정 및 삭제 통신
JacksonPk Jun 20, 2021
c9349af
feat :[#68] 마일스톤 수정 시 해당 마일스톤 정보 프리뷰 보여주기
JacksonPk Jun 20, 2021
e64dc77
feat :[#68] 완료기간 포맷 체크 및 색상 변경하기
JacksonPk Jun 20, 2021
d430a83
chore: [#78] 메소드 순서 변경
eeeesong Jun 21, 2021
b1fe477
chore :[#68] 파일 수정 및 주석제거
JacksonPk Jun 21, 2021
a20a4fa
fix: 메인 브랜치 병합 충돌
eeeesong Jun 21, 2021
a28f3d7
feat: 레이블 추가/삭제 버튼 순서 변경
eeeesong Jun 21, 2021
bd40142
Merge branch 'iOS/dev' into iOS/feature/milestone
JacksonPk Jun 21, 2021
649b25f
Merge pull request #84 from d-h-k/iOS/refactor/reuseLabelViews
JacksonPk Jun 21, 2021
4578b1d
chore :[#68] 변수 카멜케이스, 잘못된 변수이름 수정
JacksonPk Jun 21, 2021
f9feb49
Merge branch 'iOS/feature/milestone' of https://github.com/d-h-k/issu…
JacksonPk Jun 21, 2021
e5dfe32
chore :[#68] 변수 오류 수정
JacksonPk Jun 21, 2021
08ea6dd
refactor :[#68] 레이블, 마일스톤 공통 TableDelegate 클래스 생성
JacksonPk Jun 21, 2021
0791522
fix: 상위 브랜치 병합 충돌
eeeesong Jun 21, 2021
af2fa1a
Merge pull request #83 from d-h-k/iOS/feature/milestone
eeeesong Jun 21, 2021
6bcf4d6
feat: [#82] 네비게이션 버튼 구성
eeeesong Jun 21, 2021
a50ec6f
feat: [#82] 마크다운 세그먼트 컨트롤 추가
eeeesong Jun 21, 2021
c848b0f
feat: [#86] 이슈 테이블 기본 프레임 구성
JacksonPk Jun 21, 2021
5308ee9
chore:[#68] 변수 카멜케이스 수정
JacksonPk Jun 21, 2021
5a8dcd6
feat: [#82] 제목 입력 view 구성
eeeesong Jun 22, 2021
99c994e
feat: [#82] 내용 입력 textView 구성
eeeesong Jun 22, 2021
f951ff4
feat: [#82] 추가 정보 입력란 구성
eeeesong Jun 22, 2021
7a2b5d6
feat: 버튼 disable 시 버튼 이미지 색상 변경
eeeesong Jun 22, 2021
10c7ff0
chore: [#82] SwiftyMarkdown 패키지 추가
eeeesong Jun 22, 2021
c132ad5
feat: [#86] 이슈 조회 뷰 프레임 제작
JacksonPk Jun 22, 2021
e1bbd7d
feat :[#86] 이슈DTO 생성
JacksonPk Jun 22, 2021
6bb621c
feat: [#82] 마크다운 미리보기 구현
eeeesong Jun 22, 2021
8691a9c
feat: [#82] 마크다운 라이브러리 교체하여 구현
eeeesong Jun 22, 2021
2080826
fix: [#93] 컬러 에셋 대소문자 미반영
eeeesong Jun 22, 2021
d527bdd
fix :[#86] 이슈DTO 수정
JacksonPk Jun 22, 2021
e2a73f2
refactor: UITableCell Identifier를 class extension으로 정의
eeeesong Jun 23, 2021
2b67688
refactor: 제네릭한 공통 DTO 생성
eeeesong Jun 23, 2021
6dcc4f8
feat :[#86] 이슈 GET, 화면 보여주기
JacksonPk Jun 23, 2021
b9b2088
feat :[#86] 이슈 추가 버튼 생성
JacksonPk Jun 23, 2021
25bfd14
feat :[#86] 이슈 셀 스와이프 기능 추가
JacksonPk Jun 23, 2021
103812f
feat: [#82] 레이블 선택 화면
eeeesong Jun 23, 2021
58ecdf8
feat: [#82] 마일스톤 선택 화면
eeeesong Jun 23, 2021
0570680
refactor: [#82] 쓰지 않는 코드 삭제, 메소드 통합
eeeesong Jun 23, 2021
9ed2e6a
feat: [#82] 담당자 선택 화면
eeeesong Jun 23, 2021
7bc1559
refactor :[#86] 이슈DTO 리팩토링
JacksonPk Jun 23, 2021
9cbb5e8
Merge pull request #97 from d-h-k/iOS/feature/IssueMain
JacksonPk Jun 23, 2021
48e29c4
chore: 디렉토리 이름 변경
eeeesong Jun 23, 2021
a781206
fix: 상위 브랜치 머지 충돌
eeeesong Jun 23, 2021
8f9e352
Merge pull request #98 from d-h-k/iOS/feature/issueEditing
eeeesong Jun 23, 2021
21bf694
fix: 라지타이틀 풀리는 문제
eeeesong Jun 23, 2021
aafb4e9
feat: [#82] 새 이슈 추가 네트워크 연동
eeeesong Jun 23, 2021
9f9f3fe
refactor: [#82] 상세 정보 datasource 통합
eeeesong Jun 23, 2021
404fd0b
chore: [#82] 객체 이름 변경
eeeesong Jun 23, 2021
c09ff77
Merge pull request #99 from d-h-k/iOS/feature/issuePost
JacksonPk Jun 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
337 changes: 325 additions & 12 deletions iOS/issue-tracker/issue-tracker.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@
"revision": "f96b619bcb2383b43d898402283924b80e2c4bae",
"version": "5.4.3"
}
},
{
"package": "Down",
"repositoryURL": "https://github.com/johnxnguyen/Down",
"state": {
"branch": null,
"revision": "f34b166be1f1db4aa8f573067e901d72f2a6be57",
"version": "0.11.0"
}
}
]
},
Expand Down
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
}
}
6 changes: 6 additions & 0 deletions iOS/issue-tracker/issue-tracker/Common/Colors.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,10 @@ enum Colors {
static let deleteSunnyside = UIColor(named: "DeleteSunnyside") ?? UIColor.yellow
static let openBrocoli = UIColor(named: "OpenBrocoli") ?? UIColor.purple
static let mainGrape = UIColor(named: "MainGrape") ?? UIColor.purple
static let mileStoneSuceess = UIColor(named: "MileStoneSuccess") ?? UIColor.green
static let description = UIColor(named: "Description") ?? UIColor.systemGray2
static let openMileStoneTint = UIColor(named: "OpenMileStoneTint") ?? UIColor.black
static let openMileStoneBG = UIColor(named: "OpenMileStoneBG") ?? UIColor.purple
static let closeMileStoneTint = UIColor(named: "CloseMileStoneTint") ?? UIColor.black
static let closeMileStoneBG = UIColor(named: "CloseMileStoneBG") ?? UIColor.blue
}
25 changes: 25 additions & 0 deletions iOS/issue-tracker/issue-tracker/Common/String.swift
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)
}
}
15 changes: 15 additions & 0 deletions iOS/issue-tracker/issue-tracker/Common/UITableCellExtension.swift
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)
}
}

18 changes: 18 additions & 0 deletions iOS/issue-tracker/issue-tracker/Common/UITextFieldExtension.swift
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 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if문 하나에 return이 Boolean 인 경우엔 한 줄로 표현하는 습관이 코드를 간결하게 작성하는 연습이 됩니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

삼항연산자를 말씀하시는건가요??

Copy link
Author

@eeeesong eeeesong Jun 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if let을 써야하는 경우에 한줄로 표시할 수 있는 방법이 있나요? 발견을 못하고 있습니다!
현재 아래와 같은 방식까지는 줄여보았습니다.

func isEmpty() -> Bool {
    guard let text = self.text else { return false }
    return text.count > 0
 }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eeeesong 님 방식도 가독성 측면에서 충분히 좋습니다.
한줄로 표현한다면 아래처럼 처리할 수도 있겠네요.

func isEmpty() -> Bool {
    (text?.count ?? 0) > 0
}

return false
} else {
return true
}
}
}
10 changes: 7 additions & 3 deletions iOS/issue-tracker/issue-tracker/LifeCycle/SceneDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
Expand All @@ -43,9 +45,11 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
}
}

private func straightToIssueTrackerScene(with loginManager: LoginKeyChainManager,_ loginInfo: LoginInfo) {
private func straightToIssueTrackerScene(with loginManager: LoginKeyChainManager,_ loginInfoDTO: LoginInfoDTO) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

함수의 argument label에 under score(_) 가 있다면 그게 앞쪽으로 배치되는게 좋습니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 감사합니다.

loginInfo.store(loginInfoDTO: loginInfoDTO)

DispatchQueue.main.async {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기가 main thread 로 되어야하는 이유나 흐름을 알 수가 없네요

Copy link
Author

Choose a reason for hiding this comment

The 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
}
Expand Down
Loading