Skip to content

웹과 안드로이드앱에서 데이터가 싱크되는 간단한 투두리스트 앱 만들기

Notifications You must be signed in to change notification settings

neoseurae12/TodoListApp-with-Android-WebView

Repository files navigation

웹과 안드로이드앱에서 데이터가 싱크되는 간단한 투두리스트 앱 만들기

A. 요구사항 및 제약조건

[기본 요구사항]

  1. 웹페이지
    • 투두 리스트를 보여주는 간단한 웹페이지 제작
    • 투두 항목 추가 기능 구현
    • 투두 항목 삭제 기능 구현
  2. 안드로이드 앱
    • 웹뷰를 이용하여 웹페이지 로드
    • 브릿지 통신을 통해 웹페이지에 데이터 제공
    • 안드로이드의 스토리지에 데이터를 보존

[선택 요구사항]

  • 투두 항목 편집 기능 추가
  • 투두 항목에 마감일 설정 기능 추가
  • 투두 항목에 완료 여부 체크박스 추가
  • 브릿지를 대기하지 않고 화면을 그릴 수 있도록 브라우저 로컬스토리지와 데이터 동기화
  • 안드로이드 앱에서도 투두 항목 추가 및 삭제를 할 수 있는 별도 네이티브 Add-on UI 구현
  • 사용자 친화적인 UI 디자인
    • 당근마켓의 UI 를 적극 참고해봄
      • Why?
        • 19~69세까지 다양한 연령층의 소비자들이 이용하며, 여성(51.7%)과 남성(48.3%)의 이용률이 비슷하다는 점을 미루어 보아, "남녀노소 모두에게" 사용자 친화적인 UI 디자인이라고 생각했기 때문이다.
  • 반응형 웹페이지 구현으로 디바이스에 최적화된 보기 제공

[제약조건]

  1. 웹페이지
    • 로컬 환경에서 빌드하여 안드로이드 앱과 통신하도록 구현
    • 투두 항목을 추가하는 입력필드 & 추가 버튼 구현
    • 투두 리스트 항목을 표시하는 목록 구현
    • 각 투두 항목 옆에 삭제 버튼 구현
    • 브릿지를 통하여 투두 항목 저장 및 불러오기 구현
  2. 안드로이드 앱
    • 웹뷰를 통해 투두리스트 항목을 확인 가능하도록 설계
    • 웹뷰의 JavaScript Interface를 사용하여 안드로이드 앱과 웹 통신 구현

B. 기능 목록

Main 기능

  • 투두 항목의 추가
  • 투두 항목의 삭제

Extra 기능

  • 투두 항목의 편집
  • 투두 항목의 마감일 설정
  • 투두 항목의 완료 여부 체크

C. Use Cases

  • 투두 항목의 추가

    • 투두 리스트 가장 끝에 투두 항목을 추가할 수 있습니다.
    • 화면 상단의 입력란을 통해 추가할 경우, 투두 리스트 가장 끝까지 스크롤할 필요 없이 바로 투두 항목을 추가할 수 있습니다.
      • Floating Action Button 으로 구현하려다, 그러면 투두 리스트의 내용 일부가 가려질 것을 사용자가 불편해할 것 같아 위와 같이 수정함
  • 투두 항목의 삭제

    • 삭제하고 싶은 투두 항목에 대해 왼쪽으로 스와이프 하여 해당 투두 항목의 삭제를 선택할 수 있습니다.
      • 잘못 누르는 바람에 삭제하고 싶지 않은 투두를 삭제하게 되는 사용자의 실수를 줄여주고자 삭제 버튼을 밖으로 노출시키지 않음
    • 모든 투두 항목들을 한꺼번에 삭제하고 싶을 경우, 툴바의 옵션 메뉴에서 '모든 투두 삭제하기' 옵션을 선택하면 됩니다.
      • 이 역시 사용자의 실수를 줄여주고자 사용자의 추가적인 동작을 요구함
  • 투두 항목의 완료 여부 체크

    • 체크 박스를 체크할 시, 해당 투두 항목의 글씨색이 옅어지고 취소선이 그어집니다.
    • 체크 박스를 해제할 시, 다시 해당 투두 항목의 글씨색이 선명해지고 취소선이 사라집니다.
  • 투두 항목의 편집 / 마감일 설정

    • 편집 또는 마감일 설정을 하고 싶은 투두 항목에 대해 클릭하면 작업을 선택할 수 있는 Bottom Sheet 가 등장합니다.
    • 투두 항목의 편집
      • Bottom Sheet 에서 편집 작업을 선택한 경우, 해당 투두 항목의 내용을 즉시 편집할 수 있습니다.
    • 투두 항목의 마감일 설정
      • Bottom Sheet 에서 마감일 설정 작업을 선택한 경우, 해당 투두 항목에 대한 마감일을 설정 및 수정할 수 있습니다.
      • 마감일을 설정한 경우, 투두 항목 아래쪽에 마감일이 표시됩니다.

D. 시스템 설계도

image

E. 데이터 플로우 다이어그램

image

F. 데모 영상

https://youtu.be/J4ytefBK2Mk

G. 세부 동작

  • 투두 항목의 추가 by 안드로이드 UI

노원희_안드로이드 상 추가

  • 투두 항목의 추가 by 웹 UI

노원희_웹 상 추가

  • 투두 항목의 전체 삭제 by 안드로이드 UI

노원희_안드로이드 상 삭제

  • 투두 항목의 삭제 by 웹 UI

노원희_웹 상 삭제

  • 투두 항목의 편집

노원희_편집

  • 투두 항목의 마감일 설정

노원희_마감일 설정

  • 투두 항목의 완료 여부 체크

노원희_체크박스

  • 오늘의 날짜 표시

노원희_날짜 표시

About

웹과 안드로이드앱에서 데이터가 싱크되는 간단한 투두리스트 앱 만들기

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published