Skip to content

iOS 기술 특장점

fElix edited this page Dec 20, 2020 · 2 revisions

> MVVM - C

  • 캘린더, 카드 상세화면 같이 화면이 여러 번 재사용 되는 경우가 많아 이로 인해 반복되는 Presentation 로직이 많아지게 됩니다.
  • Coordinator를 이용하여 반복되는 Presentation 로직을 줄였습니다.


> Network Layer

  • EndPoint: URLRequest를 생성하는 데 필요한 정보(URL, Header, Body 등) 를 가지는 객체
  • Service: EndPoint 객체를 통해 Router 또는 LocalDataSource와 통신하는 객체
  • Router: URLSession을 통해 서버와 통신하는 객체
  • LocalDataSource: 내부DB(Realm)에 데이터를 저장하고 불러오는 객체


> 오프라인 지원

  • Realm 을 이용하여 네트워크가 연결되지 않았을 때도 사용자가 데이터를 확인할 수 있도록 지원합니다.
  • 오프라인 상태에서 보드, 리스트, 카드를 추가할 시 해당 Request 에 대한 EndPoint 를 저장하고 온라인으로 재연결 하면 네트워크에 요청합니다.


> Deployment Target iOS 13

  • iOS13 이상의 기기들을 지원합니다.
    • UIDatePicker의 compact style(iOS14)Custom 달력 구현
    • CompositionalCollectionViewLayout Swipe CellCustom Swipe Cell


> 이미지 캐싱

  • NSCache - Local Disk 캐싱을 통해 효율적인 데이터 사용


> Code-Based-UI

  • Code 위주의 UI 구현을 지향하여 일부를 제외한 대부분의 View 를 Code 를 통해 구현했습니다.
    • StoryBoard 로 인한 잦은 Merge Conflict 를 방지
    • 컨벤션을 준수하여 팀원이 복잡한 UI 구성 프로세스를 한 번에 확인하여 시간 절약
    • View 의 재사용 추구


> Drag & Drop

  • UICollectionViewDragDelegate UICollectionViewDropDelegate 을 활용해 사용자에게 직관적인 할 일 관리 기능을 제공합니다.
    • 리스트의 위치를 옮기거나
    • 카드를 리스트 내 / 외로 옮길 수 있습니다.

🎯 계획


🤝 규칙


👩‍🎨 스타일 가이드


👨‍👩‍👦 멘토님과의 만남


📜 토론거리


📜 개발 문서


💎 기술 특장점


🏃‍♂️ 스프린트 회의 / 회고


🏉 데일리 스크럼


Clone this wiki locally