[flutter] 캘린더 라이브러리 분석

💜Dabo (개발자 다보)·2020년 4월 7일
1

기능 요구사항

  1. 월,주,일 바꾸는게 가능한가
  2. today 이동을 제공해주는가
  3. 데이터는 어떻게, 어떤 타입으로 관리하는가
  4. 일정(events)를 일자 또는 시간안에 출력이 가능한가 (cf. 구글캘린더)
    • (월 캘린더)일자에는 4개의 일정이 넘길 경우 ...으로 출력할 수 있는가
    • (주,일 캘린더) 시간에는 제한없이 다 출력할 수 있는가
    • 색상이라던지 style control이 가능한가
  5. 헤더(월, 주)를 클릭할 때 일정 조회가 수월하도록 datepicker를 제공하는가

flutter 라이브러리

table_calendar

https://pub.dev/packages/table_calendar#-readme-tab-

정보

  • 나와있는 최종버전 2.2.3
  • 분석결과 99 / 👍 97 likes

특징

  • 이전에 1주간 구현해본 적 있음.
  • 상세 컨트롤이 가능했고, 제공 된 컨트롤아닌 이상 접근하기 어려움.
  • 예제코드를 demo화면과 같이 제공하니 파악하기 수월

기능 요구사항

  1. 월,주,일 바꾸는게 가능한가

    월 - 2주 - 1주로 변경은 가능하나 월 캘린더가 짤릴 뿐 세로로 넓어지거나 하지 않음.

  2. today 이동을 제공해주는가

    ❌ 제공 안함.

  3. 데이터는 어떻게, 어떤 타입으로 관리하는가

    Map<DateTime,List<dynamic>> 타입으로 관리
    TableCalendar 위젯 작성 시 events 속성에 이벤트 관리부분 작성 필요

  4. 일정(events)를 일자 또는 시간안에 출력이 가능한가 (cf. 구글캘린더)

    ⭕️❌ 애매.. 일정안에 TableCalendar 위젯의 builders속성으로
    일자 안에 출력을 커스텀 할 수 있음. (공식문서 예제에도 숫자와 도트방식이 있듯) 결론적으론 제목이라든지 출력은 가능하지만 일정 최대 3개 노출가능, 캘린더 일자 높이 컨트롤 안됨

  5. 헤더(월, 주)를 클릭할 때 일정 조회가 수월하도록 datepicker를 제공하는가

    ⭕️❌ 이또한 애매, TableCalendar 위젯의 onHeaderTapped속성으로 구현가능 구현체 타입은 void 메소드명(DateTime day) {} void function임, 자체 제공은 하지않지만 커스텀할 수 있는부분에서 많이 열어둠
    onHeaderTapped 구현체 예제 코드가 없어서 위젯으로 잘 할 수 있을지 의문!

calendar_strip

https://pub.dev/packages/calendar_strip

특징

  • 주 캘린더가 가능해보임.. 근데 설마 주만 가능한거 아니겠지?
  • 일자와 시간 캘린더 빌더

syncfusion_flutter_calendar

https://pub.dev/packages/syncfusion_flutter_calendar

특징

  • 웹까지 호환가능, flutter for web 또한 베타버전이기에 안정될 때 까지 이또한 베타 버전
  • 상용패키지, 상업용 라이센스 또는 syncfunction community 라이센스가 있어야함.
    - syncfunction community 라이센스 자격 요건 : 연간 백만달러미만 수익, 5명 미만의 개발자일 경우 커뮤니티 라이센스 부여
  • 왠지 설명이 매우매우매우 너무 잘 되어있음.

그 외 라이브러리

flutter_calendar_carousel

  • 이또한 table_calendar와 동일해 보였고, style바꾸는데 제한적이라고 예전 블로그를 본 적 있음.
  • 주,일로 컨트롤 못하는 것 같음. (+ today 이동도)

device_calendar

  • 디바이스에 있는 캘린더를 컨트롤할 수 있게끔 해보임.
  • 예제코드가 복잡시럼

flutter_clean_calendar
https://pub.dev/packages/flutter_clean_calendar

  • table_calendar와 유사

calendar_views
https://pub.dev/packages/calendar_views

  • day와 month 페이지 제공하는 것 같음

horizontal_calendar_widget
https://pub.dev/packages/horizontal_calendar_widget

  • 가로 캘린더 제공
  • 입력창에 쓰일 듯한 예시 UI 데모..

some_calendar
https://pub.dev/packages/some_calendar

  • 선택을 가능하게 하는 캘린더보단 datepicker느낌?
  • dialog 가능, 모달처럼 띄우기 가능
profile
𝙸 𝚊𝚖 𝚊 𝚌𝚞𝚛𝚒𝚘𝚞𝚜 𝚍𝚎𝚟𝚎𝚕𝚘𝚙𝚎𝚛 𝚠𝚑𝚘 𝚎𝚗𝚓𝚘𝚢𝚜 𝚍𝚎𝚏𝚒𝚗𝚒𝚗𝚐 𝚊 𝚙𝚛𝚘𝚋𝚕𝚎𝚖. 🇰🇷👩🏻‍💻

0개의 댓글