Git Product home page Git Product logo

ios-project-manager's Introduction

Loves finding reasonable solutions.

⭐️ Favorite motto

Failure is an option. If you’re not failing now and then, you’re not being innovative enough or taking enough risks.

Link to blog badge Link to LinkedIn badge Send an email badge

Ryan's GitHub stats

ios-project-manager's People

Contributors

duckbok avatar ryan-son avatar yagom avatar

ios-project-manager's Issues

TaskViewModel 구현

  • tasks: [Task]
  • taskOrder: [state: [UUID]]
  • insert(task, state: .todo, at: destinationIndex)
  • remove(task)
  • add(task)
  • task(from: state, at: index)
  • update(newTask, state: .todo)
  • move(task, to: .doing, at: destinationIndex)
  • 사용자의 지역에 따른 날짜 표현

Repository: tasks: [Task], taskOrder: [state: [UUID]]
ViewModel: tasks: [Task], taskOrder: [state: [UUID]]

let currentTask = viewModel.todoTasks(at: indexPath.row)
tableView.dequeueReusableCell(with: cellIdentifier, for: indexPath)

Networking 가용 여부에 따른 기능 구현

  • 네트워크 가용 여부를 보여주는 UI구성
  • 네트워크가 연결되지 않은 상태에서는 작업을 미룸
  • 네트워크에 재접속되면 서버와 변경사항을 동기화
  • 네트워크 연결 중에 Activity Indicator 설치

History 기능 구현

  • 버튼을 통한 Popover present
  • History 표현을 위한 View UI 구성
  • Task의 변화에 따른 History 업데이트

Task 모델 타입 정의

  • 프로퍼티 정의
  • Codable 채택
  • NSItemProviderWriting 채택 및 준수
  • NSItemProviderReading 채택 및 준수

Unit Test 작성

Core Data

  • TaskManager (Core Data, CRUD, test용도 추가)

Model

  • Task (NSItemProvierWriting, NSItemProviderReading, 연산 프로퍼티)
  • TaskList (연산 프로퍼티, subscript)

Repository

  • TaskRepository (URLProtocol 활용한 API 통신, Protocol 추상화)

Util

  • Date (연산 프로퍼티)
  • URLRequest (이니셜라이저)

ViewModel

  • HistoryViewModel (바인딩, 메서드)
  • TaskEditViewModel (바인딩, 메서드)
  • TaskViewModel (바인딩, 메서드)

TableView를 위한 커스텀 타입 구현

  • UIView와 UITableView의 containerView
  • UITableViewCell 커스텀
  • Task 개수 표현하는 Label 크기 고정
  • dueDate 만기 시 빨간색 표시
  • body 텍스트 색상 지정
  • 마지막 Cell 이후의 separator 제거
  • Trailing swipe action delete

Core Data 연결

  • xcdatamodel 생성 및 설정
  • NSManagedObject 모델 생성 및 기존 모델 타입 이관
  • persistentContainer 담당 CoreDataStack 구현
  • CRUD 수행 타입 TaskManager 구현
  • 기존 viewModel CRUD 작업에 Core Data 기능 추가
  • Core Data 연결 후 기능 확인 및 디버깅

TaskRepository 구현

HTTP Method를 활용한 네트워킹 작업 (Task 인스턴스 CRUD)

  • 받아오기 (GET)
  • 생성하기 (POST)
  • 수정하기 (PATCH)
  • 삭제하기 (DELETE)

Task 편집 화면 구현

  • TaskEditViewController
  • Navigation view controller
  • View Model add 로직 구현
  • View Model update 로직 구현
  • title text field
  • Date Picker
  • Body text view
  • 키보드 show/hide에 따른 text view 위치 이동 구현
  • Navigation bar button item 변경 로직 (edit <-> cancel)
  • Navigation bar button item done 버튼
  • text view 글자수 제한
  • 필요한 alert 구현

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.