[MYPLANT] 리젝 2회차 앱 개발기

BINGBING🐨·2021년 12월 7일
0

Swift

목록 보기
16/21

또 심사 제출했다.

MAIN

내 식물을 추가하면 프로필 사진, 물 주기까지 남은 시간을 표현하는 프로그레스바, 분양한 날짜로부터 현재까지의 D+DAY를 보여준다.

과정

만들고 나니 관리하는 식물이 1~2개 정도로 적은 사람과 너무 많은 사람을 배제한 디자인이라는 생각이 들었다.
식물을 스와이프로 넘겨서 볼 수 있는 콜렉션뷰로 만들걸..
검색을 삭제했다. 식물원을 운영하는 정도의 사람이 아니라면 굳이 검색할 정도로
식물이 많이 있지도 않을 확률이 높기도 하고(는 핑계)
다른 기능 만드느라 급급해 뺐다.

Content

식물마다 개별적으로 관리할 수 있는 페이지.
식물 일기를 작성할 수도, 식물 프로필을 수정할 수 있다.
메인페이지보다 친절하게(?) 물주기를 안내한다.

과정

Realm내부 List가 가지고 있는 타입에 접근이 왜이렇게 안되는지
아직도 정렬이 불편하게 되고 있지만 금요일까지 업데이트를 하며 해결해보려한다.
식물 프로필을 부분은 정말 많은 분들께 도움을 받아 잘 작동한다..
이미지파일 이름을 ObjectId값을 받오는데....
첫번째 다이어리를 만들땐 프로필 사진이 수정되어 버리는 버그가 있었다.
파일저장하는 디렉토리를 별도로 만들어줘 해결했다.

프로그레스바를 어떻게 하면 '잘' 구현할 수 있을지 처음부터 걱정이 많았는데
Calendar.current.dateComponents 를 알게되어서 비교적 쉽게 구현할 수 있었던 것 같다.

func progressDate() -> Float {
        let afterWaterDate = task?.first!.afterWaterDate //(다음에 물을 줘야하는 날짜, RegDate + 물 주기 days)
        let regDate = task?.first!.regDate //(물 준 날짜)
        let today = Date() //(현재시각)
        
        let dateGap = Calendar.current.dateComponents([.second], from: today, to: afterWaterDate!)
        //((물 준 날짜 + 물 주기 일 수) - 현재 시각 = (second로 환산한 값:dateGap)
        let dateGap2 = Calendar.current.dateComponents([.second], from: regDate!, to: afterWaterDate!)
		//(현재 시각 + 물 주기 일 수) - 물 준 날짜 = second로 환산한 값:dateGap2)
        
        if dateGap2.second! > 0 || dateGap.second! > 0 {
            return (Float(dateGap.second! * 100 / dateGap2.second!) / 100)
        } else {
            return  0
        }
        
    }

Diary

식물 일기를 작성하는 페이지

과정

이미지를 추가하지 않을 시 첫화면으로 보여주는 이미지가 저장되는 버그가 있었다.
Select 유무에 따른 변수를 추가해서 해결했다.
잔 버그가 굉장히 많아 손이 많이 갔지만 조금씩 해결하는 기분도 느낄 수 있었고 디자인적으로 깔끔한 것 같아 마음에 드는 페이지이다.

업데이트 예정: 식물도감, 로컬 푸시알림

공공데이터(농사로-실내정원용식물)을 받아와 구현해보려 했으나 Fail
시간에 쫒겨서 공부할 수 없었지만 업데이트때 꼭 넣을 기능이다!

리젝2번...?

카메라 킬 때 안내좀 잘 하라는 1번째 리젝
-> 문구 수정함

2번째 역시 또!!!! 안내좀 잘 하라고 해서 왜인가 했더니
Info.Plist에 카메라 권한 설정이 불친절 했었나보다. (첫번째는 멍청하게도 Alert문구 수정함...;)
-> 리젝 2번 대참사

출시완료!

profile
iOS Developer

0개의 댓글