Coder Social home page Coder Social logo

pple's Introduction

App Icon

프플 PPLE




프로젝트 단위의 심플한 스케줄링 앱,

프플

pple's People

Contributors

2unbini avatar skkimeo avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

tekim-526

pple's Issues

Separate EditSheet to ProjectEditSheet and TaskEditSheet

적용 위치

EditSheet

오류 상황

  • Edit Sheet에서 코어데이터에 저장된 Project, Task 어트리뷰트를 사용할 때, @ObservedObject로 해당 어트리뷰트를 활용하는 다른 뷰에 자동적으로 해당 내용 업데이트되는 현상 발생
    • 예) 유저가 Project 내용을 바꾸다가 취소한 경우, 바뀐 시점까지의 내용이 다른 뷰에 적용됨. 앱을 껐다 켜면 다시 되돌아옴.

적용 내용

  • EditSheet에서 Project, Task 자체의 데이터를 쓰는 대신, 목 데이터 활용 후 저장시 해당 Project, Task에 대입
  • ProjectEditSheet와 TaskEditSheet로 분리해 운용

refactor all parts receiving projectId

  • 코어데이터 사용의 편의성을 위해 project 인스턴스 자체를 인자로 넘기기로 함
    • projectId 를 받는 view 들의 인자 타입 수정 필요
    • TaskList, TaskRowView, TaskDetailView
  • Project/Task Extension 의 withId(_:) 메서드 삭제

Refactoring

반영 내용

  • 전체적으로 코드 리팩토링

    • 변수 네이밍, 구조 등 변경
    • 불필요한 부분 삭제
  • MainCalendarView 와 ProjectListView 연결

Modify Alert to match the device version

항목 추가/수정할 때 적절하지 않은 데이터일 시 Alert 발생.
iOS 15부터 .alert modifier 사용 권장.
디바이스 버전에 맞게 Alert 변경

Change Button View

버튼의 모양을 전에 있던 "Day\n1"에서 "1\n12.24"이런 포맷으로 수정
오늘날짜 확인하기 편하도록 수정

ProjectList Edit Mode Screen Separation

발생 위치

ProjectList

발생 내용

  • Edit모드인 경우와 아닌 경우에 화면의 터치 가능한 영역이 나뉘는 현상 발생
  • Edit모드로 들어왔을 때, 각 행의 중간을 누르면 NavigationLink 작동
  • Edit모드가 아닐 때, 각 행의 Text와 오른쪽 끝 > 표시가 눌리지 않음

Add edit and save functions to Edit/Add Sheets

반영 위치

Edit, Add Sheet

반영할 내용

  • Edit의 경우, 앞선 뷰에서 넘어오는 데이터의 Data type 통일(Project, Task)
  • CoreData에 데이터 저장하는 기능 추가

Fix popup method bug in real device

적용 위치

  • UtilityExtensions

적용내용

  • popup 메서드가 기기에서 첫번째 터치에 작동하지 않는 버그로 인해 1차 수정을 했으나
  • 2차 수정안은 처음 TaskList 가 팝업될 때 빼고는 리스트 UI에 버그 발생

비고

  • 디바이스 도착 이후 작업 시작

Show chosen date on TaskList title

적용 위치

  • TaskList

적용 내용

  • TaskList 상단의 제목을 "오늘의 할 일" 에서 "x월 x일의 할 일" 등 날짜가 나타나는 방식으로 변경

UI - Project Calendar View

  • 프로젝트 캘린더 뷰
    • 캘린더
    • 한 줄에 7일
      • 7일보다 적으면 그 개수만큼 맞춰서
      • 그것보다 많으면 테트리스처럼 보일 수 있다.

Text disappears in Dark Mode

텍스트 색상을 검은색으로 해 놓은 것들이 다크 모드에서 제대로 보이지 않는 현상

Modify popup animation

적용 위치

  • PopupView

적용 내용

  • Popup 등장/퇴장 애니메이션을 opacity 로 변경

Cannot Put text and date in Task Add Sheet

할 일 추가시 텍스트 필드, 텍스트 에디터, 데이트 피커가 계속 초기화되는 현상
start, endDate를 프로젝트와 맞추면서 생긴 문제

revert to custom popup

라이브러리 삭제하고 이전에 만든 커스텀 팝업 사용

  • 닫기 버튼을 누를 때만 취소 가능
  • 팝업 뜨면 배경에 회색 그림자

UI - Modal View, Task List, Task Detail View

모달 뷰 생성

  • 일종의 팝업처럼 뜸

프로젝트 리스트

  • 제목, 요약, 기간, 체크박스
  • 왼쪽 위 닫기 버튼, 오른쪽 위 추가 버튼

프로젝트 디테일뷰

  • 제목, 요약, 기간, 완료 여부
  • 왼쪽 위 뒤로 가기 버튼, 오른쪽 위 수정 버튼

Popup loading slows down when days increase

반영 위치

  • CarouselView 혹은 ProjectCalendarView

반영 내용

  • 기간이 늘어날수록 팝업창 로딩이 오래 걸리는 현상 발견
  • CarouselView 에서 뷰 생성 방식을 개선하거나
  • ProjectCalendarView 에서 만들어두고(어차피 태수님이 Day별 Task를 받아오실 것이므로) 재활용하는 방식 중에서 고민

Automatically update isFinished when project/task expired

Related to #46
프로젝트와 할 일의 endDate가 만료됐는지 확인하는 로직 + 표현방식

[화면에 보이기]

  • 완료: 회색, 만료: 회색 + 취소선
  • 완료: 회색 + 취소선, 만료: 회색
  • 완료: , 만료: 빨간색
  • 진행중, 완료됨, 만료됨 => 섹션 나누기?

[데이터 처리]

  • 코어 데이터 상에서 처리
  • 프로젝트/할 일 Fetch 하는 순간 처리
  • 앱 시작시 처리
  • isFinished 값 삭제, endDate로 그 때 그 때 처리

popup carousel view of task lists

  • 현재는 프로젝트 캘린더에서 날짜를 누르면 당일의 태스크 리스트만 팝업으로 뜨는데,
  • 팝업에서 좌우 슬라이드로 어제/내일 태스크 리스트로 이동할 수 있게 수정

Refactoring ProjectCalendarView

파일 자체를 보기 편한구조로 바꾸고 이름에 대한 네이밍을 일부 조금더 명확하게 수정했습니다.

UI - Project List, Add and Edit Sheet

유저의 프로젝트 리스트

  • 각 행에 프로젝트 제목 보임
  • 왼쪽 위 수정 버튼, 오른쪽 위 추가 버튼

추가, 수정 뷰

  • 제목, 요약, 기간 입력받는 란
  • 왼쪽 위 닫기 버튼, 오른쪽 위 저장 버튼

Refactor core data save method

적용 위치

  • TaskList, TaskDetailView

적용내용

  • PersistenceController 의 save 메서드로 기존 코어데이터 저장 코드 대체

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.