Giter Club home page Giter Club logo

dakku's People

Contributors

roomedia avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

esaman1

dakku's Issues

2주차 개발 계획

개발 현황

  • 린트, 빌드 환경 설정 #1
  • 글상자의 기본 조작 (이동, 회전, 크기 조정) #2
  • 드래그, 핀치, 줌 제스처 인식 #6

개발 예정 사항

전체적인 ui 흐름 완성

  • 주차 별 다이어리 목록 조회 액티비티 #9
  • 다이어리 목록에서 에디터 액티비티로 이동 (신규 생성 / 조회 및 편집) #10
  • ui/ux 워크 플로우 작성 및 wiki 등록

에디터 테마 디자인에 맞게 변경

현재 다이어리 에디터는 DayNight 테마로 설정되어 있어, 사용자의 다크 모드 설정에 따라 백그라운드가 바뀌는 문제가 있다. 일관된 다이어리를 보여주기 위해 다이어리 에디터의 테마를 항상 Light Theme으로 고정한다.

저장된 이미지 크기가 반영되지 않는 버그

다이어리를 꾸민 후 재진입 시 이미지 크기가 정상적으로 반영되지 않는 상황이 발생하며, 스티커 데이터에서 뷰로 변환하는 과정에서 레이아웃이 누락되는 문제로 파악된다.

다이어리 스티커 레이어 순서 조절

  • 나중에 생성된 스티커가 가장 위로 오도록 설정
  • seekbar로 곂치는 스티커 간 레이어 순서 조절
  • 특정 스티커 선택 시 사각형 border 표시
    • border는 레이어 순서에 영향 받지 않음
  • 선택된 스티커 복제
    • 복제된 스티커는 기존 스티커와 곂치지 않도록 오른쪽 아래로 약간 이동

3주차 개발 계획

3주차 개발 계획

  • 프로젝트에 Room 데이터베이스 추가 #14
    • Wiki에 DB 라이브러리 선정 사유 작성 #wiki
    • Room 데이터베이스에 다이어리 entity 추가
    • Room 데이터베이스에 스티커 entity 추가
    • 텍스트 위주 다이어리 작성 후 데이터베이스에 저장
  • 작성된 다이어리를 썸네일 사이즈(128dp x 192dp) 이미지로 출력
  • 다이어리 목록에서 저장된 썸네일과 해당 다이어리 연동

도전 과제

  • 스티커에서 이미지 선택 및 변경 기능 추가

프로젝트 환경 설정

  • Code Style 설정: Android Kotlin Style Guide
  • Lint 설정: Android Lint, Ktlint
  • Lint 적용: Git Hooks 설정

4주차 개발 계획

개발 현황

  • DB에 다이어리 저장
  • 저장된 다이어리 목록으로 표시, 북마크, 잠금
  • 텍스트 스티커 생성

4주차 개발 계획

  • 프로젝트 구조 수정 #16
  • 텍스트 스티커 저장 #17
  • 다이어리 선택 시 해당 다이어리에 저장된 스티커 불러오기 #17
  • 텍스트 스티커 업데이트 #17

수정 사항

  • 데이터베이스 초기 데이터 입력 실패 #19
  • 다이어리 생성 후 저장 시 duplicate 되는 버그 #20
  • 에디터 테마 디자인에 맞게 변경 #21
  • 다이어리 조회 시 스타일이 적용되지 않는 버그 #24

도전 과제

  • 텍스트 수정 시 키보드 자동 열기 #18
  • 다이어리 저장 시 썸네일 사이즈(128dp x 192dp) 이미지로 출력
  • 다이어리 목록에서 저장된 썸네일과 해당 다이어리 연동
  • 텍스트 스티커 이동, 회전, 크기 조정
  • 이미지 스티커 추가

7주차 개발 계획

개발 현황

  • DB에 다이어리, 텍스트 스티커, 이미지 스티커 저장
  • 저장된 다이어리를 목록으로 표시, 북마크 및 잠금 기능 제공 (비밀번호 변경 불가)
  • 텍스트 스티커 이동, 회전, 속성 변경 구현
  • 이미지 스티커 이동, 회전, 크기 조정 구현 (이미지 마스킹, 리사이징 구현 필요)

7주차 개발 계획

  • 클릭/드래그 이벤트 중첩 시 클릭만 적용되는 버그 해결 #34
  • 특정 버튼 클릭 시에만 UI가 노출되도록 변경 #36
  • 레이어 조정 버튼 구현 #37
  • 텍스트 스티커 폰트 선택 #4 #32
  • 애플리케이션 설치 시 스티커 프리셋 다운로드 #35
  • 필수 기능만 포함하여 출시 #39

사용자 인터렉션에 따른 다이어리 목록, 다이어리 에디터 간 이동

  • ui/ux 흐름도:
    어플리케이션 흐름은 새로운 다이어리 생성, 특정 다이어리 조회 및 편집 두 가지 케이스로 나뉜다. 다이어리 생성 버튼과 특정 다이어리 아이템 클릭 시 기대되는 ui 흐름을 구현한다.
  • 다이어리 목록 액티비티에서 FAB 클릭 시 빈 다이어리 에디터 액티비티로 이동
  • 다이어리 목록 액티비티에서 특정 다이어리 아이템을 클릭 시 다이어리 에디터 액티비티로 이동
  • 에디터 액티비티에서 뒤로가기, 저장 시 다이어리 목록 액티비티로 복귀

6주차 개발 계획

개발 현황

  • DB에 다이어리, 텍스트 스티커, 이미지 스티커 저장
  • 저장된 다이어리 목록으로 표시, 북마크, 잠금
  • 텍스트 스티커 이동, 회전 구현
  • 이미지 스티커 이동, 회전, 크기 조정 구현

6주차 개발 계획

  • 텍스트 속성 구현 #4, #32
    • 폰트 버튼 -> 스피너 표시 -> 폰트 지정, 지정 시 버튼 텍스트 해당 폰트 이름으로 변경
    • 글씨 크기 버튼 -> 세로 Seekbar 표시 -> value 설정, 설정 시 버튼 텍스트 현재 크기로 변경
    • 정렬 버튼 -> 누를 때마다 왼쪽, 가운데, 오른쪽 순으로 변경
    • 굵게, 기울게 토글 버튼
    • 줄 간격 버튼 -> 세로 Seekbar 표시 -> value 설정
    • 자간 버튼 -> 세로 Seekbar 표시 -> value 설정
    • 글자색 버튼 -> Color Picker 표시 -> 색상 설정, 설정 시 버튼 tint 색상 변경

수정 요구 사항

  • 버튼 tint 색상 미적용 버그
  • Bold 시 TextView 줄 바뀜 버그
  • 특정 버튼 눌렀을 시에만 SeekBar 노출
  • 클릭/드래그 이벤트 중첩 시 클릭만 적용되는 버그
  • lineHeight를 px 단위에서 textSize에 대한 비율로 변경
  • ui 간소화

도전 과제

  • undo, redo 버튼
  • 선택된 스티커 복제 버튼
  • 스티커 레이어 조정 버튼

5주차 개발 계획

개발 현황

  • DB에 다이어리 저장
  • 저장된 다이어리 목록으로 표시, 북마크, 잠금
  • 텍스트 스티커 생성, 저장, 조회, 수정

5주차 개발 계획

  • 다이어리 썸네일로 저장, 조회 #28
  • 이미지 스티커 생성, 저장, 조회, 수정 #29
  • 스티커 선택, 이동, 회전, 크기 조정 제스처 #30
  • 선택된 스티커 삭제 버튼 828be26 #29
  • 유저 예상 결과물 생성

도전 과제

  • undo, redo 버튼
  • 선택된 스티커 복제 버튼
  • 스티커 레이어 조정 버튼

스티커 이동, 회전, 크기 조정 시 Flickering 발생

스티커 이동, 회전, 크기 조정 시 여백이 아닌 영역(스티커)를 Touch Down 하여 수행 시 Flickering이 발생한다. 스티커의 Touch Event와 Diary Frame의 Touch Event가 중복 호출되는 문제로 보고 있으며, Event Intercept 등을 통해 해결할 예정이다.

다이어리 조회 시 스타일이 적용되지 않는 버그

다이어리 생성 시와 조회 시 텍스트의 색상, 크기, 위치에 차이가 있으며, 원인은 다음 두 가지이다.

  1. 생성과 조회 시 Sticker View 생성 방식이 다르다.
  2. 스타일이 제대로 적용되지 않는다.

원활한 작동을 위해 View 생성 방식을 통일하고, 이미지, 슬라이더 등의 추가 확장성을 고려한다.

다이어리 스티커 메뉴바 ui 구현

다이어리 작성을 위한 스티커 생성, 삭제, undo, redo 등 관련된 작업을 수행하는 툴바를 구현한다.

  • 스티커 추가 버튼. 누를 시 스티커 추가 메뉴가 표시된다.
  • 뒤로 가기 버튼. 작업 수행을 되돌린다.
  • 앞으로 가기 버튼. 되돌린 작업을 다시 수행한다.
  • 선택된 스티커 삭제 버튼
  • 이동, 회전, 크기 조정 라디오 버튼
    • 이동, 회전, 크기 조정에 범용적으로 적용할 수 있는 slide ruler
    • 크기 조정 시 ratio lock 버튼
  • 투명도 조절 슬라이더
  • 레이어 조절 슬라이더
  • 선택된 스티커 복제 버튼

주차 별 다이어리 목록 조회 액티비티

작성한 다이어리를 주차 별로 모아보는 기능을 제공한다. 각 주차 별 일기 목록은 작성 일자 순으로 가로 정렬되며, 썸네일을 통해 다이어리 내용을 미리 확인할 수 있다. 각 일기 별로 북마크, 잠금 기능을 제공하며, 해당하는 다이어리 모아보기를 지원한다.

  • 더미 데이터 다이어리 목록 표시
  • 주차 단위로 섹션 분리 및 주차 텍스트 삽입
  • 북마크 버튼 토글
  • 잠금 버튼 토글 및 잠금 해제 시 비밀번호 확인 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.