-
Notifications
You must be signed in to change notification settings - Fork 5
20201203 개발 진행 상황
songju edited this page Dec 6, 2020
·
1 revision
- DummyHistory 구조체 및 코드 삭제
- 실제 TravelItemViewModel 적용
- View 구성 (NavigationBar, Tabbar 제외)
- 우측 상단 stackView에는 Custom
DayCell
이 들어감- 여행 날짜에 종속적으로 셀을 생성하여 삽입
- 터치 액션은
Delegate
패턴을 활용하여 view가 VC에 알려주는 방식으로 구현- sender에 터치된 UIButton을 담아서 보내면 stackView 내부의 같은 버튼을 찾아서 date 필터
- 추후에 selected button에
accessary
표시 예정
- UIStackView 내부에 두가지 UIButton을 넣어 구현
- 날짜 스택뷰와 마찬가지로 추후에 selected button에
accessary
표시 예정
- UISegmentedControl을 활용하여 구현
-
setTitleTextAttributes
메소드를 활용하여 normal, selected의 텍스트 속성 변경
- 고려해야 할 사항
var isPrepared: Bool?
var date: Date?
var isCard: Bool?
- 크게 총 18가지 경우의 수를 따지기 위한 filter 함수 구현 (모듈로 뺄 예정)
// pseudo code
func filterHistories(isPrepared, date, isCard) -> histories {
histories = 전체 histories
if isCard != nil {
histories = histories 중 isCard가 동일한 기록들
}
if isPrepared != nil, isPrepared == true) {
histories = histories 중 isPrepared가 동일한 기록들
} else if date != nil {
histories = histories중 date가 동일한 기록들
}
return histories
}
-
금액 타입 -> 준비 비용 -> date 여부
순서로 필터링 후 applySnapshot 진행
- Swift 기본 Date initializer는 국정 표준시(UTC)를 기준으로 생성
- 하지만 커스텀으로 구현한 Date to String converter는 한국 시간 기준으로 변환
- 뷰에 뿌려지는 값과 실제 값의 차이로 인한 문제가 생김
- 관련 기록
- 지출 목록 화면에서 셀 선택 시, 지출 상세화면을 present 하도록 구현
- 데이터 모델 연결 작업 필요
-
UIRefreshControl
을 적용하여 테이블 셀을 아래로 스와이프 하여 지출 항목을 추가할 수 있도록 구현 - 지출 추가 화면으로 전환될 때
BaseDataForAddingHistory
구조체를 만들어 화면 구성을 위한 정보를 전달
struct BaseDataForAddingHistory {
var isIncome: Bool
var flagImage: Data
var currencyCode: String
var currentDate: Date
var exchangeRate: Double
}
-
NSExpression
을 활용하여 지출 금액 입력 계산 구현 - 계산식 파싱 중
123.123.12
와 같이 소수점이 한 숫자 내에 두번 이상 나오는 경우 crash- Operator를 기준으로 String을 잘라서 숫자만 남긴 후, 각각의 숫자가 소수점을 한번 이하로 포함하는지 검사하는 방식으로 해결
- 이미지, 메모, 타이틀, 날짜 저장 기능 구현
-
카드/현금
여부와카테고리 지정
기능 구현 예정 - 지출/수입을 하나의
xib
로 대응할 수 있는 present extension 구현 예정
S035 유시형 @sihyungyou | S039 이승진 @devilzcough | S054 조송주 @songjucho
🤝 규칙
📱 개발 진행 상황
🧐 학습
- 고민거리
- 읽을거리
- TDD
- CoreData 학습내용
- CoreData에 TDD 적용하기
- 테스트 가능한 네트워크모델
- CI 입문기
- DiffableDataSource 적용해보기
- 테스트코드 커버리지 측정하기
- 비동기처리에 대한 유닛테스트
- 앱 배포하기
- TableView에 Pull to Refresh 적용하기
- Floating Action Button 직접 만들어보기
- Core Animation-PieChart 구현하기
- Core Animation-LaunchScreen 구현하기
- UIView.animate에 대한 테스트 작성해보기
- 유닛테스트의 한계와 통합테스트의 필요성