책 만들기 어플리케이션

Related tags

GUI MakeBook
Overview

MakeBook

책 만들기 어플리케이션

명명규칙

JAVA파일

  • Activity 파일은 끝에 Activity 붙여주기

xml layout

  • layout안에 폴더를 만들 수가 없어서 이름을 잘 정해주셔야 합니다!
  • 사용될 패키지명 _ 액티비티명 _ (기능/용도) 으로 해주시면 좋을거 같습니다!

Gradle

  • dependecny 추가시 주석으로 무슨 용도인지는 적어주세요!
Comments
  • 앱 스타일 수정

    앱 스타일 수정

    • 스타일 수정
    • booklist 페이지에서 뒤로가기 버튼을 2초안에 두 번 눌러야 앱이 종료되도록 변경

    ㅠㅠ

    • 읽기 페이지에서도 텍스트 위치가 이동이 되네요..!ㅠㅠ
    • 표지 그리기에서 펜 색상들 어디서 바꾸는지 모르겠어요
    • 혹시 xml파일에서 버튼의 텍스트를 "<"로 설정하는법 아시는 분 있나요?? 태그로 인식하는지 자꾸 안되네욥 흑
    opened by KoDaHyeon 0
  • 버그 수정 및 기능 강화 / 삭제 및 수정 구현 / 이미지 및 텍스트 추가 시 화면 overflow 방지

    버그 수정 및 기능 강화 / 삭제 및 수정 구현 / 이미지 및 텍스트 추가 시 화면 overflow 방지

    구현한 내용

    아래와 같은 사항을 구현하였습니다.

    1. 사용자가 이미지 삽입을 취소할 시 앱이 비정상 종료되는 버그 수정.
    2. 텍스트 추가 시,
      • "글을 입력하세요!" 텍스트가 placeholder로 나타나도록 수정.
      • 객체의 사이즈가 실제 사이즈보다 작게 설정되는 문제 완화.
    3. 객체를 길게 터치해서 내용을 수정하거나 삭제하는 기능을 구현.
      • 텍스트의 경우
        • "수정하기"를 선택하면 텍스트의 내용, 색, 글자 크기 수정 가능.
        • "삭제하기"를 선택하면 Canvas 및 DB에서 삭제.
      • 이미지의 경우
        • "수정하기"를 선택하면 이미지를 다시 선택할 수 있음.
        • "삭제하기"를 선택하면 Canvas와 DB에서 이미지를 삭제하고, 로컬의 앱 데이터 저장 폴더에서도 이미지 파일 삭제
    4. 텍스트나 이미지를 추가했을 때 내용이 너무 많은 경우 화면 바깥으로 나가는 문제 해결.

    Demo

    텍스트 수정 및 삭제

    text demo

    이미지 수정 및 삭제

    image demo

    크기가 큰 객체가 화면을 벗어나는 것을 방지

    large image

    opened by powergee 0
  • 녹음 수정

    녹음 수정

    • 녹음 재생 시 재생 중지 버튼을 누르지 않아도 재생이 끝나면 중지가 되도록 변경하였습니다.
    • 전체 페이지 재생 시 4초 간격으로 페이지가 넘어가고, 4초 안에 녹음 재생이 끝나지 않을 경우 다시 4초를 세는 식으로 반복하게 만들었습니다.
    • 완료 버튼을 메뉴가 아닌 아래 버튼 사이로 이동시켰습니다. 완료 기능은 complete 함수에 구현하면 됩니다.
    • 녹음 중에 재생 버튼을 누를 수 없고, 재생 중에 녹음 버튼을 누를 수 없게 만들었습니다.
    opened by bucketressi 0
  • 페이지 모아보기

    페이지 모아보기

    구현사항

    • 책 리스트에서 '읽기'메뉴 클릭- 페이지 촤라락 뜸 - 페이지 클릭 - 페이지(flipper) 뜸 - 뒤로가기버튼 누르면 다시 페이지 촤라락뜸
    • 책 리스트에서 '수정'메뉴 클릭 - 페이지 촤라락 뜸 - 페이지 클릭 - 페이지(flipper) 뜸 - 페이지 추가/삭제 후 뒤로가기버튼 - 수정사항 반영해서 페이지 촤라락 뜸

    문제점

    • 책생성 후에 책리스트 화면으로 돌아가면 새로고침이 안되어있어요! 아예 맨 처음으로 돌아가서 시작하기 버튼 눌러야 새로고침이 됩니다
    opened by KoDaHyeon 0
  • 객체 배치 및 텍스트 추가 기능 구현

    객체 배치 및 텍스트 추가 기능 구현

    기존 DB에서 Page의 column을 수정하였으므로, 테스트하실 때 DB를 초기화하셔야 할 수도 있습니다.

    • 객체들의 위치 및 크기를 관리하기 위한 로직 추가
    • 각 객체의 정보를 JSON으로 변환하는 기능 추가 (역도 가능)
    • 글의 크기와 색상을 지정하여 Canvas에 추가하는 기능 구현

    이제 앞으로 그림을 추가하는 기능을 구현하고, JSON을 DB에 저장하는 기능을 구현하려고 합니다.

    Peek 2021-06-01 06-31

    opened by powergee 0
  • Edit, Cover, Read via popup service

    Edit, Cover, Read via popup service

    1. 기본 화면 페이지 리스트 수정

    2. DB 스키마 컬럼추가, 컬럼명 변경

    3. 책 클릭시 Dialog 떠서 (표지, 수정, 삭제, 읽기) 가능

    4. 표지로 가면 표지 바꾸기

    5. 맨 위에 생성을 통해 생성 가능

    6. 표지 수정 화면에서 저장 -> 수정 과정은 그대로 종료, 생성 과정이었으면 EditPageActivity로 표지 수정 화면에서 기본 표지 -> 수정 과정은 그대로 기본표지 변경 후 종료, 생성 과정이었으면 EditPageActivity로

    opened by howtolivelikehuman 0
  • Readpage

    Readpage

    가장 아래의 commit만 보시면 됩니다!

    edit과 read page가 toolbar와 메뉴 기능만 다르고 모든 것이 동일합니다. 따라서

    1. java 폴더의 Edit과 Read를 제거하고 Page로 통일하였습니다.
    2. EditBookActivity와 ReadBookActivity는 PageActivity를 상속 받습니다. (메뉴 관련 함수만 재정의합니다.)
    3. res - layout의 파일도 하나로 통일하고 파일명도 page_bookpage.xml로 변경하였습니다.
    opened by bucketressi 0
  • Heeeun

    Heeeun

    • Page 생성, 삭제 시 DB에 즉시 갱신하기 위해 Page DB 구조를 다시 짰습니다. image

    위의 그림을 예제로 보면 BOOKID 1에서의 Page의 순서는 nextPage를 쭉 따라가면 됩니다. 첫 페이지는 ISHEAD가 1인 페이지이며, 실제 화면에는 표시되지 않습니다. 예를 들어, 위의 예제에서 BOOKID가 1이면서 ISHEAD가 1인 1번째 row가 head입니다. NEXTPAGE는 7이므로 ID가 7인 다음 Page를 찾습니다. ID 7인 Page의 NEXTPAGE는 2입니다. 이런 식으로 따라가면 7=>2=>8=>5=>6=>4=>3=>0 으로 가게 됩니다. ID가 0인 Page는 존재하지 않으므로 마지막 페이지임을 의미합니다.

    • DB에서 select method를 재구조화했습니다.

    이제 selection과 selectionArgs를 넘겨 다양한 조건에서 select 할 수 있습니다.

    Todo : 매번 DB에 넣고 받아와서 연결리스트를 따라가는 식으로 자료구조를 갱신하다보니 시간이 오래 걸립니다. 개선 방식을 생각해볼게요 :)

    opened by bucketressi 0
  • Heeeun

    Heeeun

    대체 flipper의 동작 원리를 이해할 수 없어서 일단 올립니다 ㅠㅠ (추가, 삭제 기능의 index가 온전치 않으니 감안해주세요!)

    • Page class를 추가하였습니다.
    • PageDB를 추가하였습니다.
    • DatabaseHelper의 onCreate에 Page를 생성하는 코드를 추가하였습니다.
    • 커버이미지는 Book의 속성으로 들어가기로 회의 때 논의하여서 menu에서 뺐습니다.
    • 페이지는 추가 삭제될 때마다 DB에 반영됩니다.
    opened by bucketressi 0
  • DB 연동 예제, 권한

    DB 연동 예제, 권한

    1. DB 연동하는 법

    Common 패키지에 DatabaseHelper, Constant, BookDB 만들었습니다.

    Constant는 DB 테이블명, 쿼리문을 따로 저장해 둔 곳입니다.

    제가 사용한 방식은 간단하게 SQLiteOpenHelper를 상속받은 클래스 (DatabaseHelper)를 상황에 맞게 재정의하여 초기 세팅을 하고, SQLiteDatabse 객체에 연결해서 메소드를 실행시키는 방식으로 했습니다.

    그냥 간단하게 확인하시려면 BookDB 클래스에 CRUD 예시를 넣어 놨으니 확인하시면 됩니다.

    1. 안드로이드 권한 요청하는 법

    Gradle 파일에 라이브러리 추가해서 권한 요청하도록 했습니다. 일단은 디바이스 내부 r/w만 했는데 Android Manifest.xml에 원하시는 권한을 검색하셔서 추가하시면 됩니다.

    아직은 구현이 완벽하지 않아서 한번 권한을 취소한 경우 아예 앱을 삭제했다가 다시 깔아야지 물어봅니다. (그냥 build로는 안됨) 권한에 대한 질의는 MainActivity에 있습니다.

    • Interface 사용하는 방법으로 수정했습니다!
    opened by howtolivelikehuman 0
Owner
HowtoLiveLikehuman
↓ ↓ ↓ ↓ ↓ ↓ https://howtolivelikehuman.tistory.com
HowtoLiveLikehuman